Commit 94d8a6be authored by Johann Deneux's avatar Johann Deneux Committed by Greg Kroah-Hartman

[PATCH] Merged hid-lgff.c and hid-lg3d.c

Here is a patch wich moves hid-lg3d.c into hid-lgff.c. This allows to
share the init code.
A side-effect of this merge is that rumble pads are now handled the same
way joysticks are. Instead of having one timer per effect, executing
only when needed, we have one timer executing at regular intervals going
over each effect.
parent 095067da
...@@ -30,10 +30,13 @@ CONFIG_HID_FF ...@@ -30,10 +30,13 @@ CONFIG_HID_FF
If unsure, say N. If unsure, say N.
CONFIG_LOGITECH_RUMBLE CONFIG_LOGITECH_FF
Say Y here if you have a Logitech WingMan Cordless rumble pad and if you Say Y here if you have one of these devices:
want to enable force feedback. Note: if you say N here, this device will - Logitech WingMan Cordless RumblePad
still be supported, but without force feedback. - Logitech WingMan Force 3D
and if you want to enable force feedback for them.
Note: if you say N here, this device will still be supported, but without
force feedback.
CONFIG_HID_PID CONFIG_HID_PID
Say Y here if you have a PID-compliant joystick and wish to enable force Say Y here if you have a PID-compliant joystick and wish to enable force
......
...@@ -11,8 +11,7 @@ fi ...@@ -11,8 +11,7 @@ fi
dep_mbool ' HID input layer support' CONFIG_USB_HIDINPUT $CONFIG_INPUT $CONFIG_USB_HID dep_mbool ' HID input layer support' CONFIG_USB_HIDINPUT $CONFIG_INPUT $CONFIG_USB_HID
dep_mbool ' Force feedback support (EXPERIMENTAL)' CONFIG_HID_FF $CONFIG_USB_HIDINPUT $CONFIG_EXPERIMENTAL dep_mbool ' Force feedback support (EXPERIMENTAL)' CONFIG_HID_FF $CONFIG_USB_HIDINPUT $CONFIG_EXPERIMENTAL
dep_mbool ' PID Devices' CONFIG_HID_PID $CONFIG_USB_HID $CONFIG_HID_FF dep_mbool ' PID Devices' CONFIG_HID_PID $CONFIG_USB_HID $CONFIG_HID_FF
dep_mbool ' Logitech RumblePad support' CONFIG_LOGITECH_RUMBLE $CONFIG_USB_HID $CONFIG_HID_FF dep_mbool ' Logitech WingMan *3D support' CONFIG_LOGITECH_FF $CONFIG_USB_HID $CONFIG_HID_FF
dep_mbool ' Logitech WingMan Force 3D support' CONFIG_LOGITECH_3D $CONFIG_USB_HID $CONFIG_HID_FF
dep_mbool ' /dev/hiddev raw HID device support' CONFIG_USB_HIDDEV $CONFIG_USB_HID dep_mbool ' /dev/hiddev raw HID device support' CONFIG_USB_HIDDEV $CONFIG_USB_HID
if [ "$CONFIG_USB_HID" != "y" ]; then if [ "$CONFIG_USB_HID" != "y" ]; then
......
...@@ -16,12 +16,9 @@ endif ...@@ -16,12 +16,9 @@ endif
ifeq ($(CONFIG_HID_PID),y) ifeq ($(CONFIG_HID_PID),y)
hid-objs += pid.o hid-objs += pid.o
endif endif
ifeq ($(CONFIG_LOGITECH_RUMBLE),y) ifeq ($(CONFIG_LOGITECH_FF),y)
hid-objs += hid-lgff.o hid-objs += hid-lgff.o
endif endif
ifeq ($(CONFIG_LOGITECH_3D),y)
hid-objs += hid-lg3dff.o
endif
ifeq ($(CONFIG_HID_FF),y) ifeq ($(CONFIG_HID_FF),y)
hid-objs += hid-ff.o hid-objs += hid-ff.o
endif endif
......
/* /*
* $Id: hid-ff.c,v 1.3 2002/06/09 11:06:38 jdeneux Exp $ * $Id: hid-ff.c,v 1.2 2002/04/18 22:02:47 jdeneux Exp $
* *
* Force feedback support for hid devices. * Force feedback support for hid devices.
* Not all hid devices use the same protocol. For example, some use PID, * Not all hid devices use the same protocol. For example, some use PID,
...@@ -44,17 +44,15 @@ extern int hid_pid_init(struct hid_device* hid); ...@@ -44,17 +44,15 @@ extern int hid_pid_init(struct hid_device* hid);
* devices, you need to add the USB vendor and product ids here. * devices, you need to add the USB vendor and product ids here.
*/ */
struct hid_ff_initializer { struct hid_ff_initializer {
__u16 idVendor; u16 idVendor;
__u16 idProduct; u16 idProduct;
int (*init)(struct hid_device*); int (*init)(struct hid_device*);
}; };
static struct hid_ff_initializer inits[] = { static struct hid_ff_initializer inits[] = {
#ifdef CONFIG_LOGITECH_RUMBLE #ifdef CONFIG_LOGITECH_FF
{0x46d, 0xc211, hid_lgff_init}, {0x46d, 0xc211, hid_lgff_init},
#endif {0x46d, 0xc283, hid_lgff_init},
#ifdef CONFIG_LOGITECH_3D
{0x46d, 0xc283, hid_lg3d_init},
#endif #endif
#ifdef CONFIG_HID_PID #ifdef CONFIG_HID_PID
{0x45e, 0x001b, hid_pid_init}, {0x45e, 0x001b, hid_pid_init},
...@@ -68,8 +66,8 @@ static struct hid_ff_initializer *hid_get_ff_init(__u16 idVendor, ...@@ -68,8 +66,8 @@ static struct hid_ff_initializer *hid_get_ff_init(__u16 idVendor,
struct hid_ff_initializer *init; struct hid_ff_initializer *init;
for (init = inits; for (init = inits;
init->idVendor init->idVendor
&& !(init->idVendor == idVendor && !(init->idVendor == idVendor
&& init->idProduct == idProduct); && init->idProduct == idProduct);
init++); init++);
return init->idVendor? init : NULL; return init->idVendor? init : NULL;
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment