--- x/drivers/hid/usbhid/hid-core.c +++ y/drivers/hid/usbhid/hid-core.c @@ -1002,9 +1002,7 @@ static int usbhid_parse(struct hid_devic quirks |= HID_QUIRK_NOGET; } - if (usb_get_extra_descriptor(interface, HID_DT_HID, &hdesc) && - (!interface->desc.bNumEndpoints || - usb_get_extra_descriptor(&interface->endpoint[0], HID_DT_HID, &hdesc))) { + if (usb_get_extra_descriptor(interface, HID_DT_HID, &hdesc)) { dbg_hid("class descriptor not present\n"); return -ENODEV; }