Re: [linux-usb-devel] 2.6.18-rc6-mm1 (-mm2): ohci resume problem

From: Rafael J. Wysocki
Date: Thu Sep 14 2006 - 12:50:14 EST


On Thursday, 14 September 2006 17:04, Alan Stern wrote:
> On Thu, 14 Sep 2006, Rafael J. Wysocki wrote:
>
> > > > Try adding some ehci_dbg() lines in there (copy the form of the line just
> > > > after restart:). We want to follow the value of
> > > > hcd->self.root_hub->state. Initially it should be equal to
> > > > USB_STATE_SUSPENDED (= 8), and it shouldn't change. But somewhere it is
> > > > getting set to USB_STATE_CONFIGURED (= 7). I don't know where, but almost
> > > > certainly somewhere in this routine. If you can find out where that
> > > > happens, I'd appreciate it.
> > >
> > > Done, but it shows hcd->self.root_hub->state is already 7 right after restart.
> >
> > BTW, all of the systems on which the problem shows up seem to be 64-bit.
> >
> > If you can't reproduce it on a 32-bit system, some type casting may be wrong
> > somewhere.
>
> I realized last night what the problem must be. It's extremely obvious in
> retrospect, but I happen to have a blind spot in this particular area.
>
> All you guys must have CONFIG_USB_SUSPEND turned off. Mattis certainly
> does; I checked his .config. Now I hardly ever do any testing without
> CONFIG_USB_SUSPEND, since there's not much point working on power
> management code if your kernel isn't set up to actually suspend devices.
> As a result I missed seeing the problems caused by the autosuspend
> changes.

Well, on my box the USB suspend also doesn't work with USB_SUSPEND set,
but the reason is different:

sb usb2: 'global' suspend -16
hub 2-0:1.0: suspend error -16
suspend_device(): usb_suspend+0x0/0x5b [usbcore]() returns -16
Could not suspend device usb2: error -16

The .config and full dmesg output (with the three debug patches applied) are
attached.

Greetings,
Rafael


--
You never change things by fighting the existing reality.
R. Buckminster Fuller

Attachment: dmesg-usb-suspend.log.gz
Description: GNU Zip compressed data

Attachment: kernel-config.gz
Description: GNU Zip compressed data