]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/hid/hid-core.c
HID: pass numbered reports properly to hidraw
[linux-2.6-omap-h63xx.git] / drivers / hid / hid-core.c
index d7b2f6868a6df8625e3a6ef43980ed30c17d5655..10f925b892d7493cb40856cfbd7cda0c6d51315c 100644 (file)
@@ -988,8 +988,13 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i
 
        if ((hid->claimed & HID_CLAIMED_HIDDEV) && hid->hiddev_report_event)
                hid->hiddev_report_event(hid, report);
-       if (hid->claimed & HID_CLAIMED_HIDRAW)
-               hidraw_report_event(hid, data, size);
+       if (hid->claimed & HID_CLAIMED_HIDRAW) {
+               /* numbered reports need to be passed with the report num */
+               if (report_enum->numbered)
+                       hidraw_report_event(hid, data - 1, size + 1);
+               else
+                       hidraw_report_event(hid, data, size);
+       }
 
        for (n = 0; n < report->maxfield; n++)
                hid_input_field(hid, report->field[n], data, interrupt);