[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CABVT_geRjB12v8XnRvNbf_2h6-hQJwgxuFkqxBhwQv2nrZ-w9A@mail.gmail.com>
Date: Sat, 24 Jan 2015 13:55:39 +0400
From: Kirill Elagin <kirelagin@...il.com>
To: Oliver Neukum <oneukum@...e.de>
Cc: linux-kernel@...r.kernel.org, linux-usb@...r.kernel.org
Subject: Re: USB autosuspend causing trouble with bluetooth
On Wed, Jan 21, 2015 at 12:47 AM, Oliver Neukum <oneukum@...e.de> 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists