Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b94f7d5d authored by Yusuke Fujimaki's avatar Yusuke Fujimaki Committed by Jiri Kosina
Browse files

HID: asus: add support for VivoBook E200HA



Asus X205TA and E200HA built-in keyboard contain wrong logical maximum value in
report descriptor.

This patch correct wrong logical maximum in report descriptor.

Signed-off-by: default avatarYusuke Fujimaki <usk.fujimaki@gmail.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent eeb01a57
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -138,7 +138,11 @@ config HID_ASUS
	tristate "Asus"
	depends on I2C_HID
	---help---
	Support for Asus X205TA built-in keyboard via i2c.
	Support for Asus notebook built-in keyboard via i2c.

	Supported devices:
	- EeeBook X205TA
	- VivoBook E200HA

config HID_AUREAL
	tristate "Aureal"
+8 −4
Original line number Diff line number Diff line
/*
 *  HID driver for Asus X205TA built-in keyboard.
 *  HID driver for Asus notebook built-in keyboard.
 *  Fixes small logical maximum to match usage maximum.
 *
 *  Currently supported devices are:
 *    EeeBook X205TA
 *    VivoBook E200HA
 *
 *  Copyright (c) 2016 Yusuke Fujimaki <usk.fujimaki@gmail.com>
 *
 *  This module based on hid-ortek by
@@ -25,15 +29,15 @@
static __u8 *asus_report_fixup(struct hid_device *hdev, __u8 *rdesc,
		unsigned int *rsize)
{
	if (*rsize >= 180 && rdesc[54] == 0x25 && rdesc[55] == 0x65) {
		hid_info(hdev, "Fixing up Asus X205TA report descriptor\n");
	if (*rsize >= 56 && rdesc[54] == 0x25 && rdesc[55] == 0x65) {
		hid_info(hdev, "Fixing up Asus notebook report descriptor\n");
		rdesc[55] = 0xdd;
	}
	return rdesc;
}

static const struct hid_device_id asus_devices[] = {
	{ HID_I2C_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_X205TA_KEYBOARD) },
	{ HID_I2C_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_NOTEBOOK_KEYBOARD) },
	{ }
};
MODULE_DEVICE_TABLE(hid, asus_devices);
+1 −1
Original line number Diff line number Diff line
@@ -1856,7 +1856,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_JIS) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
	{ HID_I2C_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_X205TA_KEYBOARD) },
	{ HID_I2C_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_NOTEBOOK_KEYBOARD) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_AUREAL, USB_DEVICE_ID_AUREAL_W01RN) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_BETOP_2185BFM, 0x2208) },
+1 −1
Original line number Diff line number Diff line
@@ -163,7 +163,7 @@
#define USB_VENDOR_ID_ASUSTEK		0x0b05
#define USB_DEVICE_ID_ASUSTEK_LCM	0x1726
#define USB_DEVICE_ID_ASUSTEK_LCM2	0x175b
#define USB_DEVICE_ID_ASUSTEK_X205TA_KEYBOARD  0x8585
#define USB_DEVICE_ID_ASUSTEK_NOTEBOOK_KEYBOARD	0x8585

#define USB_VENDOR_ID_ATEN		0x0557
#define USB_DEVICE_ID_ATEN_UC100KM	0x2004