Commit fea6f1833b5bbff7066bcde1fa1141c9717bbad2

Authored by Jiri Slaby
Committed by Jiri Kosina
1 parent bd28ce008b

HID: move dell quirks

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Showing 6 changed files with 86 additions and 2 deletions Side-by-side Diff

... ... @@ -131,6 +131,13 @@
131 131 ---help---
132 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 141 config HID_EZKEY
135 142 tristate "Ezkey"
136 143 default m
drivers/hid/Makefile
... ... @@ -18,6 +18,7 @@
18 18 obj-$(CONFIG_HID_CHERRY) += hid-cherry.o
19 19 obj-$(CONFIG_HID_CHICONY) += hid-chicony.o
20 20 obj-$(CONFIG_HID_CYPRESS) += hid-cypress.o
  21 +obj-$(CONFIG_HID_DELL) += hid-dell.o
21 22 obj-$(CONFIG_HID_EZKEY) += hid-ezkey.o
22 23 obj-$(CONFIG_HID_GYRATION) += hid-gyration.o
23 24 obj-$(CONFIG_HID_LOGITECH) += hid-logitech.o
drivers/hid/hid-core.c
... ... @@ -1170,6 +1170,7 @@
1170 1170 { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1) },
1171 1171 { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_2) },
1172 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 1174 { HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) },
1174 1175 { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE) },
1175 1176 { HID_USB_DEVICE(USB_VENDOR_ID_LABTEC, USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD) },
drivers/hid/hid-dell.c
  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);
drivers/hid/hid-dummy.c
... ... @@ -22,6 +22,9 @@
22 22 #ifdef CONFIG_HID_CYPRESS_MODULE
23 23 HID_COMPAT_CALL_DRIVER(cypress);
24 24 #endif
  25 +#ifdef CONFIG_HID_DELL_MODULE
  26 + HID_COMPAT_CALL_DRIVER(dell);
  27 +#endif
25 28 #ifdef CONFIG_HID_EZKEY_MODULE
26 29 HID_COMPAT_CALL_DRIVER(ezkey);
27 30 #endif
drivers/hid/usbhid/hid-quirks.c
... ... @@ -60,8 +60,6 @@
60 60  
61 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 63 { 0, 0 }
66 64 };
67 65