Merge branch 'for-3.15/hid-core-ll-transport-cleanup' into for-linus
[firefly-linux-kernel-4.4.55.git] / drivers / hid / hid-input.c
index a713e6211419c880ddd0a39597b78f16ad84919a..333190f771f5f43afff8124ef4ca8279d3308acf 100644 (file)
@@ -350,9 +350,9 @@ static int hidinput_get_battery_property(struct power_supply *psy,
                        ret = -ENOMEM;
                        break;
                }
-               ret = dev->hid_get_raw_report(dev, dev->battery_report_id,
-                                             buf, 2,
-                                             dev->battery_report_type);
+               ret = hid_hw_raw_request(dev, dev->battery_report_id, buf, 2,
+                                        dev->battery_report_type,
+                                        HID_REQ_GET_REPORT);
 
                if (ret != 2) {
                        ret = -ENODATA;
@@ -1150,7 +1150,7 @@ static void hidinput_led_worker(struct work_struct *work)
                                              led_work);
        struct hid_field *field;
        struct hid_report *report;
-       int len;
+       int len, ret;
        __u8 *buf;
 
        field = hidinput_get_led_field(hid);
@@ -1184,7 +1184,10 @@ static void hidinput_led_worker(struct work_struct *work)
 
        hid_output_report(report, buf);
        /* synchronous output report */
-       hid->hid_output_raw_report(hid, buf, len, HID_OUTPUT_REPORT);
+       ret = hid_hw_output_report(hid, buf, len);
+       if (ret == -ENOSYS)
+               hid_hw_raw_request(hid, report->id, buf, len, HID_OUTPUT_REPORT,
+                               HID_REQ_SET_REPORT);
        kfree(buf);
 }
 
@@ -1263,10 +1266,7 @@ static struct hid_input *hidinput_allocate(struct hid_device *hid)
        }
 
        input_set_drvdata(input_dev, hid);
-       if (hid->ll_driver->hidinput_input_event)
-               input_dev->event = hid->ll_driver->hidinput_input_event;
-       else if (hid->ll_driver->request || hid->hid_output_raw_report)
-               input_dev->event = hidinput_input_event;
+       input_dev->event = hidinput_input_event;
        input_dev->open = hidinput_open;
        input_dev->close = hidinput_close;
        input_dev->setkeycode = hidinput_setkeycode;