summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2012-04-23 12:07:02 +0200
committerJiri Kosina <jkosina@suse.cz>2012-05-01 12:54:54 +0200
commit4d53b8012f1f01ddb3f24db2031b042bb4cbd0d0 (patch)
tree4536bb9fefb51c212f28dee84e810ab0d6854a6e /include/linux
parenta7197c2e4120ce40e7e3f5580336b9a1dc791220 (diff)
downloadlinux-4d53b8012f1f01ddb3f24db2031b042bb4cbd0d0.tar.gz
linux-4d53b8012f1f01ddb3f24db2031b042bb4cbd0d0.tar.bz2
linux-4d53b8012f1f01ddb3f24db2031b042bb4cbd0d0.zip
HID: Add device group to modalias
HID devices are only partially presented to userland. Hotplugged devices emit events containing a modalias based on the basic bus, vendor and product entities. However, in practise a hid device can depend on details such as a single usb interface or a particular item in a report descriptor. This patch adds a device group to the hid device id, and broadcasts it using uevent and the device modalias. The module alias generation is modified to match. As a consequence, a device with a non-zero group will be processed by the corresponding group driver instead of by the generic hid driver. Signed-off-by: Henrik Rydberg <rydberg@euromail.se> Acked-by: Benjamin Tissoires <benjamin.tissoires@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/hid.h1
-rw-r--r--include/linux/mod_devicetable.h3
2 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/hid.h b/include/linux/hid.h
index d8e7cc7f894f..a0e27ddb887d 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -476,6 +476,7 @@ struct hid_device { /* device report descriptor */
unsigned maxcollection; /* Number of parsed collections */
unsigned maxapplication; /* Number of applications */
__u16 bus; /* BUS ID */
+ __u16 group; /* Report group */
__u32 vendor; /* Vendor ID */
__u32 product; /* Product ID */
__u32 version; /* HID version */
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index 501da4cb8a6d..55ed0b0dc610 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -132,10 +132,11 @@ struct usb_device_id {
#define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200
#define HID_ANY_ID (~0)
+#define HID_GROUP_ANY 0x0000
struct hid_device_id {
__u16 bus;
- __u16 pad1;
+ __u16 group;
__u32 vendor;
__u32 product;
kernel_ulong_t driver_data