diff options
-rw-r--r-- | drivers/hid/Kconfig | 7 | ||||
-rw-r--r-- | drivers/hid/Makefile | 1 | ||||
-rw-r--r-- | drivers/hid/hid-core.c | 1 | ||||
-rw-r--r-- | drivers/hid/hid-dell.c | 74 | ||||
-rw-r--r-- | drivers/hid/hid-dummy.c | 3 | ||||
-rw-r--r-- | drivers/hid/usbhid/hid-quirks.c | 2 |
6 files changed, 86 insertions, 2 deletions
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index 7ced6476026a..1ab067ee7e6c 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig | |||
@@ -131,6 +131,13 @@ config HID_CYPRESS | |||
131 | ---help--- | 131 | ---help--- |
132 | Support for Cypress mouse and barcodes. | 132 | Support for Cypress mouse and barcodes. |
133 | 133 | ||
134 | config HID_DELL | ||
135 | tristate "Dell" | ||
136 | default m | ||
137 | depends on USB_HID | ||
138 | ---help--- | ||
139 | Support for Dell W7658. | ||
140 | |||
134 | config HID_EZKEY | 141 | config HID_EZKEY |
135 | tristate "Ezkey" | 142 | tristate "Ezkey" |
136 | default m | 143 | default m |
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile index 4f39b9431ebe..4a756c6e3a95 100644 --- a/drivers/hid/Makefile +++ b/drivers/hid/Makefile | |||
@@ -18,6 +18,7 @@ obj-$(CONFIG_HID_BELKIN) += hid-belkin.o | |||
18 | obj-$(CONFIG_HID_CHERRY) += hid-cherry.o | 18 | obj-$(CONFIG_HID_CHERRY) += hid-cherry.o |
19 | obj-$(CONFIG_HID_CHICONY) += hid-chicony.o | 19 | obj-$(CONFIG_HID_CHICONY) += hid-chicony.o |
20 | obj-$(CONFIG_HID_CYPRESS) += hid-cypress.o | 20 | obj-$(CONFIG_HID_CYPRESS) += hid-cypress.o |
21 | obj-$(CONFIG_HID_DELL) += hid-dell.o | ||
21 | obj-$(CONFIG_HID_EZKEY) += hid-ezkey.o | 22 | obj-$(CONFIG_HID_EZKEY) += hid-ezkey.o |
22 | obj-$(CONFIG_HID_GYRATION) += hid-gyration.o | 23 | obj-$(CONFIG_HID_GYRATION) += hid-gyration.o |
23 | obj-$(CONFIG_HID_LOGITECH) += hid-logitech.o | 24 | obj-$(CONFIG_HID_LOGITECH) += hid-logitech.o |
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index f527e332b596..ea5f8bc900e0 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -1170,6 +1170,7 @@ static const struct hid_device_id hid_blacklist[] = { | |||
1170 | { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1) }, | 1170 | { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1) }, |
1171 | { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_2) }, | 1171 | { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_2) }, |
1172 | { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_MOUSE) }, | 1172 | { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_MOUSE) }, |
1173 | { HID_USB_DEVICE(USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_W7658) }, | ||
1173 | { HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) }, | 1174 | { HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) }, |
1174 | { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE) }, | 1175 | { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE) }, |
1175 | { HID_USB_DEVICE(USB_VENDOR_ID_LABTEC, USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD) }, | 1176 | { HID_USB_DEVICE(USB_VENDOR_ID_LABTEC, USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD) }, |
diff --git a/drivers/hid/hid-dell.c b/drivers/hid/hid-dell.c new file mode 100644 index 000000000000..5d1d54cfa87e --- /dev/null +++ b/drivers/hid/hid-dell.c | |||
@@ -0,0 +1,74 @@ | |||
1 | /* | ||
2 | * HID driver for some dell "special" devices | ||
3 | * | ||
4 | * Copyright (c) 1999 Andreas Gal | ||
5 | * Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz> | ||
6 | * Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc | ||
7 | * Copyright (c) 2006-2007 Jiri Kosina | ||
8 | * Copyright (c) 2007 Paul Walmsley | ||
9 | * Copyright (c) 2008 Jiri Slaby | ||
10 | */ | ||
11 | |||
12 | /* | ||
13 | * This program is free software; you can redistribute it and/or modify it | ||
14 | * under the terms of the GNU General Public License as published by the Free | ||
15 | * Software Foundation; either version 2 of the License, or (at your option) | ||
16 | * any later version. | ||
17 | */ | ||
18 | |||
19 | #include <linux/device.h> | ||
20 | #include <linux/hid.h> | ||
21 | #include <linux/module.h> | ||
22 | |||
23 | #include "hid-ids.h" | ||
24 | |||
25 | static int dell_probe(struct hid_device *hdev, const struct hid_device_id *id) | ||
26 | { | ||
27 | int ret; | ||
28 | |||
29 | hdev->quirks |= HID_QUIRK_RESET_LEDS; | ||
30 | |||
31 | ret = hid_parse(hdev); | ||
32 | if (ret) { | ||
33 | dev_err(&hdev->dev, "parse failed\n"); | ||
34 | goto err_free; | ||
35 | } | ||
36 | |||
37 | ret = hid_hw_start(hdev); | ||
38 | if (ret) { | ||
39 | dev_err(&hdev->dev, "hw start failed\n"); | ||
40 | goto err_free; | ||
41 | } | ||
42 | |||
43 | return 0; | ||
44 | err_free: | ||
45 | return ret; | ||
46 | } | ||
47 | |||
48 | static const struct hid_device_id dell_devices[] = { | ||
49 | { HID_USB_DEVICE(USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_W7658) }, | ||
50 | { } | ||
51 | }; | ||
52 | MODULE_DEVICE_TABLE(hid, dell_devices); | ||
53 | |||
54 | static struct hid_driver dell_driver = { | ||
55 | .name = "dell", | ||
56 | .id_table = dell_devices, | ||
57 | .probe = dell_probe, | ||
58 | }; | ||
59 | |||
60 | static int dell_init(void) | ||
61 | { | ||
62 | return hid_register_driver(&dell_driver); | ||
63 | } | ||
64 | |||
65 | static void dell_exit(void) | ||
66 | { | ||
67 | hid_unregister_driver(&dell_driver); | ||
68 | } | ||
69 | |||
70 | module_init(dell_init); | ||
71 | module_exit(dell_exit); | ||
72 | MODULE_LICENSE("GPL"); | ||
73 | |||
74 | HID_COMPAT_LOAD_DRIVER(dell); | ||
diff --git a/drivers/hid/hid-dummy.c b/drivers/hid/hid-dummy.c index 1ef3111f7fe7..684191dcb324 100644 --- a/drivers/hid/hid-dummy.c +++ b/drivers/hid/hid-dummy.c | |||
@@ -22,6 +22,9 @@ static int __init hid_dummy_init(void) | |||
22 | #ifdef CONFIG_HID_CYPRESS_MODULE | 22 | #ifdef CONFIG_HID_CYPRESS_MODULE |
23 | HID_COMPAT_CALL_DRIVER(cypress); | 23 | HID_COMPAT_CALL_DRIVER(cypress); |
24 | #endif | 24 | #endif |
25 | #ifdef CONFIG_HID_DELL_MODULE | ||
26 | HID_COMPAT_CALL_DRIVER(dell); | ||
27 | #endif | ||
25 | #ifdef CONFIG_HID_EZKEY_MODULE | 28 | #ifdef CONFIG_HID_EZKEY_MODULE |
26 | HID_COMPAT_CALL_DRIVER(ezkey); | 29 | HID_COMPAT_CALL_DRIVER(ezkey); |
27 | #endif | 30 | #endif |
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c index a154a7dc1e63..71bf64bc1466 100644 --- a/drivers/hid/usbhid/hid-quirks.c +++ b/drivers/hid/usbhid/hid-quirks.c | |||
@@ -60,8 +60,6 @@ static const struct hid_blacklist { | |||
60 | 60 | ||
61 | { USB_VENDOR_ID_WISEGROUP_LTD, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, | 61 | { USB_VENDOR_ID_WISEGROUP_LTD, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, |
62 | 62 | ||
63 | { USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_W7658, HID_QUIRK_RESET_LEDS }, | ||
64 | |||
65 | { 0, 0 } | 63 | { 0, 0 } |
66 | }; | 64 | }; |
67 | 65 | ||