• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/input/joystick/iforce/

Lines Matching defs:iforce

28 #include "iforce.h"
30 void iforce_serial_xmit(struct iforce *iforce)
36 if (test_and_set_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags)) {
37 set_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags);
41 spin_lock_irqsave(&iforce->xmit_lock, flags);
44 if (iforce->xmit.head == iforce->xmit.tail) {
45 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
46 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
52 serio_write(iforce->serio, 0x2b);
54 serio_write(iforce->serio, iforce->xmit.buf[iforce->xmit.tail]);
55 cs ^= iforce->xmit.buf[iforce->xmit.tail];
56 XMIT_INC(iforce->xmit.tail, 1);
58 for (i=iforce->xmit.buf[iforce->xmit.tail]; i >= 0; --i) {
59 serio_write(iforce->serio, iforce->xmit.buf[iforce->xmit.tail]);
60 cs ^= iforce->xmit.buf[iforce->xmit.tail];
61 XMIT_INC(iforce->xmit.tail, 1);
64 serio_write(iforce->serio, cs);
66 if (test_and_clear_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags))
69 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
71 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
76 struct iforce *iforce = serio_get_drvdata(serio);
78 iforce_serial_xmit(iforce);
84 struct iforce *iforce = serio_get_drvdata(serio);
86 if (!iforce->pkt) {
88 iforce->pkt = 1;
92 if (!iforce->id) {
94 iforce->pkt = 0;
96 iforce->id = data;
100 if (!iforce->len) {
102 iforce->pkt = 0;
103 iforce->id = 0;
105 iforce->len = data;
110 if (iforce->idx < iforce->len) {
111 iforce->csum += iforce->data[iforce->idx++] = data;
115 if (iforce->idx == iforce->len) {
116 iforce_process_packet(iforce, (iforce->id << 8) | iforce->idx, iforce->data);
117 iforce->pkt = 0;
118 iforce->id = 0;
119 iforce->len = 0;
120 iforce->idx = 0;
121 iforce->csum = 0;
129 struct iforce *iforce;
132 iforce = kzalloc(sizeof(struct iforce), GFP_KERNEL);
133 if (!iforce)
136 iforce->bus = IFORCE_232;
137 iforce->serio = serio;
139 serio_set_drvdata(serio, iforce);
145 err = iforce_init_device(iforce);
153 kfree(iforce);
159 struct iforce *iforce = serio_get_drvdata(serio);
161 input_unregister_device(iforce->dev);
164 kfree(iforce);
181 .name = "iforce",