Re: USB autosuspend causing trouble with bluetooth

From: Kirill Elagin
Date: Sat Jan 24 2015 - 04:56:28 EST


On Wed, Jan 21, 2015 at 12:47 AM, Oliver Neukum <oneukum@xxxxxxx> wrote:
> On Tue, 2015-01-20 at 23:25 +0400, Kirill Elagin wrote:
>
>> Hm, I'm pretty sure I never touched anything with `port` in its name,
>> all the ports are set to `auto` (that's what laptop-mode-tools does).
>
> Here we go.
>
>> Right now I think I see three possibly unrelated issues:
>>
>> Issue #1. BT trackpad not working properly when connected to the
>> builtin bluetooth adapter.
>> ----------
>>
>> The adapter is attached to a USB1.1 hub:
>>
>> ~~~~
>> # lsusb -t
>> ...
>> /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
>> |__ Port 2: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
>> |__ Port 2: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
>> |__ Port 2: Dev 2, If 2, Class=Vendor Specific Class, Driver=, 12M
>> |__ Port 2: Dev 2, If 3, Class=Application Specific Interface, Driver=, 12M
>> ...
>>
>> # cat usb3/power/control
>> auto
>>
>> # cat usb3/3-*/usb3-port*/power/control
>> auto
>> auto
>
> Try setting this to on.
>
>> # cat usb3/3-2/power/control
>> on
>
> Here "auto" should work. Please try.
> [..]
>> Issue #2. No hotplug with USB1.1:
>> ----------
>>
>> To see this I pick one physical port. When I plug a USB1.1 device it
>> appears on bus 4 port 2; a USB2.0 device appears on bus 1 port 4.
>>
>> ~~~~
>> # cat usb4/power/control
>> auto
>> # cat usb4/4-*/usb4-port*/power/control
>> auto
>> auto
>
> Please set this to "on"
>
>> # cat usb1/power/control
>> auto
>> # cat usb1/1-*/usb1-port*/power/control
>
> Please set this to "on"

I started with the defaults (`auto` everywhere) and did:

~~~~
for f in /sys/bus/usb/devices/usb*/*-*/*-port*/power/control; do echo
on > $f; done
~~~~

This had absolutely _no_ effect on hotplug. As before, when I insert
the keyboard receiver nothing happens until I echo `on` to
`usb6/power/control`.

>
> [..]
>>
>> Issue #3. No hot-plug-out for USB1.1.
>> --------
>
>> I think that the first two issues are fixed by keeping all the USB1.1
>> hubs and the builtin BT always `on`, but I just wanted to know whether
>> those are hardware or software bugs.
>
> I suspect this is caused by outdated laptop-mode-tools.

I have laptop-mode-tools-1.66 and actually I initially blamed the new
runtime-pm module. But it turns out, `laptop_mode` doesn't touch the
ports at all.

>
> Basically setting the port controls (as opposed to hub and device
> controls) to "auto" tells the kernel that it may disable hotplugging
> to save energy. Hotunplug for devices that need remote wakeup will
> still work. Likewise if you disable autosuspend of the attached devices.
>
> Regards
> Oliver
>
>
--
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/