summaryrefslogtreecommitdiffstats
path: root/scripts/mod
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 /scripts/mod
parenta7197c2e4120ce40e7e3f5580336b9a1dc791220 (diff)
downloadop-kernel-dev-4d53b8012f1f01ddb3f24db2031b042bb4cbd0d0.zip
op-kernel-dev-4d53b8012f1f01ddb3f24db2031b042bb4cbd0d0.tar.gz
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 'scripts/mod')
-rw-r--r--scripts/mod/file2alias.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index 8e730cc..fe967ce 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -336,10 +336,12 @@ static int do_hid_entry(const char *filename,
struct hid_device_id *id, char *alias)
{
id->bus = TO_NATIVE(id->bus);
+ id->group = TO_NATIVE(id->group);
id->vendor = TO_NATIVE(id->vendor);
id->product = TO_NATIVE(id->product);
sprintf(alias, "hid:b%04X", id->bus);
+ ADD(alias, "g", id->group != HID_GROUP_ANY, id->group);
ADD(alias, "v", id->vendor != HID_ANY_ID, id->vendor);
ADD(alias, "p", id->product != HID_ANY_ID, id->product);
OpenPOWER on IntegriCloud