chiark / gitweb /
hid2hci: narrow matches to real HCI devices
authorMartin Pitt <martin.pitt@ubuntu.com>
Fri, 26 Jun 2009 06:17:23 +0000 (08:17 +0200)
committerMartin Pitt <martin.pitt@ubuntu.com>
Fri, 26 Jun 2009 06:17:23 +0000 (08:17 +0200)
The previous rules just checked bInterfaceProtocol but not the actual device
and interface class. This caused the hci rules to be applied for Dell USB hubs
and attached input devices like keyboards and mouses as well, breaking them
completely.

Tighten the match to also check device and interface class/subclass.

https://launchpad.net/bugs/392144

extras/hid2hci/70-hid2hci.rules

index 2cb2746..caf9120 100644 (file)
@@ -8,7 +8,7 @@ SUBSYSTEM!="usb", GOTO="hid2hci_end"
 # is where a HID report needs to be sent to switch modes.
 #
 # Known supported devices: 413c:8154, 413c:8158, 413c:8162
-ATTR{bInterfaceProtocol}=="02", ATTRS{idVendor}=="413c", ATTRS{bmAttributes}=="e0", \
+ATTR{bInterfaceClass}=="03", ATTR{bInterfaceSubClass}=="01", ATTR{bInterfaceProtocol}=="02", ATTRS{bDeviceClass}=="00", ATTRS{idVendor}=="413c", ATTRS{bmAttributes}=="e0", \
     RUN+="hid2hci --method dell -v $attr{idVendor} -p $attr{idProduct} --mode hci"
 
 ENV{DEVTYPE}!="usb_device", GOTO="hid2hci_end"