[PATCH v2 0/6] hid: Introduce device groups

From: Henrik Rydberg
Date: Sun Apr 22 2012 - 02:02:49 EST

Hi all,

Here is the second version of the extension to the device-driver
matching mechanism. The previous version did not work well with
out-of-tree drivers. The default group handling was backwards, so I
had better list the right behavior here for easier review. For
starters, drivers belong to one of these groups:

HID_GROUP_ANY - The default for all drivers. Matches any device.
HID_GROUP_GENERIC - The generic drivers. Matches generic devices only.
HID_GROUP_MULTITOUCH - The MT driver. Matches MT devices only.

A HID device is placed in one of the above groups during device
add. The logic is determined by the hid core. It does not matter to
userland which group a device belongs to, because all out-of-tree
drivers and all dynamic device ids belong to the default group, which
matches any device. The device groups only steer udev to the right
module, without loss of generality. In fact, switching drivers in
userland is simplified.

A known outstanding issue is the rebinding of a hid device to a driver
that affects the report parsing. I am currently testing a patchset for
it, which should go in before this one. However, since it is largely
orthogonal, and it seems the present patchset does the right thing
with regards to everything else, I thought I'd give it another spin

The patches apply to 3.4-rc3; final version will apply for next.


Henrik Rydberg (6):
hid: Add device group to modalias
hid: Parse the device before adding it
hid: Create a generic device group
hid: Allow bus wildcard matching
hid-multitouch: Switch to device groups
hid-multitouch: Remove remnant quirk handling

drivers/hid/hid-core.c | 130 ++++++++++++++-------------------------
drivers/hid/hid-input.c | 11 ----
drivers/hid/hid-multitouch.c | 3 +-
drivers/hid/usbhid/hid-core.c | 2 +-
include/linux/hid.h | 20 +++---
include/linux/mod_devicetable.h | 4 +-
net/bluetooth/hidp/core.c | 2 +-
scripts/mod/file2alias.c | 5 +-
8 files changed, 71 insertions(+), 106 deletions(-)


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/