HID: Add a hid quirk for input sync override
authorHenrik Rydberg <rydberg@thabit.(none)>
Tue, 24 Aug 2010 08:54:44 +0000 (10:54 +0200)
committerJiri Kosina <jkosina@suse.cz>
Tue, 21 Sep 2010 14:11:44 +0000 (16:11 +0200)
As of lately, HID devices which send per-frame data split over several
HID reports have started to emerge. This patch adds a quirk which
allows the HID driver to take over the input layer synchronization,
and hence the control of the frame boundary.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-input.c
include/linux/hid.h

index 6c03dcc5760a277097bb17d866cc33aa17db484a..b186f6d0febabd29a5f243f227475cbdaa2d9766 100644 (file)
@@ -659,6 +659,9 @@ void hidinput_report_event(struct hid_device *hid, struct hid_report *report)
 {
        struct hid_input *hidinput;
 
+       if (hid->quirks & HID_QUIRK_NO_INPUT_SYNC)
+               return;
+
        list_for_each_entry(hidinput, &hid->inputs, list)
                input_sync(hidinput->input);
 }
index 42a0f1d1136540b5aada9f816a2289f687d01c57..4cfe02c3fa4e2c40932493cf73501ce0d5c5f440 100644 (file)
@@ -316,6 +316,7 @@ struct hid_item {
 #define HID_QUIRK_FULLSPEED_INTERVAL           0x10000000
 #define HID_QUIRK_NO_INIT_REPORTS              0x20000000
 #define HID_QUIRK_NO_IGNORE                    0x40000000
+#define HID_QUIRK_NO_INPUT_SYNC                        0x80000000
 
 /*
  * This is the global environment of the parser. This information is