• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/input/joystick/iforce/

Lines Matching defs:iforce

2  * $Id: iforce-serio.c,v 1.1.1.1 2007/08/03 18:52:33 Exp $
30 #include "iforce.h"
32 void iforce_serial_xmit(struct iforce *iforce)
38 if (test_and_set_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags)) {
39 set_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags);
43 spin_lock_irqsave(&iforce->xmit_lock, flags);
46 if (iforce->xmit.head == iforce->xmit.tail) {
47 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
48 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
54 serio_write(iforce->serio, 0x2b);
56 serio_write(iforce->serio, iforce->xmit.buf[iforce->xmit.tail]);
57 cs ^= iforce->xmit.buf[iforce->xmit.tail];
58 XMIT_INC(iforce->xmit.tail, 1);
60 for (i=iforce->xmit.buf[iforce->xmit.tail]; i >= 0; --i) {
61 serio_write(iforce->serio, iforce->xmit.buf[iforce->xmit.tail]);
62 cs ^= iforce->xmit.buf[iforce->xmit.tail];
63 XMIT_INC(iforce->xmit.tail, 1);
66 serio_write(iforce->serio, cs);
68 if (test_and_clear_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags))
71 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
73 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
78 struct iforce *iforce = serio_get_drvdata(serio);
80 iforce_serial_xmit(iforce);
86 struct iforce *iforce = serio_get_drvdata(serio);
88 if (!iforce->pkt) {
90 iforce->pkt = 1;
94 if (!iforce->id) {
96 iforce->pkt = 0;
98 iforce->id = data;
102 if (!iforce->len) {
104 iforce->pkt = 0;
105 iforce->id = 0;
107 iforce->len = data;
112 if (iforce->idx < iforce->len) {
113 iforce->csum += iforce->data[iforce->idx++] = data;
117 if (iforce->idx == iforce->len) {
118 iforce_process_packet(iforce, (iforce->id << 8) | iforce->idx, iforce->data);
119 iforce->pkt = 0;
120 iforce->id = 0;
121 iforce->len = 0;
122 iforce->idx = 0;
123 iforce->csum = 0;
131 struct iforce *iforce;
134 iforce = kzalloc(sizeof(struct iforce), GFP_KERNEL);
135 if (!iforce)
138 iforce->bus = IFORCE_232;
139 iforce->serio = serio;
141 serio_set_drvdata(serio, iforce);
147 err = iforce_init_device(iforce);
155 kfree(iforce);
161 struct iforce *iforce = serio_get_drvdata(serio);
163 input_unregister_device(iforce->dev);
166 kfree(iforce);
183 .name = "iforce",