OSDN Git Service

HID: asus: Add hid_is_using_ll_driver(usb_hid_driver) check
authorHans de Goede <hdegoede@redhat.com>
Tue, 28 Apr 2020 14:22:51 +0000 (16:22 +0200)
committerJiri Kosina <jkosina@suse.cz>
Wed, 6 May 2020 09:40:03 +0000 (11:40 +0200)
Add a hid_is_using_ll_driver(usb_hid_driver) check to ensure that the
parent device is an usb_interface, before casting the parent device
pointer to an usb_interface pointer with to_usb_interface().

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

index b3292ff..719eff5 100644 (file)
@@ -842,7 +842,8 @@ static int asus_probe(struct hid_device *hdev, const struct hid_device_id *id)
        if (drvdata->quirks & QUIRK_IS_MULTITOUCH)
                drvdata->tp = &asus_i2c_tp;
 
-       if (drvdata->quirks & QUIRK_T100_KEYBOARD) {
+       if ((drvdata->quirks & QUIRK_T100_KEYBOARD) &&
+           hid_is_using_ll_driver(hdev, &usb_hid_driver)) {
                struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
 
                if (intf->altsetting->desc.bInterfaceNumber == T100_TPAD_INTF) {