diff options
| author | Jiri Slaby <jirislaby@gmail.com> | 2008-06-26 16:25:33 -0400 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2008-10-14 17:50:55 -0400 |
| commit | fea6f1833b5bbff7066bcde1fa1141c9717bbad2 (patch) | |
| tree | ed9899aa290e0aea2961f1cc655494a58723e18c /drivers | |
| parent | bd28ce008bdc68ef5902f68d2d62cbb7fa78c415 (diff) | |
HID: move dell quirks
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers')
| -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 | ||
