|
@@ -280,6 +280,13 @@ static int hidp_send_report(struct hidp_session *session, struct hid_report *rep
|
|
|
return hidp_queue_report(session, buf, rsize);
|
|
|
}
|
|
|
|
|
|
+static int hidp_output_raw_report(struct hid_device *hid, unsigned char *data, size_t count)
|
|
|
+{
|
|
|
+ if (hidp_queue_report(hid->driver_data, data, count))
|
|
|
+ return -ENOMEM;
|
|
|
+ return count;
|
|
|
+}
|
|
|
+
|
|
|
static void hidp_idle_timeout(unsigned long arg)
|
|
|
{
|
|
|
struct hidp_session *session = (struct hidp_session *) arg;
|
|
@@ -785,6 +792,8 @@ static int hidp_setup_hid(struct hidp_session *session,
|
|
|
hid->dev.parent = hidp_get_device(session);
|
|
|
hid->ll_driver = &hidp_hid_driver;
|
|
|
|
|
|
+ hid->hid_output_raw_report = hidp_output_raw_report;
|
|
|
+
|
|
|
err = hid_add_device(hid);
|
|
|
if (err < 0)
|
|
|
goto failed;
|