Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

HID: asus: Cleanup Asus T101HA keyboard-dock handling

There is no need to use a quirk and then return -ENODEV from the
asus_probe() function to avoid that hid-asus binds to the hiddev
for the USB-interface for the hid-multitouch touchpad.

The hid-multitouch hiddev has a group of HID_GROUP_MULTITOUCH_WIN_8,
so the same result can be achieved by making the hid_device_id entry
for the dock in the asus_devices[] table only match on HID_GROUP_GENERIC
instead of having it match HID_GROUP_ANY.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

authored by

Hans de Goede and committed by
Jiri Kosina
a94f66ae 4b4f6cec

+9 -11
+9 -11
drivers/hid/hid-asus.c
··· 79 79 #define QUIRK_T100_KEYBOARD BIT(6) 80 80 #define QUIRK_T100CHI BIT(7) 81 81 #define QUIRK_G752_KEYBOARD BIT(8) 82 - #define QUIRK_T101HA_DOCK BIT(9) 83 - #define QUIRK_T90CHI BIT(10) 84 - #define QUIRK_MEDION_E1239T BIT(11) 85 - #define QUIRK_ROG_NKEY_KEYBOARD BIT(12) 82 + #define QUIRK_T90CHI BIT(9) 83 + #define QUIRK_MEDION_E1239T BIT(10) 84 + #define QUIRK_ROG_NKEY_KEYBOARD BIT(11) 86 85 87 86 #define I2C_KEYBOARD_QUIRKS (QUIRK_FIX_NOTEBOOK_REPORT | \ 88 87 QUIRK_NO_INIT_REPORTS | \ ··· 1081 1082 return ret; 1082 1083 } 1083 1084 1084 - /* use hid-multitouch for T101HA touchpad */ 1085 - if (id->driver_data & QUIRK_T101HA_DOCK && 1086 - hdev->collection->usage == HID_GD_MOUSE) 1087 - return -ENODEV; 1088 - 1089 1085 ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT); 1090 1086 if (ret) { 1091 1087 hid_err(hdev, "Asus hw start failed: %d\n", ret); ··· 1234 1240 { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, 1235 1241 USB_DEVICE_ID_ASUSTEK_T100TAF_KEYBOARD), 1236 1242 QUIRK_T100_KEYBOARD | QUIRK_NO_CONSUMER_USAGES }, 1237 - { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, 1238 - USB_DEVICE_ID_ASUSTEK_T101HA_KEYBOARD), QUIRK_T101HA_DOCK }, 1239 1243 { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_ASUS_AK1D) }, 1240 1244 { HID_USB_DEVICE(USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_ASUS_MD_5110) }, 1241 1245 { HID_USB_DEVICE(USB_VENDOR_ID_JESS, USB_DEVICE_ID_ASUS_MD_5112) }, ··· 1241 1249 USB_DEVICE_ID_ASUSTEK_T100CHI_KEYBOARD), QUIRK_T100CHI }, 1242 1250 { HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE_MEDION_E1239T), 1243 1251 QUIRK_MEDION_E1239T }, 1252 + /* 1253 + * Note bind to the HID_GROUP_GENERIC group, so that we only bind to the keyboard 1254 + * part, while letting hid-multitouch.c handle the touchpad. 1255 + */ 1256 + { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 1257 + USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_T101HA_KEYBOARD) }, 1244 1258 { } 1245 1259 }; 1246 1260 MODULE_DEVICE_TABLE(hid, asus_devices);