mirror of
https://github.com/AuxXxilium/eudev.git
synced 2025-01-16 00:57:07 +07:00
4b6769f612
We must never access random devices in /dev which do not belong to the event we are handling. Hard-coding /dev/hidrawX, and looping over all devices is absolutely not acceptable --> hook into hidraw events. We can not relay on (rather random) properties merged into the parent device by earlier rules --> use libudev to find the sibling device with a matching interface. Libusb does not fit into udev's use case. We never want want to scan and open() all usb devices in the system, just to find the device we are already handling the event for --> put all the stupid scanning into a single function and prepare for a fixed libusb or drop it later.
30 lines
1.3 KiB
Plaintext
30 lines
1.3 KiB
Plaintext
# do not edit this file, it will be overwritten on update
|
|
|
|
ACTION!="add", GOTO="hid2hci_end"
|
|
SUBSYSTEM!="usb", GOTO="hid2hci_end"
|
|
|
|
# Variety of Dell Bluetooth devices - match on a mouse device that is
|
|
# self powered and where a HID report needs to be sent to switch modes
|
|
# Known supported devices: 413c:8154, 413c:8158, 413c:8162
|
|
ATTR{bInterfaceClass}=="03", ATTR{bInterfaceSubClass}=="01", ATTR{bInterfaceProtocol}=="02", \
|
|
ATTRS{bDeviceClass}=="00", ATTRS{idVendor}=="413c", ATTRS{bmAttributes}=="e0", \
|
|
RUN+="hid2hci --method=dell --devpath=%p"
|
|
|
|
# Logitech devices (hidraw)
|
|
KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345abce]|c71[34bc]", \
|
|
RUN+="hid2hci --method=logitech-hid --devpath=%p"
|
|
|
|
ENV{DEVTYPE}!="usb_device", GOTO="hid2hci_end"
|
|
|
|
# When a Dell device recovers from S3, the mouse child needs to be repoked
|
|
# Unfortunately the only event seen is the BT device disappearing, so the mouse
|
|
# device needs to be chased down on the USB bus.
|
|
ATTR{bDeviceClass}=="e0", ATTR{bDeviceSubClass}=="01", ATTR{bDeviceProtocol}=="01", \
|
|
ATTR{idVendor}=="413c", ATTR{bmAttributes}=="e0", \
|
|
ENV{REMOVE_CMD}="hid2hci --method=dell --devpath=%p --find-sibling-intf=03:01:02"
|
|
|
|
# CSR devices
|
|
ATTR{idVendor}=="0a12|0458|05ac", ATTR{idProduct}=="1000", RUN+="hid2hci --method=csr --devpath=%p"
|
|
|
|
LABEL="hid2hci_end"
|