Hello,
I have an Asus Bluetooth adapter based on the Broadcom BCM20702A0 chipset. It works perfectly fine with all the devices I’m currently using it with.
Here below the current configuration of USB devices on my machine, given by the command lsusb:
$ lsusb -t
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=ohci-pci/1p, 12M
|__ Port 001: Dev 003, If 0, Class=Human Interface Device, Driver=usbhid, 12M
/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=ehci-pci/1p, 480M
/: Bus 003.Port 001: Dev 001, Class=root_hub, Driver=ehci-pci/1p, 480M
/: Bus 004.Port 001: Dev 001, Class=root_hub, Driver=ehci-pci/1p, 480M
/: Bus 005.Port 001: Dev 001, Class=root_hub, Driver=ehci-pci/1p, 480M
/: Bus 006.Port 001: Dev 001, Class=root_hub, Driver=ohci-pci/1p, 12M
|__ Port 001: Dev 003, If 0, Class=Vendor Specific Class, Driver=btusb, 12M
|__ Port 001: Dev 003, If 1, Class=Vendor Specific Class, Driver=btusb, 12M
|__ Port 001: Dev 003, If 2, Class=Vendor Specific Class, Driver=btusb, 12M
|__ Port 001: Dev 003, If 3, Class=Application Specific Interface, Driver=[none], 12M
/: Bus 007.Port 001: Dev 001, Class=root_hub, Driver=ohci-pci/1p, 12M
/: Bus 008.Port 001: Dev 001, Class=root_hub, Driver=ohci-pci/1p, 12M
/: Bus 009.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/6p, 480M
|__ Port 005: Dev 002, If 0, Class=Vendor Specific Class, Driver=[none], 12M
/: Bus 010.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/: Bus 011.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/6p, 480M
|__ Port 004: Dev 002, If 0, Class=Vendor Specific Class, Driver=[none], 12M
|__ Port 004: Dev 002, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 005: Dev 003, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 006: Dev 004, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 001: Dev 005, If 0, Class=Human Interface Device, Driver=usbhid, 12M
/: Bus 012.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/: Bus 013.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 480M
|__ Port 002: Dev 007, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 002: Dev 007, If 1, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 002: Dev 007, If 2, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 002: Dev 007, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 003: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 001: Dev 004, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 001: Dev 004, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 001: Dev 004, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 002: Dev 005, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 002: Dev 005, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 002: Dev 005, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 003: Dev 006, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 003: Dev 006, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 003: Dev 006, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 003: Dev 006, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 004: Dev 003, If 0, Class=Vendor Specific Class, Driver=[none], 480M
/: Bus 014.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M
|__ Port 003: Dev 002, If 0, Class=Hub, Driver=hub/4p, 5000M
The bt adapter is currently connected to Bus 6 / Port 1. In order give it the capability to wake the machine via Bluetooth, I added the following udev rule:
ACTION=="add|change", DRIVERS=="usb", SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", ATTR{idProduct}=="17cb", TEST=="power/wakeup", ATTR{power/wakeup}="enabled"
Information on Vendor and Product have been given by command lsusb. I followed what reported in the Arch Wiki concerning Wakeup_triggers. Then, I reloaded the udev rules for making the one above effective:
sudo udevadm control --reload-rules && sudo udevadm trigger
When the device is connected to Bus 6 / Port 1, the wakeup trigger does not work. However, if I connect the same device to Bus 11 / Port 1, it is working perfectly instead.
Just to clarify, Bus 6 maps a usb adapter at the back of my machine, while Bus 11 maps a usb hub at the front, embedded in the machine chassis. In the lsusb list, the only major difference I can spot is the driver used: the not working one is under driver ohci-pci, while the working one is under driver xhci_hcd.
t’s there a hardware difference between the two? Would it be possible for me to enable the wakeup via Bluetooth also for devices under driver ohci-pci?
All the best,
Dave