2009-01-02 11:35:17

by Jan Scholz

[permalink] [raw]
Subject: [BUG] Regression in v2.6.28 introduced by: 'USB: skip Set-Interface(0) if already in altsetting 0'

Hi,

In v2.6.28 my usb bluetooth device disappears after suspend to ram:

$ hcitool dev
Devices:
hci0 00:0D:93:15:D6:E8
$ echo mem > /sys/power/state
$ hcitool dev
Devices:
$

The problem does not occur with the (older) hci_usb.ko, but only with
btusb.ko.

This is the output of lsusb:
Bus 001 Device 003: ID 05ac:8203 Apple Computer, Inc. Bluetooth HCI

Bisecting finds commit 24c0996 (USB: skip Set-Interface(0) if already in
altsetting 0) as the first bad commit, and indeed if I use 2.6.28 with
24c0996 reverted, the bluetooth device survives suspend to ram.

If you need more information/test/etc please let me know.

Regards,
Jan

> commit 24c0996a6b73e2554104961afcc8659534503e0d
> Author: Alan Stern <[email protected]>
> Date: Mon Dec 1 10:24:41 2008 -0500
>
> USB: skip Set-Interface(0) if already in altsetting 0
>
> When a driver unbinds from an interface, usbcore always sends a
> Set-Interface request to reinstall altsetting 0. Unforunately, quite
> a few devices have buggy firmware that crashes when it receives this
> request.
>
> To avoid such problems, this patch (as1180) arranges to send the
> Set-Interface request only when the interface is not already in
> altsetting 0.
>
> Signed-off-by: Alan Stern <[email protected]>
> Signed-off-by: Greg Kroah-Hartman <[email protected]>

--
Jan Scholz ____ ____ __ ___
( ___)(_ _) /__\ / __)
Frankfurt Institute for Advanced Studies )__) _)(_ /(__)\ \__ \
(__) (____)(__)(__)(___/
Goethe Universitaet Frankfurt
Ruth-Moufang-Str. 1 Tel. 069-798-47534
60438 Frankfurt am Main


2009-01-02 12:01:39

by Ingo Molnar

[permalink] [raw]
Subject: Re: [BUG] Regression in v2.6.28 introduced by: 'USB: skip Set-Interface(0) if already in altsetting 0'


* Jan Scholz <[email protected]> wrote:

> Hi,
>
> In v2.6.28 my usb bluetooth device disappears after suspend to ram:
>
> $ hcitool dev
> Devices:
> hci0 00:0D:93:15:D6:E8
> $ echo mem > /sys/power/state
> $ hcitool dev
> Devices:
> $
>
> The problem does not occur with the (older) hci_usb.ko, but only with
> btusb.ko.
>
> This is the output of lsusb:
> Bus 001 Device 003: ID 05ac:8203 Apple Computer, Inc. Bluetooth HCI
>
> Bisecting finds commit 24c0996 (USB: skip Set-Interface(0) if already in
> altsetting 0) as the first bad commit, and indeed if I use 2.6.28 with
> 24c0996 reverted, the bluetooth device survives suspend to ram.
>
> If you need more information/test/etc please let me know.
>
> Regards,
> Jan
>
> > commit 24c0996a6b73e2554104961afcc8659534503e0d
> > Author: Alan Stern <[email protected]>
> > Date: Mon Dec 1 10:24:41 2008 -0500
> >
> > USB: skip Set-Interface(0) if already in altsetting 0
> >
> > When a driver unbinds from an interface, usbcore always sends a
> > Set-Interface request to reinstall altsetting 0. Unforunately, quite
> > a few devices have buggy firmware that crashes when it receives this
> > request.
> >
> > To avoid such problems, this patch (as1180) arranges to send the
> > Set-Interface request only when the interface is not already in
> > altsetting 0.
> >
> > Signed-off-by: Alan Stern <[email protected]>
> > Signed-off-by: Greg Kroah-Hartman <[email protected]>

here's a fix patch that appears to be dealing with aspects of this commit:

http://lkml.org/lkml/2009/1/2/47

you might want to give it a try.

Ingo

2009-01-02 12:20:24

by Jan Scholz

[permalink] [raw]
Subject: Re: [BUG] Regression in v2.6.28 introduced by: 'USB: skip Set-Interface(0) if already in altsetting 0'

Ingo Molnar <[email protected]> writes:

> * Jan Scholz <[email protected]> wrote:
>
>> Hi,
>>
>> In v2.6.28 my usb bluetooth device disappears after suspend to ram:
>>
>> $ hcitool dev
>> Devices:
>> hci0 00:0D:93:15:D6:E8
>> $ echo mem > /sys/power/state
>> $ hcitool dev
>> Devices:
>> $
>>
>> The problem does not occur with the (older) hci_usb.ko, but only with
>> btusb.ko.
>>
>> This is the output of lsusb:
>> Bus 001 Device 003: ID 05ac:8203 Apple Computer, Inc. Bluetooth HCI
>>
>> Bisecting finds commit 24c0996 (USB: skip Set-Interface(0) if already in
>> altsetting 0) as the first bad commit, and indeed if I use 2.6.28 with
>> 24c0996 reverted, the bluetooth device survives suspend to ram.
>>
>> If you need more information/test/etc please let me know.
>>
>> Regards,
>> Jan
>>
>> > commit 24c0996a6b73e2554104961afcc8659534503e0d
>> > Author: Alan Stern <[email protected]>
>> > Date: Mon Dec 1 10:24:41 2008 -0500
>> >
>> > USB: skip Set-Interface(0) if already in altsetting 0
>> >
>> > When a driver unbinds from an interface, usbcore always sends a
>> > Set-Interface request to reinstall altsetting 0. Unforunately, quite
>> > a few devices have buggy firmware that crashes when it receives this
>> > request.
>> >
>> > To avoid such problems, this patch (as1180) arranges to send the
>> > Set-Interface request only when the interface is not already in
>> > altsetting 0.
>> >
>> > Signed-off-by: Alan Stern <[email protected]>
>> > Signed-off-by: Greg Kroah-Hartman <[email protected]>
>
> here's a fix patch that appears to be dealing with aspects of this commit:
>
> http://lkml.org/lkml/2009/1/2/47
>
> you might want to give it a try.
>
> Ingo
>

Hi Ingo,

That patch is actually just 24c099 reverted, and as I wrote in the
previous post it indeed fixes the problem.

Thanks anyway,
Jan