diff --git a/drivers/hid/hid-cp2112.c b/drivers/hid/hid-cp2112.c index 3913eb9fec2a..56be85a9a77c 100644 --- a/drivers/hid/hid-cp2112.c +++ b/drivers/hid/hid-cp2112.c @@ -290,7 +290,12 @@ static int cp2112_hid_output(struct hid_device *hdev, u8 *data, size_t count, if (!buf) return -ENOMEM; - ret = hdev->hid_output_raw_report(hdev, buf, count, report_type); + if (report_type == HID_OUTPUT_REPORT) + ret = hid_hw_output_report(hdev, buf, count); + else + ret = hid_hw_raw_request(hdev, buf[0], buf, count, report_type, + HID_REQ_SET_REPORT); + kfree(buf); return ret; }