Skip to content

Commit 2b9accb

Browse files
committed
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: HID: Add support for CH Pro Throttle HID: hid-magicmouse: Increase evdev buffer size HID: add FF support for Logitech G25/G27 HID: roccat: Add support for wireless variant of Pyra HID: Fix typo Keyoutch -> Keytouch HID: add support for Skycable 0x3f07 wireless presenter
2 parents 7e3bf1d + da60325 commit 2b9accb

File tree

8 files changed

+36
-7
lines changed

8 files changed

+36
-7
lines changed

drivers/hid/Kconfig

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ config HID_EZKEY
185185
Support for Ezkey BTC 8193 keyboard.
186186

187187
config HID_KEYTOUCH
188-
tristate "Keyoutch HID devices"
188+
tristate "Keytouch HID devices"
189189
depends on USB_HID
190190
---help---
191191
Support for Keytouch HID devices not fully compliant with
@@ -340,10 +340,17 @@ config HID_NTRIG
340340
Support for N-Trig touch screen.
341341

342342
config 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"
344344
depends on USB_HID
345345
---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
347354

348355
config HID_PANTHERLORD
349356
tristate "Pantherlord/GreenAsia game controller"

drivers/hid/hid-core.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1449,8 +1449,10 @@ static const struct hid_device_id hid_have_special_driver[] = {
14491449
{ HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPLUS) },
14501450
{ HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KOVAPLUS) },
14511451
{ 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) },
14521453
{ HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) },
14531454
{ 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) },
14541456
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
14551457
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
14561458
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE) },

drivers/hid/hid-ids.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@
150150
#define USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6 0x0f01
151151

152152
#define USB_VENDOR_ID_CH 0x068e
153+
#define USB_DEVICE_ID_CH_PRO_THROTTLE 0x00f1
153154
#define USB_DEVICE_ID_CH_PRO_PEDALS 0x00f2
154155
#define USB_DEVICE_ID_CH_COMBATSTICK 0x00f4
155156
#define USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE 0x0051
@@ -524,6 +525,9 @@
524525
#define USB_DEVICE_ID_SAMSUNG_IR_REMOTE 0x0001
525526
#define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE 0x0600
526527

528+
#define USB_VENDOR_ID_SKYCABLE 0x1223
529+
#define USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER 0x3F07
530+
527531
#define USB_VENDOR_ID_SONY 0x054c
528532
#define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE 0x024b
529533
#define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268

drivers/hid/hid-lgff.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ static const struct dev_type devices[] = {
7373
{ 0x046d, 0xc293, ff_joystick },
7474
{ 0x046d, 0xc294, ff_wheel },
7575
{ 0x046d, 0xc295, ff_joystick },
76+
{ 0x046d, 0xc298, ff_wheel },
77+
{ 0x046d, 0xc299, ff_wheel },
7678
{ 0x046d, 0xca03, ff_wheel },
7779
};
7880

drivers/hid/hid-magicmouse.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,8 @@ static void magicmouse_setup_input(struct input_dev *input, struct hid_device *h
418418
input_set_abs_params(input, ABS_MT_POSITION_Y, -2456,
419419
2565, 4, 0);
420420
}
421+
422+
input_set_events_per_packet(input, 60);
421423
}
422424

423425
if (report_undeciphered) {

drivers/hid/hid-ortek.c

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
/*
2-
* HID driver for Ortek PKB-1700/WKB-2000 (wireless keyboard + mouse trackpad).
3-
* Fixes LogicalMaximum error in HID report description.
2+
* HID driver for various devices which are apparently based on the same chipset
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
49
*
510
* Copyright (c) 2010 Johnathon Harris <jmharris@gmail.com>
11+
* Copyright (c) 2011 Jiri Kosina
612
*/
713

814
/*
@@ -22,15 +28,19 @@ static __u8 *ortek_report_fixup(struct hid_device *hdev, __u8 *rdesc,
2228
unsigned int *rsize)
2329
{
2430
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");
2632
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;
2736
}
2837
return rdesc;
2938
}
3039

3140
static const struct hid_device_id ortek_devices[] = {
3241
{ HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) },
3342
{ 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) },
3444
{ }
3545
};
3646
MODULE_DEVICE_TABLE(hid, ortek_devices);

drivers/hid/hid-roccat-pyra.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,8 @@ static int pyra_raw_event(struct hid_device *hdev, struct hid_report *report,
652652
static const struct hid_device_id pyra_devices[] = {
653653
{ HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT,
654654
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) },
656657
{ }
657658
};
658659

drivers/hid/usbhid/hid-quirks.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ static const struct hid_blacklist {
5959
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_COMBATSTICK, HID_QUIRK_NOGET },
6060
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE, HID_QUIRK_NOGET },
6161
{ 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 },
6263
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS, HID_QUIRK_NOGET },
6364
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK, HID_QUIRK_NOGET },
6465
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET },

0 commit comments

Comments
 (0)