/linux/drivers/input/joystick/iforce/ |
H A D | iforce-main.c | 68 struct iforce *iforce = input_get_drvdata(dev); in iforce_playback() local 69 struct iforce_core_effect *core_effect = &iforce->core_effects[effect_id]; in iforce_playback() 76 iforce_control_playback(iforce, effect_id, value); in iforce_playback() 82 struct iforce *iforce = input_get_drvdata(dev); in iforce_set_gain() local 86 iforce_send_packet(iforce, FF_CMD_GAIN, data); in iforce_set_gain() 91 struct iforce *iforce = input_get_drvdata(dev); in iforce_set_autocenter() local 96 iforce_send_packet(iforce, FF_CMD_AUTOCENTER, data); in iforce_set_autocenter() 100 iforce_send_packet(iforce, FF_CMD_AUTOCENTER, data); in iforce_set_autocenter() 109 struct iforce *iforce = input_get_drvdata(dev); in iforce_upload_effect() local 110 struct iforce_core_effect *core_effect = &iforce->core_effects[effect->id]; in iforce_upload_effect() [all …]
|
H A D | iforce-serio.c | 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() 32 if (test_and_set_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags)) { in iforce_serio_xmit() 33 set_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags); in iforce_serio_xmit() 37 guard(spinlock_irqsave)(&iforce->xmit_lock); in iforce_serio_xmit() 40 if (iforce->xmit.head == iforce->xmit.tail) in iforce_serio_xmit() 48 iforce->xmit.buf[iforce->xmit.tail]); in iforce_serio_xmit() 49 cs ^= iforce->xmit.buf[iforce->xmit.tail]; in iforce_serio_xmit() [all …]
|
H A D | iforce-usb.c | 13 struct iforce iforce; member 23 static void __iforce_usb_xmit(struct iforce *iforce) in __iforce_usb_xmit() argument 25 struct iforce_usb *iforce_usb = container_of(iforce, struct iforce_usb, in __iforce_usb_xmit() 26 iforce); in __iforce_usb_xmit() 29 guard(spinlock_irqsave)(&iforce->xmit_lock); in __iforce_usb_xmit() 31 if (iforce->xmit.head == iforce->xmit.tail) { in __iforce_usb_xmit() 32 iforce_clear_xmit_and_wake(iforce); in __iforce_usb_xmit() 36 ((char *)iforce_usb->out->transfer_buffer)[0] = iforce->xmit.buf[iforce->xmit.tail]; in __iforce_usb_xmit() 37 XMIT_INC(iforce->xmit.tail, 1); in __iforce_usb_xmit() 38 n = iforce->xmit.buf[iforce->xmit.tail]; in __iforce_usb_xmit() [all …]
|
H A D | iforce.h | 75 struct iforce; 78 void (*xmit)(struct iforce *iforce); 79 int (*get_id)(struct iforce *iforce, u8 id, 81 int (*start_io)(struct iforce *iforce); 82 void (*stop_io)(struct iforce *iforce); 85 struct iforce { struct 115 static inline int iforce_get_id_packet(struct iforce *iforce, u8 id, in iforce_get_id_packet() argument 118 return iforce->xport_ops->get_id(iforce, id, in iforce_get_id_packet() 122 static inline void iforce_clear_xmit_and_wake(struct iforce *iforce) in iforce_clear_xmit_and_wake() argument 124 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags); in iforce_clear_xmit_and_wake() [all …]
|
H A D | iforce-packets.c | 18 void iforce_dump_packet(struct iforce *iforce, char *msg, u16 cmd, unsigned char *data) in iforce_dump_packet() argument 20 dev_dbg(iforce->dev->dev.parent, "%s %s cmd = %04x, data = %*ph\n", in iforce_dump_packet() 27 int iforce_send_packet(struct iforce *iforce, u16 cmd, unsigned char* data) in iforce_send_packet() argument 38 scoped_guard(spinlock_irqsave, &iforce->xmit_lock) { in iforce_send_packet() 39 head = iforce->xmit.head; in iforce_send_packet() 40 tail = iforce->xmit.tail; in iforce_send_packet() 43 dev_warn(&iforce->dev->dev, in iforce_send_packet() 49 XMIT_INC(iforce->xmit.head, n + 2); in iforce_send_packet() 54 iforce->xmit.buf[head] = HI(cmd); in iforce_send_packet() 56 iforce->xmit.buf[head] = LO(cmd); in iforce_send_packet() [all …]
|
H A D | iforce-ff.c | 18 static int make_magnitude_modifier(struct iforce* iforce, in make_magnitude_modifier() argument 24 guard(mutex)(&iforce->mem_mutex); in make_magnitude_modifier() 26 if (allocate_resource(&iforce->device_memory, mod_chunk, 2, in make_magnitude_modifier() 27 iforce->device_memory.start, in make_magnitude_modifier() 28 iforce->device_memory.end, in make_magnitude_modifier() 37 iforce_send_packet(iforce, FF_CMD_MAGNITUDE, data); in make_magnitude_modifier() 39 iforce_dump_packet(iforce, "magnitude", FF_CMD_MAGNITUDE, data); in make_magnitude_modifier() 47 static int make_period_modifier(struct iforce* iforce, in make_period_modifier() argument 56 guard(mutex)(&iforce->mem_mutex); in make_period_modifier() 58 if (allocate_resource(&iforce->device_memory, mod_chunk, 0x0c, in make_period_modifier() [all …]
|
H A D | Makefile | 8 obj-$(CONFIG_JOYSTICK_IFORCE) += iforce.o 9 iforce-y := iforce-ff.o iforce-main.o iforce-packets.o 10 obj-$(CONFIG_JOYSTICK_IFORCE_232) += iforce-serio.o 11 obj-$(CONFIG_JOYSTICK_IFORCE_USB) += iforce-usb.o
|
H A D | Kconfig | 14 module will be called iforce.
|
/linux/drivers/input/joystick/ |
H A D | Makefile | 22 obj-$(CONFIG_JOYSTICK_IFORCE) += iforce/
|
H A D | Kconfig | 147 source "drivers/input/joystick/iforce/Kconfig"
|
/linux/Documentation/input/ |
H A D | ff.rst | 38 If you have a serial iforce device, you need to start inputattach. See 231 the direction of an effect cannot be updated with iforce devices. In this 262 - Status feedback is only supported by iforce driver. If you have
|
H A D | input.rst | 231 iforce subsection
|
/linux/arch/sparc/include/asm/ |
H A D | leon_amba.h | 97 u32 iforce; member
|
/linux/Documentation/input/joydev/ |
H A D | joystick.rst | 515 All I-Force devices are supported by the iforce module. This includes: 529 inputattach --iforce /dev/tts/x &
|
/linux/Documentation/input/devices/ |
H A D | xpad.rst | 209 His useful info and both the usb-skeleton as well as the iforce input driver
|