diff options
Diffstat (limited to 'drivers/hid/hid-kye.c')
| -rw-r--r-- | drivers/hid/hid-kye.c | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/hid/hid-kye.c b/drivers/hid/hid-kye.c index 73845120295..e7769636759 100644 --- a/drivers/hid/hid-kye.c +++ b/drivers/hid/hid-kye.c @@ -342,6 +342,10 @@ static __u8 *kye_report_fixup(struct hid_device *hdev, __u8 *rdesc,  		rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 83,  					"Genius Gx Imperator Keyboard");  		break; +	case USB_DEVICE_ID_GENIUS_MANTICORE: +		rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 104, +					"Genius Manticore Keyboard"); +		break;  	}  	return rdesc;  } @@ -418,6 +422,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 +451,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);  | 
