aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2011-05-18 11:06:31 -0400
committerJiri Kosina <jkosina@suse.cz>2011-05-18 11:06:49 -0400
commit6b7b8e488bbdedeccabdd001a78ffcbe43bb8a3a (patch)
treef2f77cc31b4548745778fca6a51b09e1d8a49804 /drivers/hid
parentb50f315cbb865079a16a12fd9ae6083f98fd592c (diff)
parentc1d10d18c542278b7fbc413c289d3cb6219da6b3 (diff)
Merge branch 'master' into upstream.
This is sync with Linus' tree to receive KEY_IMAGES definition that went in through input tree.
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/Kconfig13
-rw-r--r--drivers/hid/hid-apple.c6
-rw-r--r--drivers/hid/hid-core.c12
-rw-r--r--drivers/hid/hid-debug.c2
-rw-r--r--drivers/hid/hid-ids.h7
-rw-r--r--drivers/hid/hid-input.c4
-rw-r--r--drivers/hid/hid-lgff.c2
-rw-r--r--drivers/hid/hid-magicmouse.c4
-rw-r--r--drivers/hid/hid-ortek.c16
-rw-r--r--drivers/hid/hid-picolcd.c5
-rw-r--r--drivers/hid/hid-roccat-kone.h2
-rw-r--r--drivers/hid/hid-roccat-pyra.c3
-rw-r--r--drivers/hid/usbhid/hid-quirks.c1
13 files changed, 61 insertions, 16 deletions
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index b7ec4057841d..9de9e97149ec 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -185,7 +185,7 @@ config HID_EZKEY
185 Support for Ezkey BTC 8193 keyboard. 185 Support for Ezkey BTC 8193 keyboard.
186 186
187config HID_KEYTOUCH 187config HID_KEYTOUCH
188 tristate "Keyoutch HID devices" 188 tristate "Keytouch HID devices"
189 depends on USB_HID 189 depends on USB_HID
190 ---help--- 190 ---help---
191 Support for Keytouch HID devices not fully compliant with 191 Support for Keytouch HID devices not fully compliant with
@@ -340,10 +340,17 @@ config HID_NTRIG
340 Support for N-Trig touch screen. 340 Support for N-Trig touch screen.
341 341
342config HID_ORTEK 342config HID_ORTEK
343 tristate "Ortek PKB-1700/WKB-2000 wireless keyboard and mouse trackpad" 343 tristate "Ortek PKB-1700/WKB-2000/Skycable wireless keyboard and mouse trackpad"
344 depends on USB_HID 344 depends on USB_HID
345 ---help--- 345 ---help---
346 Support for Ortek PKB-1700/WKB-2000 wireless keyboard + mouse trackpad. 346 There are certain devices which have LogicalMaximum wrong in the keyboard
347 usage page of their report descriptor. The most prevailing ones so far
348 are manufactured by Ortek, thus the name of the driver. Currently
349 supported devices by this driver are
350
351 - Ortek PKB-1700
352 - Ortek WKB-2000
353 - Skycable wireless presenter
347 354
348config HID_PANTHERLORD 355config HID_PANTHERLORD
349 tristate "Pantherlord/GreenAsia game controller" 356 tristate "Pantherlord/GreenAsia game controller"
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index 61aa71233392..b85744fe8464 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -481,6 +481,12 @@ static const struct hid_device_id apple_devices[] = {
481 .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD }, 481 .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
482 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS), 482 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS),
483 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS }, 483 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
484 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI),
485 .driver_data = APPLE_HAS_FN },
486 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO),
487 .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
488 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS),
489 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
484 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI), 490 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI),
485 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, 491 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
486 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO), 492 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO),
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index c3d66269ed7d..408c4bea4d8d 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -306,7 +306,7 @@ static int hid_parser_global(struct hid_parser *parser, struct hid_item *item)
306 case HID_GLOBAL_ITEM_TAG_PUSH: 306 case HID_GLOBAL_ITEM_TAG_PUSH:
307 307
308 if (parser->global_stack_ptr == HID_GLOBAL_STACK_SIZE) { 308 if (parser->global_stack_ptr == HID_GLOBAL_STACK_SIZE) {
309 dbg_hid("global enviroment stack overflow\n"); 309 dbg_hid("global environment stack overflow\n");
310 return -1; 310 return -1;
311 } 311 }
312 312
@@ -317,7 +317,7 @@ static int hid_parser_global(struct hid_parser *parser, struct hid_item *item)
317 case HID_GLOBAL_ITEM_TAG_POP: 317 case HID_GLOBAL_ITEM_TAG_POP:
318 318
319 if (!parser->global_stack_ptr) { 319 if (!parser->global_stack_ptr) {
320 dbg_hid("global enviroment stack underflow\n"); 320 dbg_hid("global environment stack underflow\n");
321 return -1; 321 return -1;
322 } 322 }
323 323
@@ -1333,6 +1333,9 @@ static const struct hid_device_id hid_have_special_driver[] = {
1333 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) }, 1333 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) },
1334 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) }, 1334 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) },
1335 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) }, 1335 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) },
1336 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI) },
1337 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO) },
1338 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS) },
1336 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI) }, 1339 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI) },
1337 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO) }, 1340 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO) },
1338 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) }, 1341 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) },
@@ -1446,8 +1449,10 @@ static const struct hid_device_id hid_have_special_driver[] = {
1446 { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPLUS) }, 1449 { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPLUS) },
1447 { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KOVAPLUS) }, 1450 { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KOVAPLUS) },
1448 { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_PYRA_WIRED) }, 1451 { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_PYRA_WIRED) },
1452 { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_PYRA_WIRELESS) },
1449 { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) }, 1453 { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) },
1450 { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE) }, 1454 { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE) },
1455 { HID_USB_DEVICE(USB_VENDOR_ID_SKYCABLE, USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER) },
1451 { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) }, 1456 { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
1452 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) }, 1457 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
1453 { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE) }, 1458 { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE) },
@@ -1840,6 +1845,9 @@ static const struct hid_device_id hid_mouse_ignore_list[] = {
1840 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) }, 1845 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) },
1841 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) }, 1846 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) },
1842 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) }, 1847 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) },
1848 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI) },
1849 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO) },
1850 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS) },
1843 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, 1851 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
1844 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, 1852 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
1845 { } 1853 { }
diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index 555382fc7417..bae48745bb42 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -341,7 +341,7 @@ static const struct hid_usage_entry hid_usage_table[] = {
341 { 0x85, 0x83, "DesignCapacity" }, 341 { 0x85, 0x83, "DesignCapacity" },
342 { 0x85, 0x85, "ManufacturerDate" }, 342 { 0x85, 0x85, "ManufacturerDate" },
343 { 0x85, 0x89, "iDeviceChemistry" }, 343 { 0x85, 0x89, "iDeviceChemistry" },
344 { 0x85, 0x8b, "Rechargable" }, 344 { 0x85, 0x8b, "Rechargeable" },
345 { 0x85, 0x8f, "iOEMInformation" }, 345 { 0x85, 0x8f, "iOEMInformation" },
346 { 0x85, 0x8d, "CapacityGranularity1" }, 346 { 0x85, 0x8d, "CapacityGranularity1" },
347 { 0x85, 0xd0, "ACPresent" }, 347 { 0x85, 0xd0, "ACPresent" },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index d485894ff4db..00a94b535d28 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -103,6 +103,9 @@
103#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI 0x0242 103#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI 0x0242
104#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO 0x0243 104#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO 0x0243
105#define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS 0x0244 105#define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS 0x0244
106#define USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI 0x0245
107#define USB_DEVICE_ID_APPLE_WELLSPRING5_ISO 0x0246
108#define USB_DEVICE_ID_APPLE_WELLSPRING5_JIS 0x0247
106#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI 0x0239 109#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI 0x0239
107#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO 0x023a 110#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO 0x023a
108#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b 111#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b
@@ -147,6 +150,7 @@
147#define USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6 0x0f01 150#define USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6 0x0f01
148 151
149#define USB_VENDOR_ID_CH 0x068e 152#define USB_VENDOR_ID_CH 0x068e
153#define USB_DEVICE_ID_CH_PRO_THROTTLE 0x00f1
150#define USB_DEVICE_ID_CH_PRO_PEDALS 0x00f2 154#define USB_DEVICE_ID_CH_PRO_PEDALS 0x00f2
151#define USB_DEVICE_ID_CH_COMBATSTICK 0x00f4 155#define USB_DEVICE_ID_CH_COMBATSTICK 0x00f4
152#define USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE 0x0051 156#define USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE 0x0051
@@ -521,6 +525,9 @@
521#define USB_DEVICE_ID_SAMSUNG_IR_REMOTE 0x0001 525#define USB_DEVICE_ID_SAMSUNG_IR_REMOTE 0x0001
522#define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE 0x0600 526#define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE 0x0600
523 527
528#define USB_VENDOR_ID_SKYCABLE 0x1223
529#define USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER 0x3F07
530
524#define USB_VENDOR_ID_SONY 0x054c 531#define USB_VENDOR_ID_SONY 0x054c
525#define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE 0x024b 532#define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE 0x024b
526#define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268 533#define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index cd74203c8178..33dde8724e02 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -900,8 +900,8 @@ int hidinput_connect(struct hid_device *hid, unsigned int force)
900 hid->ll_driver->hidinput_input_event; 900 hid->ll_driver->hidinput_input_event;
901 input_dev->open = hidinput_open; 901 input_dev->open = hidinput_open;
902 input_dev->close = hidinput_close; 902 input_dev->close = hidinput_close;
903 input_dev->setkeycode_new = hidinput_setkeycode; 903 input_dev->setkeycode = hidinput_setkeycode;
904 input_dev->getkeycode_new = hidinput_getkeycode; 904 input_dev->getkeycode = hidinput_getkeycode;
905 905
906 input_dev->name = hid->name; 906 input_dev->name = hid->name;
907 input_dev->phys = hid->phys; 907 input_dev->phys = hid->phys;
diff --git a/drivers/hid/hid-lgff.c b/drivers/hid/hid-lgff.c
index 90d0ef2c92be..f099079ca6b9 100644
--- a/drivers/hid/hid-lgff.c
+++ b/drivers/hid/hid-lgff.c
@@ -73,6 +73,8 @@ static const struct dev_type devices[] = {
73 { 0x046d, 0xc293, ff_joystick }, 73 { 0x046d, 0xc293, ff_joystick },
74 { 0x046d, 0xc294, ff_wheel }, 74 { 0x046d, 0xc294, ff_wheel },
75 { 0x046d, 0xc295, ff_joystick }, 75 { 0x046d, 0xc295, ff_joystick },
76 { 0x046d, 0xc298, ff_wheel },
77 { 0x046d, 0xc299, ff_wheel },
76 { 0x046d, 0xca03, ff_wheel }, 78 { 0x046d, 0xca03, ff_wheel },
77}; 79};
78 80
diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index 318cc40df92d..0ec91c18a421 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -76,7 +76,7 @@ MODULE_PARM_DESC(report_undeciphered, "Report undeciphered multi-touch state fie
76 * This is true when single_touch_id is equal to NO_TOUCHES. If multiple touches 76 * This is true when single_touch_id is equal to NO_TOUCHES. If multiple touches
77 * are down and the touch providing for single touch emulation is lifted, 77 * are down and the touch providing for single touch emulation is lifted,
78 * single_touch_id is equal to SINGLE_TOUCH_UP. While single touch emulation is 78 * single_touch_id is equal to SINGLE_TOUCH_UP. While single touch emulation is
79 * occuring, single_touch_id corresponds with the tracking id of the touch used. 79 * occurring, single_touch_id corresponds with the tracking id of the touch used.
80 */ 80 */
81#define NO_TOUCHES -1 81#define NO_TOUCHES -1
82#define SINGLE_TOUCH_UP -2 82#define SINGLE_TOUCH_UP -2
@@ -418,6 +418,8 @@ static void magicmouse_setup_input(struct input_dev *input, struct hid_device *h
418 input_set_abs_params(input, ABS_MT_POSITION_Y, -2456, 418 input_set_abs_params(input, ABS_MT_POSITION_Y, -2456,
419 2565, 4, 0); 419 2565, 4, 0);
420 } 420 }
421
422 input_set_events_per_packet(input, 60);
421 } 423 }
422 424
423 if (report_undeciphered) { 425 if (report_undeciphered) {
diff --git a/drivers/hid/hid-ortek.c b/drivers/hid/hid-ortek.c
index f9b7dd4f607f..0ffa1d2d64f0 100644
--- a/drivers/hid/hid-ortek.c
+++ b/drivers/hid/hid-ortek.c
@@ -1,8 +1,14 @@
1/* 1/*
2 * HID driver for Ortek PKB-1700/WKB-2000 (wireless keyboard + mouse trackpad). 2 * HID driver for various devices which are apparently based on the same chipset
3 * Fixes LogicalMaximum error in HID report description. 3 * from certain vendor which produces chips that contain wrong LogicalMaximum
4 * value in their HID report descriptor. Currently supported devices are:
5 *
6 * Ortek PKB-1700
7 * Ortek WKB-2000
8 * Skycable wireless presenter
4 * 9 *
5 * Copyright (c) 2010 Johnathon Harris <jmharris@gmail.com> 10 * Copyright (c) 2010 Johnathon Harris <jmharris@gmail.com>
11 * Copyright (c) 2011 Jiri Kosina
6 */ 12 */
7 13
8/* 14/*
@@ -22,8 +28,11 @@ static __u8 *ortek_report_fixup(struct hid_device *hdev, __u8 *rdesc,
22 unsigned int *rsize) 28 unsigned int *rsize)
23{ 29{
24 if (*rsize >= 56 && rdesc[54] == 0x25 && rdesc[55] == 0x01) { 30 if (*rsize >= 56 && rdesc[54] == 0x25 && rdesc[55] == 0x01) {
25 hid_info(hdev, "Fixing up Ortek WKB-2000 report descriptor\n"); 31 hid_info(hdev, "Fixing up logical minimum in report descriptor (Ortek)\n");
26 rdesc[55] = 0x92; 32 rdesc[55] = 0x92;
33 } else if (*rsize >= 54 && rdesc[52] == 0x25 && rdesc[53] == 0x01) {
34 hid_info(hdev, "Fixing up logical minimum in report descriptor (Skycable)\n");
35 rdesc[53] = 0x65;
27 } 36 }
28 return rdesc; 37 return rdesc;
29} 38}
@@ -31,6 +40,7 @@ static __u8 *ortek_report_fixup(struct hid_device *hdev, __u8 *rdesc,
31static const struct hid_device_id ortek_devices[] = { 40static const struct hid_device_id ortek_devices[] = {
32 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) }, 41 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) },
33 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) }, 42 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) },
43 { HID_USB_DEVICE(USB_VENDOR_ID_SKYCABLE, USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER) },
34 { } 44 { }
35}; 45};
36MODULE_DEVICE_TABLE(hid, ortek_devices); 46MODULE_DEVICE_TABLE(hid, ortek_devices);
diff --git a/drivers/hid/hid-picolcd.c b/drivers/hid/hid-picolcd.c
index 6f0642ea1009..9d8710f8bc79 100644
--- a/drivers/hid/hid-picolcd.c
+++ b/drivers/hid/hid-picolcd.c
@@ -944,6 +944,7 @@ static int picolcd_init_backlight(struct picolcd_data *data, struct hid_report *
944 } 944 }
945 945
946 memset(&props, 0, sizeof(props)); 946 memset(&props, 0, sizeof(props));
947 props.type = BACKLIGHT_RAW;
947 props.max_brightness = 0xff; 948 props.max_brightness = 0xff;
948 bdev = backlight_device_register(dev_name(dev), dev, data, 949 bdev = backlight_device_register(dev_name(dev), dev, data,
949 &picolcd_blops, &props); 950 &picolcd_blops, &props);
@@ -1805,13 +1806,13 @@ static ssize_t picolcd_debug_flash_write(struct file *f, const char __user *u,
1805/* 1806/*
1806 * Notes: 1807 * Notes:
1807 * - concurrent writing is prevented by mutex and all writes must be 1808 * - concurrent writing is prevented by mutex and all writes must be
1808 * n*64 bytes and 64-byte aligned, each write being preceeded by an 1809 * n*64 bytes and 64-byte aligned, each write being preceded by an
1809 * ERASE which erases a 64byte block. 1810 * ERASE which erases a 64byte block.
1810 * If less than requested was written or an error is returned for an 1811 * If less than requested was written or an error is returned for an
1811 * otherwise correct write request the next 64-byte block which should 1812 * otherwise correct write request the next 64-byte block which should
1812 * have been written is in undefined state (mostly: original, erased, 1813 * have been written is in undefined state (mostly: original, erased,
1813 * (half-)written with write error) 1814 * (half-)written with write error)
1814 * - reading can happend without special restriction 1815 * - reading can happen without special restriction
1815 */ 1816 */
1816static const struct file_operations picolcd_debug_flash_fops = { 1817static const struct file_operations picolcd_debug_flash_fops = {
1817 .owner = THIS_MODULE, 1818 .owner = THIS_MODULE,
diff --git a/drivers/hid/hid-roccat-kone.h b/drivers/hid/hid-roccat-kone.h
index 64abb5b8a59a..4109a028e138 100644
--- a/drivers/hid/hid-roccat-kone.h
+++ b/drivers/hid/hid-roccat-kone.h
@@ -166,7 +166,7 @@ enum kone_mouse_events {
166 /* osd events are thought to be display on screen */ 166 /* osd events are thought to be display on screen */
167 kone_mouse_event_osd_dpi = 0xa0, 167 kone_mouse_event_osd_dpi = 0xa0,
168 kone_mouse_event_osd_profile = 0xb0, 168 kone_mouse_event_osd_profile = 0xb0,
169 /* TODO clarify meaning and occurence of kone_mouse_event_calibration */ 169 /* TODO clarify meaning and occurrence of kone_mouse_event_calibration */
170 kone_mouse_event_calibration = 0xc0, 170 kone_mouse_event_calibration = 0xc0,
171 kone_mouse_event_call_overlong_macro = 0xe0, 171 kone_mouse_event_call_overlong_macro = 0xe0,
172 /* switch events notify if user changed values with mousebutton click */ 172 /* switch events notify if user changed values with mousebutton click */
diff --git a/drivers/hid/hid-roccat-pyra.c b/drivers/hid/hid-roccat-pyra.c
index 160f481344f6..38280c055a19 100644
--- a/drivers/hid/hid-roccat-pyra.c
+++ b/drivers/hid/hid-roccat-pyra.c
@@ -652,7 +652,8 @@ static int pyra_raw_event(struct hid_device *hdev, struct hid_report *report,
652static const struct hid_device_id pyra_devices[] = { 652static const struct hid_device_id pyra_devices[] = {
653 { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, 653 { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT,
654 USB_DEVICE_ID_ROCCAT_PYRA_WIRED) }, 654 USB_DEVICE_ID_ROCCAT_PYRA_WIRED) },
655 /* TODO add USB_DEVICE_ID_ROCCAT_PYRA_WIRELESS after testing */ 655 { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT,
656 USB_DEVICE_ID_ROCCAT_PYRA_WIRELESS) },
656 { } 657 { }
657}; 658};
658 659
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 9a94b643ccde..a8426f15e9ab 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -59,6 +59,7 @@ static const struct hid_blacklist {
59 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_COMBATSTICK, HID_QUIRK_NOGET }, 59 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_COMBATSTICK, HID_QUIRK_NOGET },
60 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE, HID_QUIRK_NOGET }, 60 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE, HID_QUIRK_NOGET },
61 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE, HID_QUIRK_NOGET }, 61 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE, HID_QUIRK_NOGET },
62 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_THROTTLE, HID_QUIRK_NOGET },
62 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS, HID_QUIRK_NOGET }, 63 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS, HID_QUIRK_NOGET },
63 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK, HID_QUIRK_NOGET }, 64 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK, HID_QUIRK_NOGET },
64 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET }, 65 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET },