Home
last modified time | relevance | path

Searched refs:iforce (Results 1 – 15 of 15) sorted by relevance

/linux/drivers/input/joystick/iforce/
H A Diforce-main.c68 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 Diforce-serio.c13 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 Diforce-usb.c13 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 Diforce.h75 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 Diforce-packets.c18 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 Diforce-ff.c18 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 DMakefile8 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 DKconfig14 module will be called iforce.
/linux/drivers/input/joystick/
H A DMakefile22 obj-$(CONFIG_JOYSTICK_IFORCE) += iforce/
H A DKconfig147 source "drivers/input/joystick/iforce/Kconfig"
/linux/Documentation/input/
H A Dff.rst38 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 Dinput.rst231 iforce subsection
/linux/arch/sparc/include/asm/
H A Dleon_amba.h97 u32 iforce; member
/linux/Documentation/input/joydev/
H A Djoystick.rst515 All I-Force devices are supported by the iforce module. This includes:
529 inputattach --iforce /dev/tts/x &
/linux/Documentation/input/devices/
H A Dxpad.rst209 His useful info and both the usb-skeleton as well as the iforce input driver