diff options
-rw-r--r-- | drivers/hid/Kconfig | 24 | ||||
-rw-r--r-- | drivers/hid/Makefile | 8 | ||||
-rw-r--r-- | drivers/hid/hid-core.c | 7 | ||||
-rw-r--r-- | drivers/hid/hid-ids.h | 7 | ||||
-rw-r--r-- | drivers/hid/hid-lg.c (renamed from drivers/hid/hid-logitech.c) | 31 | ||||
-rw-r--r-- | drivers/hid/hid-lg.h | 18 | ||||
-rw-r--r-- | drivers/hid/hid-lg2ff.c (renamed from drivers/hid/usbhid/hid-lg2ff.c) | 6 | ||||
-rw-r--r-- | drivers/hid/hid-lgff.c (renamed from drivers/hid/usbhid/hid-lgff.c) | 6 | ||||
-rw-r--r-- | drivers/hid/usbhid/Kconfig | 24 | ||||
-rw-r--r-- | drivers/hid/usbhid/Makefile | 6 | ||||
-rw-r--r-- | drivers/hid/usbhid/hid-core.c | 1 | ||||
-rw-r--r-- | drivers/hid/usbhid/hid-ff.c | 12 | ||||
-rw-r--r-- | include/linux/hid.h | 2 |
13 files changed, 102 insertions, 50 deletions
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index 1ab067ee7e6c..4319af320adf 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig | |||
@@ -160,6 +160,30 @@ config HID_LOGITECH | |||
160 | Support for some Logitech devices which breaks less or more | 160 | Support for some Logitech devices which breaks less or more |
161 | HID specification. | 161 | HID specification. |
162 | 162 | ||
163 | config LOGITECH_FF | ||
164 | bool "Logitech force feedback" | ||
165 | depends on HID_LOGITECH | ||
166 | select INPUT_FF_MEMLESS | ||
167 | help | ||
168 | Say Y here if you have one of these devices: | ||
169 | - Logitech WingMan Cordless RumblePad | ||
170 | - Logitech WingMan Cordless RumblePad 2 | ||
171 | - Logitech WingMan Force 3D | ||
172 | - Logitech Formula Force EX | ||
173 | - Logitech MOMO Force wheel | ||
174 | |||
175 | and if you want to enable force feedback for them. | ||
176 | Note: if you say N here, this device will still be supported, but without | ||
177 | force feedback. | ||
178 | |||
179 | config LOGIRUMBLEPAD2_FF | ||
180 | bool "Logitech Rumblepad 2 force feedback" | ||
181 | depends on HID_LOGITECH | ||
182 | select INPUT_FF_MEMLESS | ||
183 | help | ||
184 | Say Y here if you want to enable force feedback support for Logitech | ||
185 | Rumblepad 2 devices. | ||
186 | |||
163 | config HID_MICROSOFT | 187 | config HID_MICROSOFT |
164 | tristate "Microsoft" | 188 | tristate "Microsoft" |
165 | default m | 189 | default m |
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile index 4a756c6e3a95..300ee00913bc 100644 --- a/drivers/hid/Makefile +++ b/drivers/hid/Makefile | |||
@@ -12,6 +12,14 @@ ifdef CONFIG_HID_COMPAT | |||
12 | obj-m += hid-dummy.o | 12 | obj-m += hid-dummy.o |
13 | endif | 13 | endif |
14 | 14 | ||
15 | hid-logitech-objs := hid-lg.o | ||
16 | ifdef CONFIG_LOGITECH_FF | ||
17 | hid-logitech-objs += hid-lgff.o | ||
18 | endif | ||
19 | ifdef CONFIG_LOGIRUMBLEPAD2_FF | ||
20 | hid-logitech-objs += hid-lg2ff.o | ||
21 | endif | ||
22 | |||
15 | obj-$(CONFIG_HID_A4TECH) += hid-a4tech.o | 23 | obj-$(CONFIG_HID_A4TECH) += hid-a4tech.o |
16 | obj-$(CONFIG_HID_APPLE) += hid-apple.o | 24 | obj-$(CONFIG_HID_APPLE) += hid-apple.o |
17 | obj-$(CONFIG_HID_BELKIN) += hid-belkin.o | 25 | obj-$(CONFIG_HID_BELKIN) += hid-belkin.o |
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 699547ce257f..6a730df336b4 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -1262,6 +1262,13 @@ static const struct hid_device_id hid_blacklist[] = { | |||
1262 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_V150) }, | 1262 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_V150) }, |
1263 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D) }, | 1263 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D) }, |
1264 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL) }, | 1264 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL) }, |
1265 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD) }, | ||
1266 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2) }, | ||
1267 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WINGMAN_F3D) }, | ||
1268 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_FORCE3D_PRO) }, | ||
1269 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL) }, | ||
1270 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2) }, | ||
1271 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) }, | ||
1265 | { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV) }, | 1272 | { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV) }, |
1266 | { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_NE4K) }, | 1273 | { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_NE4K) }, |
1267 | { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_LK6K) }, | 1274 | { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_LK6K) }, |
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 678f7c3f341d..e2fd52ca68b7 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h | |||
@@ -263,8 +263,14 @@ | |||
263 | #define USB_DEVICE_ID_LOGITECH_RECEIVER 0xc101 | 263 | #define USB_DEVICE_ID_LOGITECH_RECEIVER 0xc101 |
264 | #define USB_DEVICE_ID_LOGITECH_HARMONY_FIRST 0xc110 | 264 | #define USB_DEVICE_ID_LOGITECH_HARMONY_FIRST 0xc110 |
265 | #define USB_DEVICE_ID_LOGITECH_HARMONY_LAST 0xc14f | 265 | #define USB_DEVICE_ID_LOGITECH_HARMONY_LAST 0xc14f |
266 | #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD 0xc211 | ||
266 | #define USB_DEVICE_ID_LOGITECH_EXTREME_3D 0xc215 | 267 | #define USB_DEVICE_ID_LOGITECH_EXTREME_3D 0xc215 |
268 | #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD2 0xc218 | ||
269 | #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2 0xc219 | ||
270 | #define USB_DEVICE_ID_LOGITECH_WINGMAN_F3D 0xc283 | ||
271 | #define USB_DEVICE_ID_LOGITECH_FORCE3D_PRO 0xc286 | ||
267 | #define USB_DEVICE_ID_LOGITECH_WHEEL 0xc294 | 272 | #define USB_DEVICE_ID_LOGITECH_WHEEL 0xc294 |
273 | #define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL 0xc295 | ||
268 | #define USB_DEVICE_ID_LOGITECH_ELITE_KBD 0xc30a | 274 | #define USB_DEVICE_ID_LOGITECH_ELITE_KBD 0xc30a |
269 | #define USB_DEVICE_ID_LOGITECH_KBD 0xc311 | 275 | #define USB_DEVICE_ID_LOGITECH_KBD 0xc311 |
270 | #define USB_DEVICE_ID_S510_RECEIVER 0xc50c | 276 | #define USB_DEVICE_ID_S510_RECEIVER 0xc50c |
@@ -274,6 +280,7 @@ | |||
274 | #define USB_DEVICE_ID_DINOVO_DESKTOP 0xc704 | 280 | #define USB_DEVICE_ID_DINOVO_DESKTOP 0xc704 |
275 | #define USB_DEVICE_ID_DINOVO_EDGE 0xc714 | 281 | #define USB_DEVICE_ID_DINOVO_EDGE 0xc714 |
276 | #define USB_DEVICE_ID_DINOVO_MINI 0xc71f | 282 | #define USB_DEVICE_ID_DINOVO_MINI 0xc71f |
283 | #define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2 0xca03 | ||
277 | 284 | ||
278 | #define USB_VENDOR_ID_MCC 0x09db | 285 | #define USB_VENDOR_ID_MCC 0x09db |
279 | #define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 | 286 | #define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 |
diff --git a/drivers/hid/hid-logitech.c b/drivers/hid/hid-lg.c index df27f9aadf26..406d8c82abf1 100644 --- a/drivers/hid/hid-logitech.c +++ b/drivers/hid/hid-lg.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
22 | 22 | ||
23 | #include "hid-ids.h" | 23 | #include "hid-ids.h" |
24 | #include "hid-lg.h" | ||
24 | 25 | ||
25 | #define LG_RDESC 0x001 | 26 | #define LG_RDESC 0x001 |
26 | #define LG_BAD_RELATIVE_KEYS 0x002 | 27 | #define LG_BAD_RELATIVE_KEYS 0x002 |
@@ -31,6 +32,8 @@ | |||
31 | #define LG_WIRELESS 0x040 | 32 | #define LG_WIRELESS 0x040 |
32 | #define LG_INVERT_HWHEEL 0x080 | 33 | #define LG_INVERT_HWHEEL 0x080 |
33 | #define LG_NOGET 0x100 | 34 | #define LG_NOGET 0x100 |
35 | #define LG_FF 0x200 | ||
36 | #define LG_FF2 0x400 | ||
34 | 37 | ||
35 | /* | 38 | /* |
36 | * Certain Logitech keyboards send in report #3 keys which are far | 39 | * Certain Logitech keyboards send in report #3 keys which are far |
@@ -222,6 +225,7 @@ static int lg_event(struct hid_device *hdev, struct hid_field *field, | |||
222 | static int lg_probe(struct hid_device *hdev, const struct hid_device_id *id) | 225 | static int lg_probe(struct hid_device *hdev, const struct hid_device_id *id) |
223 | { | 226 | { |
224 | unsigned long quirks = id->driver_data; | 227 | unsigned long quirks = id->driver_data; |
228 | unsigned int connect_mask = HID_CONNECT_DEFAULT; | ||
225 | int ret; | 229 | int ret; |
226 | 230 | ||
227 | hid_set_drvdata(hdev, (void *)quirks); | 231 | hid_set_drvdata(hdev, (void *)quirks); |
@@ -235,7 +239,10 @@ static int lg_probe(struct hid_device *hdev, const struct hid_device_id *id) | |||
235 | goto err_free; | 239 | goto err_free; |
236 | } | 240 | } |
237 | 241 | ||
238 | ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT); | 242 | if (quirks & (LG_FF | LG_FF2)) |
243 | connect_mask &= ~HID_CONNECT_FF; | ||
244 | |||
245 | ret = hid_hw_start(hdev, connect_mask); | ||
239 | if (ret) { | 246 | if (ret) { |
240 | dev_err(&hdev->dev, "hw start failed\n"); | 247 | dev_err(&hdev->dev, "hw start failed\n"); |
241 | goto err_free; | 248 | goto err_free; |
@@ -244,6 +251,11 @@ static int lg_probe(struct hid_device *hdev, const struct hid_device_id *id) | |||
244 | if (quirks & LG_RESET_LEDS) | 251 | if (quirks & LG_RESET_LEDS) |
245 | usbhid_set_leds(hdev); | 252 | usbhid_set_leds(hdev); |
246 | 253 | ||
254 | if (quirks & LG_FF) | ||
255 | lgff_init(hdev); | ||
256 | if (quirks & LG_FF2) | ||
257 | lg2ff_init(hdev); | ||
258 | |||
247 | return 0; | 259 | return 0; |
248 | err_free: | 260 | err_free: |
249 | return ret; | 261 | return ret; |
@@ -283,7 +295,22 @@ static const struct hid_device_id lg_devices[] = { | |||
283 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D), | 295 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D), |
284 | .driver_data = LG_NOGET }, | 296 | .driver_data = LG_NOGET }, |
285 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL), | 297 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL), |
286 | .driver_data = LG_NOGET }, | 298 | .driver_data = LG_NOGET | LG_FF }, |
299 | |||
300 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD), | ||
301 | .driver_data = LG_FF }, | ||
302 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2), | ||
303 | .driver_data = LG_FF }, | ||
304 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WINGMAN_F3D), | ||
305 | .driver_data = LG_FF }, | ||
306 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_FORCE3D_PRO), | ||
307 | .driver_data = LG_FF }, | ||
308 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL), | ||
309 | .driver_data = LG_FF }, | ||
310 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2), | ||
311 | .driver_data = LG_FF }, | ||
312 | { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2), | ||
313 | .driver_data = LG_FF2 }, | ||
287 | { } | 314 | { } |
288 | }; | 315 | }; |
289 | MODULE_DEVICE_TABLE(hid, lg_devices); | 316 | MODULE_DEVICE_TABLE(hid, lg_devices); |
diff --git a/drivers/hid/hid-lg.h b/drivers/hid/hid-lg.h new file mode 100644 index 000000000000..27ae750ca878 --- /dev/null +++ b/drivers/hid/hid-lg.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef __HID_LG_H | ||
2 | #define __HID_LG_H | ||
3 | |||
4 | #include <linux/autoconf.h> | ||
5 | |||
6 | #ifdef CONFIG_LOGITECH_FF | ||
7 | int lgff_init(struct hid_device *hdev); | ||
8 | #else | ||
9 | static inline int lgff_init(struct hid_device *hdev) { return -1; } | ||
10 | #endif | ||
11 | |||
12 | #ifdef CONFIG_LOGIRUMBLEPAD2_FF | ||
13 | int lg2ff_init(struct hid_device *hdev); | ||
14 | #else | ||
15 | static inline int lg2ff_init(struct hid_device *hdev) { return -1; } | ||
16 | #endif | ||
17 | |||
18 | #endif | ||
diff --git a/drivers/hid/usbhid/hid-lg2ff.c b/drivers/hid/hid-lg2ff.c index d469bd0061c9..b2e9a67aa652 100644 --- a/drivers/hid/usbhid/hid-lg2ff.c +++ b/drivers/hid/hid-lg2ff.c | |||
@@ -24,7 +24,9 @@ | |||
24 | #include <linux/input.h> | 24 | #include <linux/input.h> |
25 | #include <linux/usb.h> | 25 | #include <linux/usb.h> |
26 | #include <linux/hid.h> | 26 | #include <linux/hid.h> |
27 | #include "usbhid.h" | 27 | |
28 | #include "usbhid/usbhid.h" | ||
29 | #include "hid-lg.h" | ||
28 | 30 | ||
29 | struct lg2ff_device { | 31 | struct lg2ff_device { |
30 | struct hid_report *report; | 32 | struct hid_report *report; |
@@ -57,7 +59,7 @@ static int play_effect(struct input_dev *dev, void *data, | |||
57 | return 0; | 59 | return 0; |
58 | } | 60 | } |
59 | 61 | ||
60 | int hid_lg2ff_init(struct hid_device *hid) | 62 | int lg2ff_init(struct hid_device *hid) |
61 | { | 63 | { |
62 | struct lg2ff_device *lg2ff; | 64 | struct lg2ff_device *lg2ff; |
63 | struct hid_report *report; | 65 | struct hid_report *report; |
diff --git a/drivers/hid/usbhid/hid-lgff.c b/drivers/hid/hid-lgff.c index 4b7ab6a46d93..e379c167ac9e 100644 --- a/drivers/hid/usbhid/hid-lgff.c +++ b/drivers/hid/hid-lgff.c | |||
@@ -30,7 +30,9 @@ | |||
30 | #include <linux/input.h> | 30 | #include <linux/input.h> |
31 | #include <linux/usb.h> | 31 | #include <linux/usb.h> |
32 | #include <linux/hid.h> | 32 | #include <linux/hid.h> |
33 | #include "usbhid.h" | 33 | |
34 | #include "usbhid/usbhid.h" | ||
35 | #include "hid-lg.h" | ||
34 | 36 | ||
35 | struct dev_type { | 37 | struct dev_type { |
36 | u16 idVendor; | 38 | u16 idVendor; |
@@ -100,7 +102,7 @@ static int hid_lgff_play(struct input_dev *dev, void *data, struct ff_effect *ef | |||
100 | return 0; | 102 | return 0; |
101 | } | 103 | } |
102 | 104 | ||
103 | int hid_lgff_init(struct hid_device* hid) | 105 | int lgff_init(struct hid_device* hid) |
104 | { | 106 | { |
105 | struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list); | 107 | struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list); |
106 | struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; | 108 | struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; |
diff --git a/drivers/hid/usbhid/Kconfig b/drivers/hid/usbhid/Kconfig index 177bfa1a3e5b..0e7e2e6d975e 100644 --- a/drivers/hid/usbhid/Kconfig +++ b/drivers/hid/usbhid/Kconfig | |||
@@ -44,30 +44,6 @@ config HID_PID | |||
44 | feedback for it. Microsoft Sidewinder Force Feedback 2 is one of such | 44 | feedback for it. Microsoft Sidewinder Force Feedback 2 is one of such |
45 | devices. | 45 | devices. |
46 | 46 | ||
47 | config LOGITECH_FF | ||
48 | bool "Logitech devices support" | ||
49 | depends on HID_FF | ||
50 | select INPUT_FF_MEMLESS if USB_HID | ||
51 | help | ||
52 | Say Y here if you have one of these devices: | ||
53 | - Logitech WingMan Cordless RumblePad | ||
54 | - Logitech WingMan Cordless RumblePad 2 | ||
55 | - Logitech WingMan Force 3D | ||
56 | - Logitech Formula Force EX | ||
57 | - Logitech MOMO Force wheel | ||
58 | |||
59 | and if you want to enable force feedback for them. | ||
60 | Note: if you say N here, this device will still be supported, but without | ||
61 | force feedback. | ||
62 | |||
63 | config LOGIRUMBLEPAD2_FF | ||
64 | bool "Logitech Rumblepad 2 support" | ||
65 | depends on HID_FF | ||
66 | select INPUT_FF_MEMLESS if USB_HID | ||
67 | help | ||
68 | Say Y here if you want to enable force feedback support for Logitech | ||
69 | Rumblepad 2 devices. | ||
70 | |||
71 | config PANTHERLORD_FF | 47 | config PANTHERLORD_FF |
72 | bool "PantherLord/GreenAsia based device support" | 48 | bool "PantherLord/GreenAsia based device support" |
73 | depends on HID_FF | 49 | depends on HID_FF |
diff --git a/drivers/hid/usbhid/Makefile b/drivers/hid/usbhid/Makefile index 00a7b7090192..224c62dc6a32 100644 --- a/drivers/hid/usbhid/Makefile +++ b/drivers/hid/usbhid/Makefile | |||
@@ -13,12 +13,6 @@ endif | |||
13 | ifeq ($(CONFIG_HID_PID),y) | 13 | ifeq ($(CONFIG_HID_PID),y) |
14 | usbhid-objs += hid-pidff.o | 14 | usbhid-objs += hid-pidff.o |
15 | endif | 15 | endif |
16 | ifeq ($(CONFIG_LOGITECH_FF),y) | ||
17 | usbhid-objs += hid-lgff.o | ||
18 | endif | ||
19 | ifeq ($(CONFIG_LOGIRUMBLEPAD2_FF),y) | ||
20 | usbhid-objs += hid-lg2ff.o | ||
21 | endif | ||
22 | ifeq ($(CONFIG_PANTHERLORD_FF),y) | 16 | ifeq ($(CONFIG_PANTHERLORD_FF),y) |
23 | usbhid-objs += hid-plff.o | 17 | usbhid-objs += hid-plff.o |
24 | endif | 18 | endif |
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index 402ace751271..4ec10aa618db 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c | |||
@@ -444,6 +444,7 @@ void usbhid_submit_report(struct hid_device *hid, struct hid_report *report, uns | |||
444 | 444 | ||
445 | spin_unlock_irqrestore(&usbhid->ctrllock, flags); | 445 | spin_unlock_irqrestore(&usbhid->ctrllock, flags); |
446 | } | 446 | } |
447 | EXPORT_SYMBOL_GPL(usbhid_submit_report); | ||
447 | 448 | ||
448 | static int usb_hidinput_input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) | 449 | static int usb_hidinput_input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) |
449 | { | 450 | { |
diff --git a/drivers/hid/usbhid/hid-ff.c b/drivers/hid/usbhid/hid-ff.c index 1d0dac52f166..8891f60d3beb 100644 --- a/drivers/hid/usbhid/hid-ff.c +++ b/drivers/hid/usbhid/hid-ff.c | |||
@@ -50,18 +50,6 @@ struct hid_ff_initializer { | |||
50 | * be a PID device | 50 | * be a PID device |
51 | */ | 51 | */ |
52 | static struct hid_ff_initializer inits[] = { | 52 | static struct hid_ff_initializer inits[] = { |
53 | #ifdef CONFIG_LOGITECH_FF | ||
54 | { 0x46d, 0xc211, hid_lgff_init }, /* Logitech Cordless rumble pad */ | ||
55 | { 0x46d, 0xc219, hid_lgff_init }, /* Logitech Cordless rumble pad 2 */ | ||
56 | { 0x46d, 0xc283, hid_lgff_init }, /* Logitech Wingman Force 3d */ | ||
57 | { 0x46d, 0xc286, hid_lgff_init }, /* Logitech Force 3D Pro Joystick */ | ||
58 | { 0x46d, 0xc294, hid_lgff_init }, /* Logitech Formula Force EX */ | ||
59 | { 0x46d, 0xc295, hid_lgff_init }, /* Logitech MOMO force wheel */ | ||
60 | { 0x46d, 0xca03, hid_lgff_init }, /* Logitech MOMO force wheel */ | ||
61 | #endif | ||
62 | #ifdef CONFIG_LOGIRUMBLEPAD2_FF | ||
63 | { 0x46d, 0xc218, hid_lg2ff_init }, /* Logitech Rumblepad 2 */ | ||
64 | #endif | ||
65 | #ifdef CONFIG_PANTHERLORD_FF | 53 | #ifdef CONFIG_PANTHERLORD_FF |
66 | { 0x810, 0x0001, hid_plff_init }, /* "Twin USB Joystick" */ | 54 | { 0x810, 0x0001, hid_plff_init }, /* "Twin USB Joystick" */ |
67 | { 0xe8f, 0x0003, hid_plff_init }, /* "GreenAsia Inc. USB Joystick " */ | 55 | { 0xe8f, 0x0003, hid_plff_init }, /* "GreenAsia Inc. USB Joystick " */ |
diff --git a/include/linux/hid.h b/include/linux/hid.h index b0f03fa2ed19..15ee33e0463e 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h | |||
@@ -760,8 +760,6 @@ void usbhid_set_leds(struct hid_device *hid); | |||
760 | #ifdef CONFIG_HID_FF | 760 | #ifdef CONFIG_HID_FF |
761 | int hid_ff_init(struct hid_device *hid); | 761 | int hid_ff_init(struct hid_device *hid); |
762 | 762 | ||
763 | int hid_lgff_init(struct hid_device *hid); | ||
764 | int hid_lg2ff_init(struct hid_device *hid); | ||
765 | int hid_plff_init(struct hid_device *hid); | 763 | int hid_plff_init(struct hid_device *hid); |
766 | int hid_tmff_init(struct hid_device *hid); | 764 | int hid_tmff_init(struct hid_device *hid); |
767 | int hid_zpff_init(struct hid_device *hid); | 765 | int hid_zpff_init(struct hid_device *hid); |