Lines Matching refs:iforce

13 	struct iforce iforce;  member
24 static void iforce_serio_xmit(struct iforce *iforce) in iforce_serio_xmit() argument
26 struct iforce_serio *iforce_serio = container_of(iforce, in iforce_serio_xmit()
28 iforce); in iforce_serio_xmit()
33 if (test_and_set_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags)) { in iforce_serio_xmit()
34 set_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags); in iforce_serio_xmit()
38 spin_lock_irqsave(&iforce->xmit_lock, flags); in iforce_serio_xmit()
41 if (iforce->xmit.head == iforce->xmit.tail) { in iforce_serio_xmit()
42 iforce_clear_xmit_and_wake(iforce); in iforce_serio_xmit()
43 spin_unlock_irqrestore(&iforce->xmit_lock, flags); in iforce_serio_xmit()
51 serio_write(iforce_serio->serio, iforce->xmit.buf[iforce->xmit.tail]); in iforce_serio_xmit()
52 cs ^= iforce->xmit.buf[iforce->xmit.tail]; in iforce_serio_xmit()
53 XMIT_INC(iforce->xmit.tail, 1); in iforce_serio_xmit()
55 for (i=iforce->xmit.buf[iforce->xmit.tail]; i >= 0; --i) { in iforce_serio_xmit()
57 iforce->xmit.buf[iforce->xmit.tail]); in iforce_serio_xmit()
58 cs ^= iforce->xmit.buf[iforce->xmit.tail]; in iforce_serio_xmit()
59 XMIT_INC(iforce->xmit.tail, 1); in iforce_serio_xmit()
64 if (test_and_clear_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags)) in iforce_serio_xmit()
67 iforce_clear_xmit_and_wake(iforce); in iforce_serio_xmit()
69 spin_unlock_irqrestore(&iforce->xmit_lock, flags); in iforce_serio_xmit()
72 static int iforce_serio_get_id(struct iforce *iforce, u8 id, in iforce_serio_get_id() argument
75 struct iforce_serio *iforce_serio = container_of(iforce, in iforce_serio_get_id()
77 iforce); in iforce_serio_get_id()
82 iforce_send_packet(iforce, FF_CMD_QUERY, &id); in iforce_serio_get_id()
84 wait_event_interruptible_timeout(iforce->wait, in iforce_serio_get_id()
102 static int iforce_serio_start_io(struct iforce *iforce) in iforce_serio_start_io() argument
108 static void iforce_serio_stop_io(struct iforce *iforce) in iforce_serio_stop_io() argument
122 struct iforce *iforce = serio_get_drvdata(serio); in iforce_serio_write_wakeup() local
124 iforce_serio_xmit(iforce); in iforce_serio_write_wakeup()
131 struct iforce *iforce = &iforce_serio->iforce; in iforce_serio_irq() local
172 wake_up_all(&iforce->wait); in iforce_serio_irq()
173 } else if (likely(iforce->type)) { in iforce_serio_irq()
174 iforce_process_packet(iforce, iforce_serio->id, in iforce_serio_irq()
198 iforce_serio->iforce.xport_ops = &iforce_serio_xport_ops; in iforce_serio_connect()
207 err = iforce_init_device(&serio->dev, BUS_RS232, &iforce_serio->iforce); in iforce_serio_connect()
223 input_unregister_device(iforce_serio->iforce.dev); in iforce_serio_disconnect()