diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-27 20:41:54 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-27 20:41:54 -0800 |
commit | ba33fef0f62a97e1faf285a5ee2bcad85622f4fd (patch) | |
tree | 20cfba3b21a8edaffc118958cc0a1d7f746ac3cb /drivers/hid/hid-kye.c | |
parent | b7fe6bf7f40e73400a4da959d1ba14e29961c6de (diff) | |
parent | 80897aa787ecd58eabb29deab7cbec9249c9b7e6 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
Pull HID fixes from Jiri Kosina:
- fix compat ioctl leak in uhid, by David Herrmann
- fix scheduling in atomic context (causing actual lockups in real
world) in hid-sony driver, by Sven Eckelmann
- revert patch introducing VID/PID conflict, by Jiri Kosina
- support from various new device IDs by Benjamin Tissoires and
KaiChung Cheng
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
HID: uhid: fix leak for 64/32 UHID_CREATE
HID: kye: fix unresponsive keyboard
HID: kye: Add report fixup for Genius Manticore Keyboard
HID: multicouh: add PID VID to support 1 new Wistron optical touch device
HID: appleir: force input to be set
Revert "HID: wiimote: add LEGO-wiimote VID"
HID: sony: Send FF commands in non-atomic context
Diffstat (limited to 'drivers/hid/hid-kye.c')
-rw-r--r-- | drivers/hid/hid-kye.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/hid/hid-kye.c b/drivers/hid/hid-kye.c index 73845120295e..ecb5ca669e97 100644 --- a/drivers/hid/hid-kye.c +++ b/drivers/hid/hid-kye.c @@ -341,6 +341,9 @@ static __u8 *kye_report_fixup(struct hid_device *hdev, __u8 *rdesc, case USB_DEVICE_ID_GENIUS_GX_IMPERATOR: rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 83, "Genius Gx Imperator Keyboard"); + case USB_DEVICE_ID_GENIUS_MANTICORE: + rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 104, + "Genius Manticore Keyboard"); break; } return rdesc; @@ -418,6 +421,14 @@ static int kye_probe(struct hid_device *hdev, const struct hid_device_id *id) goto enabling_err; } break; + case USB_DEVICE_ID_GENIUS_MANTICORE: + /* + * The manticore keyboard needs to have all the interfaces + * opened at least once to be fully functional. + */ + if (hid_hw_open(hdev)) + hid_hw_close(hdev); + break; } return 0; @@ -439,6 +450,8 @@ static const struct hid_device_id kye_devices[] = { USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) }, { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_GENIUS_GX_IMPERATOR) }, + { HID_USB_DEVICE(USB_VENDOR_ID_KYE, + USB_DEVICE_ID_GENIUS_MANTICORE) }, { } }; MODULE_DEVICE_TABLE(hid, kye_devices); |