aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid/hid-kye.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/hid/hid-kye.c')
-rw-r--r--drivers/hid/hid-kye.c13
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,
341 case USB_DEVICE_ID_GENIUS_GX_IMPERATOR: 341 case USB_DEVICE_ID_GENIUS_GX_IMPERATOR:
342 rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 83, 342 rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 83,
343 "Genius Gx Imperator Keyboard"); 343 "Genius Gx Imperator Keyboard");
344 case USB_DEVICE_ID_GENIUS_MANTICORE:
345 rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 104,
346 "Genius Manticore Keyboard");
344 break; 347 break;
345 } 348 }
346 return rdesc; 349 return rdesc;
@@ -418,6 +421,14 @@ static int kye_probe(struct hid_device *hdev, const struct hid_device_id *id)
418 goto enabling_err; 421 goto enabling_err;
419 } 422 }
420 break; 423 break;
424 case USB_DEVICE_ID_GENIUS_MANTICORE:
425 /*
426 * The manticore keyboard needs to have all the interfaces
427 * opened at least once to be fully functional.
428 */
429 if (hid_hw_open(hdev))
430 hid_hw_close(hdev);
431 break;
421 } 432 }
422 433
423 return 0; 434 return 0;
@@ -439,6 +450,8 @@ static const struct hid_device_id kye_devices[] = {
439 USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) }, 450 USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) },
440 { HID_USB_DEVICE(USB_VENDOR_ID_KYE, 451 { HID_USB_DEVICE(USB_VENDOR_ID_KYE,
441 USB_DEVICE_ID_GENIUS_GX_IMPERATOR) }, 452 USB_DEVICE_ID_GENIUS_GX_IMPERATOR) },
453 { HID_USB_DEVICE(USB_VENDOR_ID_KYE,
454 USB_DEVICE_ID_GENIUS_MANTICORE) },
442 { } 455 { }
443}; 456};
444MODULE_DEVICE_TABLE(hid, kye_devices); 457MODULE_DEVICE_TABLE(hid, kye_devices);