|
@@ -807,12 +807,17 @@ void usbhid_init_reports(struct hid_device *hid)
|
|
|
{
|
|
|
struct hid_report *report;
|
|
|
struct usbhid_device *usbhid = hid->driver_data;
|
|
|
+ struct hid_report_enum *report_enum;
|
|
|
int err, ret;
|
|
|
|
|
|
- list_for_each_entry(report, &hid->report_enum[HID_INPUT_REPORT].report_list, list)
|
|
|
- usbhid_submit_report(hid, report, USB_DIR_IN);
|
|
|
+ if (!(hid->quirks & HID_QUIRK_NO_INIT_INPUT_REPORTS)) {
|
|
|
+ report_enum = &hid->report_enum[HID_INPUT_REPORT];
|
|
|
+ list_for_each_entry(report, &report_enum->report_list, list)
|
|
|
+ usbhid_submit_report(hid, report, USB_DIR_IN);
|
|
|
+ }
|
|
|
|
|
|
- list_for_each_entry(report, &hid->report_enum[HID_FEATURE_REPORT].report_list, list)
|
|
|
+ report_enum = &hid->report_enum[HID_FEATURE_REPORT];
|
|
|
+ list_for_each_entry(report, &report_enum->report_list, list)
|
|
|
usbhid_submit_report(hid, report, USB_DIR_IN);
|
|
|
|
|
|
err = 0;
|