diff options
author | Daniel Mack <daniel@caiaq.de> | 2010-07-12 13:28:27 -0400 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2010-07-19 05:54:16 -0400 |
commit | 3a343ee4509c982552b35fbc99d3213f3bb1acde (patch) | |
tree | a65aace9df737363bf437d8cef0cf9c9b7267121 | |
parent | fc99f22c5de2177431cada350417ac6e353380c7 (diff) |
HID: add HID_QUIRK_HIDINPUT_FORCE
For devices with exotic HID report descriptors, it might be necessary to
make the HID core force the registration of an input device. Make that
possible by introducing a new quirk type.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r-- | drivers/hid/hid-core.c | 2 | ||||
-rw-r--r-- | include/linux/hid.h | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 866e54ec5fb2..7ccee899b59e 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -1157,6 +1157,8 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask) | |||
1157 | 1157 | ||
1158 | if (hdev->quirks & HID_QUIRK_HIDDEV_FORCE) | 1158 | if (hdev->quirks & HID_QUIRK_HIDDEV_FORCE) |
1159 | connect_mask |= (HID_CONNECT_HIDDEV_FORCE | HID_CONNECT_HIDDEV); | 1159 | connect_mask |= (HID_CONNECT_HIDDEV_FORCE | HID_CONNECT_HIDDEV); |
1160 | if (hdev->quirks & HID_QUIRK_HIDINPUT_FORCE) | ||
1161 | connect_mask |= HID_CONNECT_HIDINPUT_FORCE; | ||
1160 | if (hdev->bus != BUS_USB) | 1162 | if (hdev->bus != BUS_USB) |
1161 | connect_mask &= ~HID_CONNECT_HIDDEV; | 1163 | connect_mask &= ~HID_CONNECT_HIDDEV; |
1162 | if (hid_hiddev(hdev)) | 1164 | if (hid_hiddev(hdev)) |
diff --git a/include/linux/hid.h b/include/linux/hid.h index 895001f7f4b2..42a0f1d11365 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h | |||
@@ -311,6 +311,7 @@ struct hid_item { | |||
311 | #define HID_QUIRK_HIDDEV_FORCE 0x00000010 | 311 | #define HID_QUIRK_HIDDEV_FORCE 0x00000010 |
312 | #define HID_QUIRK_BADPAD 0x00000020 | 312 | #define HID_QUIRK_BADPAD 0x00000020 |
313 | #define HID_QUIRK_MULTI_INPUT 0x00000040 | 313 | #define HID_QUIRK_MULTI_INPUT 0x00000040 |
314 | #define HID_QUIRK_HIDINPUT_FORCE 0x00000080 | ||
314 | #define HID_QUIRK_SKIP_OUTPUT_REPORTS 0x00010000 | 315 | #define HID_QUIRK_SKIP_OUTPUT_REPORTS 0x00010000 |
315 | #define HID_QUIRK_FULLSPEED_INTERVAL 0x10000000 | 316 | #define HID_QUIRK_FULLSPEED_INTERVAL 0x10000000 |
316 | #define HID_QUIRK_NO_INIT_REPORTS 0x20000000 | 317 | #define HID_QUIRK_NO_INIT_REPORTS 0x20000000 |