* 2.6.14-rc1-mm1: usb breaks suspend @ 2005-10-17 10:01 Pavel Machek 2005-10-17 18:54 ` [linux-pm] " Alan Stern 0 siblings, 1 reply; 14+ messages in thread From: Pavel Machek @ 2005-10-17 10:01 UTC (permalink / raw) To: kernel list, Linux-pm mailing list, linux-usb-devel [-- Attachment #1: Type: text/plain, Size: 269 bytes --] Hi! In -mm, usb breaks suspend to disk. Compiled without CONFIG_USB_SUSPEND, it just plainly fails; iwth USB_SUSPEND, it actually tries to suspend USB, but it fails and machine refuses to suspend. Is it known or is it worth debugging? Pavel -- Thanks, Sharp! [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-pm] 2.6.14-rc1-mm1: usb breaks suspend 2005-10-17 10:01 2.6.14-rc1-mm1: usb breaks suspend Pavel Machek @ 2005-10-17 18:54 ` Alan Stern 2005-10-17 21:11 ` Rafael J. Wysocki 2005-10-18 0:13 ` [linux-pm] 2.6.14-rc1-mm1: usb breaks suspend Pavel Machek 0 siblings, 2 replies; 14+ messages in thread From: Alan Stern @ 2005-10-17 18:54 UTC (permalink / raw) To: Pavel Machek; +Cc: kernel list, Linux-pm mailing list, linux-usb-devel On Mon, 17 Oct 2005, Pavel Machek wrote: > Hi! > > In -mm, usb breaks suspend to disk. Compiled without > CONFIG_USB_SUSPEND, it just plainly fails; iwth USB_SUSPEND, it > actually tries to suspend USB, but it fails and machine refuses to > suspend. Is it known or is it worth debugging? More details please. 2.6.14-rc1 is a little old by now. With 2.6.14-rc4 I don't know about -mm, but there's a problem with the uhci-hcd driver in Greg K-H's tree. I submitted a patch earlier today: http://marc.theaimsgroup.com/?l=linux-usb-devel&m=112956023807659&w=2 Alan Stern ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-pm] 2.6.14-rc1-mm1: usb breaks suspend 2005-10-17 18:54 ` [linux-pm] " Alan Stern @ 2005-10-17 21:11 ` Rafael J. Wysocki 2005-10-18 1:01 ` Alan Stern 2005-10-18 0:13 ` [linux-pm] 2.6.14-rc1-mm1: usb breaks suspend Pavel Machek 1 sibling, 1 reply; 14+ messages in thread From: Rafael J. Wysocki @ 2005-10-17 21:11 UTC (permalink / raw) To: Alan Stern Cc: Pavel Machek, kernel list, Linux-pm mailing list, linux-usb-devel Hi, On Monday, 17 of October 2005 20:54, Alan Stern wrote: > On Mon, 17 Oct 2005, Pavel Machek wrote: > > > Hi! > > > > In -mm, usb breaks suspend to disk. Compiled without > > CONFIG_USB_SUSPEND, it just plainly fails; iwth USB_SUSPEND, it > > actually tries to suspend USB, but it fails and machine refuses to > > suspend. Is it known or is it worth debugging? > > More details please. Fails for me too on x86-64, with the following messages: Stopping tasks: ========================| Freeing memory... done (14642 pages freed) Suspending device card0-0 Suspending device 2-2:1.0 Suspending device 2-2 Suspending device 3-0:1.0 hub 3-0:1.0: no suspend? Suspending device usb3 Could not suspend device usb3: error -16 Some devices failed to suspend Restarting tasks... done where the USB-related info returned by the kernel is this: ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI) ACPI: PCI Interrupt Link [LUS0] enabled at IRQ 11 ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LUS0] -> GSI 11 (level, low) -> IRQ 11 PCI: Setting latency timer of device 0000:00:02.0 to 64 ohci_hcd 0000:00:02.0: OHCI Host Controller ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1 ohci_hcd 0000:00:02.0: irq 11, io mem 0xfebfb000 hub 1-0:1.0: USB hub found hub 1-0:1.0: 3 ports detected ACPI: PCI Interrupt Link [LUS1] enabled at IRQ 11 ACPI: PCI Interrupt 0000:00:02.1[B] -> Link [LUS1] -> GSI 11 (level, low) -> IRQ 11 PCI: Setting latency timer of device 0000:00:02.1 to 64 ohci_hcd 0000:00:02.1: OHCI Host Controller ohci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 2 ohci_hcd 0000:00:02.1: irq 11, io mem 0xfebfc000 hub 2-0:1.0: USB hub found hub 2-0:1.0: 3 ports detected ACPI: PCI Interrupt Link [LUS2] enabled at IRQ 5 usb 2-2: new low speed USB device using ohci_hcd and address 2 PCI: setting IRQ 5 as level-triggered ACPI: PCI Interrupt 0000:00:02.2[C] -> Link [LUS2] -> GSI 5 (level, low) -> IRQ 5 PCI: Setting latency timer of device 0000:00:02.2 to 64 ehci_hcd 0000:00:02.2: EHCI Host Controller ehci_hcd 0000:00:02.2: debug port 1 ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 3 ehci_hcd 0000:00:02.2: irq 5, io mem 0xfebfdc00 PCI: cache line size of 64 is not supported by device 0000:00:02.2 ehci_hcd 0000:00:02.2: park 0 ehci_hcd 0000:00:02.2: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004 usb 2-2: device descriptor read/all, error -110 hub 3-0:1.0: USB hub found hub 3-0:1.0: 6 ports detected ohci_hcd 0000:00:02.1: wakeup usb 2-2: new low speed USB device using ohci_hcd and address 4 usbcore: registered new driver hiddev input: Logitech USB Receiver//class/input_dev as input3 input: USB HID v1.10 Mouse [Logitech USB Receiver] on usb-0000:00:02.1-2 usbcore: registered new driver usbhid drivers/usb/input/hid-core.c: v2.6:USB HID core driver Greetings, Rafael ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: 2.6.14-rc1-mm1: usb breaks suspend 2005-10-17 21:11 ` Rafael J. Wysocki @ 2005-10-18 1:01 ` Alan Stern 2005-10-19 13:13 ` 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) Rafael J. Wysocki 0 siblings, 1 reply; 14+ messages in thread From: Alan Stern @ 2005-10-18 1:01 UTC (permalink / raw) To: Rafael J. Wysocki Cc: Linux-pm mailing list, kernel list, Pavel Machek, linux-usb-devel [-- Attachment #1: Type: TEXT/PLAIN, Size: 4102 bytes --] On Mon, 17 Oct 2005, Rafael J. Wysocki wrote: > Hi, > > On Monday, 17 of October 2005 20:54, Alan Stern wrote: > > On Mon, 17 Oct 2005, Pavel Machek wrote: > > > > > Hi! > > > > > > In -mm, usb breaks suspend to disk. Compiled without > > > CONFIG_USB_SUSPEND, it just plainly fails; iwth USB_SUSPEND, it > > > actually tries to suspend USB, but it fails and machine refuses to > > > suspend. Is it known or is it worth debugging? > > > > More details please. > > Fails for me too on x86-64, with the following messages: > > Stopping tasks: ========================| > Freeing memory... done (14642 pages freed) > Suspending device card0-0 > Suspending device 2-2:1.0 > Suspending device 2-2 > Suspending device 3-0:1.0 > hub 3-0:1.0: no suspend? > Suspending device usb3 > Could not suspend device usb3: error -16 > Some devices failed to suspend > Restarting tasks... done > > where the USB-related info returned by the kernel is this: > > ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI) > ACPI: PCI Interrupt Link [LUS0] enabled at IRQ 11 > ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LUS0] -> GSI 11 (level, low) -> IRQ 11 > PCI: Setting latency timer of device 0000:00:02.0 to 64 > ohci_hcd 0000:00:02.0: OHCI Host Controller > ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1 > ohci_hcd 0000:00:02.0: irq 11, io mem 0xfebfb000 > hub 1-0:1.0: USB hub found > hub 1-0:1.0: 3 ports detected > ACPI: PCI Interrupt Link [LUS1] enabled at IRQ 11 > ACPI: PCI Interrupt 0000:00:02.1[B] -> Link [LUS1] -> GSI 11 (level, low) -> IRQ 11 > PCI: Setting latency timer of device 0000:00:02.1 to 64 > ohci_hcd 0000:00:02.1: OHCI Host Controller > ohci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 2 > ohci_hcd 0000:00:02.1: irq 11, io mem 0xfebfc000 > hub 2-0:1.0: USB hub found > hub 2-0:1.0: 3 ports detected > ACPI: PCI Interrupt Link [LUS2] enabled at IRQ 5 > usb 2-2: new low speed USB device using ohci_hcd and address 2 > PCI: setting IRQ 5 as level-triggered > ACPI: PCI Interrupt 0000:00:02.2[C] -> Link [LUS2] -> GSI 5 (level, low) -> IRQ 5 > PCI: Setting latency timer of device 0000:00:02.2 to 64 > ehci_hcd 0000:00:02.2: EHCI Host Controller > ehci_hcd 0000:00:02.2: debug port 1 > ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 3 > ehci_hcd 0000:00:02.2: irq 5, io mem 0xfebfdc00 > PCI: cache line size of 64 is not supported by device 0000:00:02.2 > ehci_hcd 0000:00:02.2: park 0 > ehci_hcd 0000:00:02.2: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004 > usb 2-2: device descriptor read/all, error -110 > hub 3-0:1.0: USB hub found > hub 3-0:1.0: 6 ports detected > ohci_hcd 0000:00:02.1: wakeup > usb 2-2: new low speed USB device using ohci_hcd and address 4 > usbcore: registered new driver hiddev > input: Logitech USB Receiver//class/input_dev as input3 > input: USB HID v1.10 Mouse [Logitech USB Receiver] on usb-0000:00:02.1-2 > usbcore: registered new driver usbhid > drivers/usb/input/hid-core.c: v2.6:USB HID core driver > > Greetings, > Rafael Weird. I can't tell what happened. But I can tell you that USB development goes on in Greg K-H's tree. The current version is available as a patch based on 2.6.14-rc4: http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-all-2.6.14-rc4.patch On top of that you should apply the patch for uhci-hcd that I mentioned before. With this combination I have had no problem suspending three different machines. Sometimes they even wake up, too! :-) Be warned: That particular kernel has a bug which sometimes causes "modprobe ehci-hcd" to hang. In case this happens to you, I've included a patch below with a temporary workaround. Untested, but it should work. Alan Stern --- a/drivers/usb/host/ehci-pci.c Thu Oct 13 17:04:13 2005 +++ b/drivers/usb/host/ehci-pci.c Mon Oct 17 20:57:21 2005 @@ -66,6 +66,7 @@ u32 temp; unsigned count = 256/4; + spin_lock_init (&ehci->lock); ehci->caps = hcd->regs; ehci->regs = hcd->regs + HC_LENGTH(readl(&ehci->caps->hc_capbase)); dbg_hcs_params(ehci, "reset"); [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) 2005-10-18 1:01 ` Alan Stern @ 2005-10-19 13:13 ` Rafael J. Wysocki 2005-10-19 14:53 ` 2.6.14-rc4-mm1: USB suspend regression Mark Lord 2005-10-19 16:18 ` 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) Alan Stern 0 siblings, 2 replies; 14+ messages in thread From: Rafael J. Wysocki @ 2005-10-19 13:13 UTC (permalink / raw) To: Alan Stern Cc: Linux-pm mailing list, kernel list, Pavel Machek, linux-usb-devel Hi, On Tuesday, 18 of October 2005 03:01, Alan Stern wrote: > On Mon, 17 Oct 2005, Rafael J. Wysocki wrote: > > On Monday, 17 of October 2005 20:54, Alan Stern wrote: > > > On Mon, 17 Oct 2005, Pavel Machek wrote: > > > > > > > Hi! > > > > > > > > In -mm, usb breaks suspend to disk. Compiled without > > > > CONFIG_USB_SUSPEND, it just plainly fails; iwth USB_SUSPEND, it > > > > actually tries to suspend USB, but it fails and machine refuses to > > > > suspend. Is it known or is it worth debugging? > > > > > > More details please. > > > > Fails for me too on x86-64, with the following messages: > > > > Stopping tasks: ========================| > > Freeing memory... done (14642 pages freed) > > Suspending device card0-0 > > Suspending device 2-2:1.0 > > Suspending device 2-2 > > Suspending device 3-0:1.0 > > hub 3-0:1.0: no suspend? > > Suspending device usb3 > > Could not suspend device usb3: error -16 > > Some devices failed to suspend > > Restarting tasks... done > > > > where the USB-related info returned by the kernel is this: > > > > ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI) > > ACPI: PCI Interrupt Link [LUS0] enabled at IRQ 11 > > ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LUS0] -> GSI 11 (level, low) -> IRQ 11 > > PCI: Setting latency timer of device 0000:00:02.0 to 64 > > ohci_hcd 0000:00:02.0: OHCI Host Controller > > ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1 > > ohci_hcd 0000:00:02.0: irq 11, io mem 0xfebfb000 > > hub 1-0:1.0: USB hub found > > hub 1-0:1.0: 3 ports detected > > ACPI: PCI Interrupt Link [LUS1] enabled at IRQ 11 > > ACPI: PCI Interrupt 0000:00:02.1[B] -> Link [LUS1] -> GSI 11 (level, low) -> IRQ 11 > > PCI: Setting latency timer of device 0000:00:02.1 to 64 > > ohci_hcd 0000:00:02.1: OHCI Host Controller > > ohci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 2 > > ohci_hcd 0000:00:02.1: irq 11, io mem 0xfebfc000 > > hub 2-0:1.0: USB hub found > > hub 2-0:1.0: 3 ports detected > > ACPI: PCI Interrupt Link [LUS2] enabled at IRQ 5 > > usb 2-2: new low speed USB device using ohci_hcd and address 2 > > PCI: setting IRQ 5 as level-triggered > > ACPI: PCI Interrupt 0000:00:02.2[C] -> Link [LUS2] -> GSI 5 (level, low) -> IRQ 5 > > PCI: Setting latency timer of device 0000:00:02.2 to 64 > > ehci_hcd 0000:00:02.2: EHCI Host Controller > > ehci_hcd 0000:00:02.2: debug port 1 > > ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 3 > > ehci_hcd 0000:00:02.2: irq 5, io mem 0xfebfdc00 > > PCI: cache line size of 64 is not supported by device 0000:00:02.2 > > ehci_hcd 0000:00:02.2: park 0 > > ehci_hcd 0000:00:02.2: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004 > > usb 2-2: device descriptor read/all, error -110 > > hub 3-0:1.0: USB hub found > > hub 3-0:1.0: 6 ports detected > > ohci_hcd 0000:00:02.1: wakeup > > usb 2-2: new low speed USB device using ohci_hcd and address 4 > > usbcore: registered new driver hiddev > > input: Logitech USB Receiver//class/input_dev as input3 > > input: USB HID v1.10 Mouse [Logitech USB Receiver] on usb-0000:00:02.1-2 > > usbcore: registered new driver usbhid > > drivers/usb/input/hid-core.c: v2.6:USB HID core driver > > > > Greetings, > > Rafael > > Weird. > > I can't tell what happened. But I can tell you that USB development > goes on in Greg K-H's tree. The current version is available as a patch > based on 2.6.14-rc4: > > http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-all-2.6.14-rc4.patch > > On top of that you should apply the patch for uhci-hcd that I mentioned > before. With this combination I have had no problem suspending three > different machines. Sometimes they even wake up, too! :-) Thanks a lot for all the information. Still I'd rather like to figure out what causes the problem to appear in -rc4-mm1. So far I have identified the offending patch which is: gregkh-usb-usb-power-state-03.patch (ie. with the patch the problem occurs 100% of the time and without the patch it doesn't). I don't know which change in the patch is at fault (yet). [Note: the patch didn't revert cleanly so I changed the 7th chunk in drivers/usb/core/hub.c a bit.] The devices that refuse to suspend (with the above patch) are: usb usb3: Product: EHCI Host Controller usb usb3: Manufacturer: Linux 2.6.14-rc4-mm1 ehci_hcd usb usb3: SerialNumber: 0000:00:02.2 usb usb2: Product: OHCI Host Controller usb usb2: Manufacturer: Linux 2.6.14-rc4-mm1 ohci_hcd usb usb2: SerialNumber: 0000:00:02.1 Greetings, Rafael ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: 2.6.14-rc4-mm1: USB suspend regression 2005-10-19 13:13 ` 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) Rafael J. Wysocki @ 2005-10-19 14:53 ` Mark Lord 2005-10-19 16:03 ` Alan Stern 2005-10-19 16:18 ` 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) Alan Stern 1 sibling, 1 reply; 14+ messages in thread From: Mark Lord @ 2005-10-19 14:53 UTC (permalink / raw) To: Rafael J. Wysocki Cc: Alan Stern, Pavel Machek, kernel list, Linux-pm mailing list, linux-usb-devel, Greg KH None of the recent kernels can resume-from-ram reliably for me if I use CONFIG_USB_SUSPEND (set). But with that option UNset, suspend/resume to/from RAM works very well. BUT.. new in 2.6.14-rc*, is that the ehci_hcd USB hispeed driver no longer survives resume from ram. I have to unload/reload the module to get hispeed USB after resume. -ml ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: 2.6.14-rc4-mm1: USB suspend regression 2005-10-19 14:53 ` 2.6.14-rc4-mm1: USB suspend regression Mark Lord @ 2005-10-19 16:03 ` Alan Stern 2005-10-20 3:21 ` Mark Lord 0 siblings, 1 reply; 14+ messages in thread From: Alan Stern @ 2005-10-19 16:03 UTC (permalink / raw) To: Mark Lord; +Cc: Linux-pm mailing list [-- Attachment #1: Type: TEXT/PLAIN, Size: 1000 bytes --] [Trimmed the CC: list] On Wed, 19 Oct 2005, Mark Lord wrote: > None of the recent kernels can resume-from-ram reliably for me > if I use CONFIG_USB_SUSPEND (set). But with that option UNset, > suspend/resume to/from RAM works very well. Try applying this patch: http://marc.theaimsgroup.com/?l=linux-kernel&m=112966405019175&w=2 It may very well help the CONFIG_USB_SUSPEND problem. If it doesn't, please turn on CONFIG_USB_DEBUG and post the dmesg log for the suspend and resume. > BUT.. new in 2.6.14-rc*, is that the ehci_hcd USB hispeed driver > no longer survives resume from ram. I have to unload/reload the > module to get hispeed USB after resume. Well, on my machine it works with resume from Standby. (Resume from RAM doesn't work at all -- pushing the power button to start the resume causes a clean shutdown instead!) Your dmesg log might provide some useful information here as well. But if it's a serious problem you'll have to get Dave Brownell to help. Alan Stern [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: 2.6.14-rc4-mm1: USB suspend regression 2005-10-19 16:03 ` Alan Stern @ 2005-10-20 3:21 ` Mark Lord 0 siblings, 0 replies; 14+ messages in thread From: Mark Lord @ 2005-10-20 3:21 UTC (permalink / raw) To: Alan Stern; +Cc: Linux-pm mailing list [-- Attachment #1: Type: text/plain, Size: 684 bytes --] Alan Stern wrote: > >>None of the recent kernels can resume-from-ram reliably for me >>if I use CONFIG_USB_SUSPEND (set). But with that option UNset, >>suspend/resume to/from RAM works very well. > > Try applying this patch: > http://marc.theaimsgroup.com/?l=linux-kernel&m=112966405019175&w=2 I have already adopted that patch independently, and it has done wonders for stability with 2.6.14-rc4 coming back from suspend-to-ram. Or is that just my imagination? But I have not yet tried reenabling CONFIG_USB_SUSPEND in conjunction with that patch -- just too much grief and wasted time every round I try with CONFIG_USB_SUSPEND. I'll get to it again eventually though. Cheers [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) 2005-10-19 13:13 ` 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) Rafael J. Wysocki 2005-10-19 14:53 ` 2.6.14-rc4-mm1: USB suspend regression Mark Lord @ 2005-10-19 16:18 ` Alan Stern 2005-10-19 20:18 ` Rafael J. Wysocki 1 sibling, 1 reply; 14+ messages in thread From: Alan Stern @ 2005-10-19 16:18 UTC (permalink / raw) To: Rafael J. Wysocki; +Cc: Linux-pm mailing list, USB development list [Trimmed the CC: list] On Wed, 19 Oct 2005, Rafael J. Wysocki wrote: > Hi, > > On Tuesday, 18 of October 2005 03:01, Alan Stern wrote: > > On Mon, 17 Oct 2005, Rafael J. Wysocki wrote: > > > On Monday, 17 of October 2005 20:54, Alan Stern wrote: > > > > On Mon, 17 Oct 2005, Pavel Machek wrote: > > > > > > > > > Hi! > > > > > > > > > > In -mm, usb breaks suspend to disk. Compiled without > > > > > CONFIG_USB_SUSPEND, it just plainly fails; iwth USB_SUSPEND, it > > > > > actually tries to suspend USB, but it fails and machine refuses to > > > > > suspend. Is it known or is it worth debugging? > > > > > > > > More details please. > > > > > > Fails for me too on x86-64, with the following messages: > > > > > > Stopping tasks: ========================| > > > Freeing memory... done (14642 pages freed) > > > Suspending device card0-0 > > > Suspending device 2-2:1.0 > > > Suspending device 2-2 > > > Suspending device 3-0:1.0 > > > hub 3-0:1.0: no suspend? This line is the puzzle. It indicates that the driver bound to the 3-0:1.0 device (which is a root hub interface for one of your USB controllers) doesn't have a suspend or resume method. But the hub driver _does_ have these methods! Unless you somehow screwed up the build. Take a look inside drivers/usb/core/hub.c and make sure that the hub_suspend() and hub_resume() routines are listed in the hub_driver table, and that they haven't been preprocessed away into NULLs. You might end up needing to do a clean rebuild. > > > Suspending device usb3 > > > Could not suspend device usb3: error -16 > > > Some devices failed to suspend These errors occurred, naturally enough, because the driver for usb3 refused to suspend since one of the children -- namely 3-0:1.0 -- wasn't suspended. > Thanks a lot for all the information. > > Still I'd rather like to figure out what causes the problem to appear > in -rc4-mm1. So far I have identified the offending patch which is: > > gregkh-usb-usb-power-state-03.patch > > (ie. with the patch the problem occurs 100% of the time and without > the patch it doesn't). I don't know which change in the patch is at > fault (yet). [Note: the patch didn't revert cleanly so I changed the > 7th chunk in drivers/usb/core/hub.c a bit.] I don't think this is as simple as finding an offending line in a particular patch. As you can see from the numbering, that patch was part of a large series; it wasn't meant to be applied or removed in isolation. > The devices that refuse to suspend (with the above patch) are: > > usb usb3: Product: EHCI Host Controller > usb usb3: Manufacturer: Linux 2.6.14-rc4-mm1 ehci_hcd > usb usb3: SerialNumber: 0000:00:02.2 > > usb usb2: Product: OHCI Host Controller > usb usb2: Manufacturer: Linux 2.6.14-rc4-mm1 ohci_hcd > usb usb2: SerialNumber: 0000:00:02.1 Maybe if you solve the riddle above (suspend method not present in the hub driver) it will clear up these issues as well. Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) 2005-10-19 16:18 ` 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) Alan Stern @ 2005-10-19 20:18 ` Rafael J. Wysocki 2005-10-19 20:46 ` Alan Stern 0 siblings, 1 reply; 14+ messages in thread From: Rafael J. Wysocki @ 2005-10-19 20:18 UTC (permalink / raw) To: Alan Stern; +Cc: Linux-pm mailing list, USB development list Hi, On Wednesday, 19 of October 2005 18:18, Alan Stern wrote: > [Trimmed the CC: list] }-- snip --{ > > > > Stopping tasks: ========================| > > > > Freeing memory... done (14642 pages freed) > > > > Suspending device card0-0 > > > > Suspending device 2-2:1.0 > > > > Suspending device 2-2 > > > > Suspending device 3-0:1.0 > > > > hub 3-0:1.0: no suspend? > > This line is the puzzle. It indicates that the driver bound to the > 3-0:1.0 device (which is a root hub interface for one of your USB > controllers) doesn't have a suspend or resume method. But the hub driver > _does_ have these methods! Unless someone, like me, has CONFIG_USB_SUSPEND unset, in which case they are #defined as NULLs (of course if I'm not missing anything). Is now CONFIG_USB_SUSPEND mandatory for being able to suspend? > Unless you somehow screwed up the build. Take a look inside > drivers/usb/core/hub.c and make sure that the hub_suspend() and > hub_resume() routines are listed in the hub_driver table, and that they > haven't been preprocessed away into NULLs. You might end up needing to do > a clean rebuild. This already is a clean build, on top of 2.6.13 unpacked from scratch (well, I have some patches applied, but they don't touch USB). > > > > Suspending device usb3 > > > > Could not suspend device usb3: error -16 > > > > Some devices failed to suspend > > These errors occurred, naturally enough, because the driver for usb3 > refused to suspend since one of the children -- namely 3-0:1.0 -- wasn't > suspended. I've figured out that too. However, if something has no _suspend() routine, verify_suspended() could return 0 for it, I think, instead of -EBUSY. Greetings, Rafael ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) 2005-10-19 20:18 ` Rafael J. Wysocki @ 2005-10-19 20:46 ` Alan Stern 2005-10-19 22:16 ` Rafael J. Wysocki 0 siblings, 1 reply; 14+ messages in thread From: Alan Stern @ 2005-10-19 20:46 UTC (permalink / raw) To: Rafael J. Wysocki; +Cc: Linux-pm mailing list, USB development list [-- Attachment #1: Type: TEXT/PLAIN, Size: 2046 bytes --] On Wed, 19 Oct 2005, Rafael J. Wysocki wrote: > > This line is the puzzle. It indicates that the driver bound to the > > 3-0:1.0 device (which is a root hub interface for one of your USB > > controllers) doesn't have a suspend or resume method. But the hub driver > > _does_ have these methods! > > Unless someone, like me, has CONFIG_USB_SUSPEND unset, > in which case they are #defined as NULLs (of course if I'm not missing > anything). Is now CONFIG_USB_SUSPEND mandatory for being able to suspend? No. It's mandatory only for runtime PM; system PM will work as long as CONFIG_PM is set. > > Unless you somehow screwed up the build. Take a look inside > > drivers/usb/core/hub.c and make sure that the hub_suspend() and > > hub_resume() routines are listed in the hub_driver table, and that they > > haven't been preprocessed away into NULLs. You might end up needing to do > > a clean rebuild. > > This already is a clean build, on top of 2.6.13 unpacked from scratch (well, > I have some patches applied, but they don't touch USB). Then that's your problem. There has been a lot of development on USB suspend/resume in 2.6.14, and you don't have all the patches applied. In particular, you are missing usb-pm-05.patch (probably a bunch of others as well). Take my advice: Start from 2.6.14-rc4, apply gregkh-all-2.6.14-rc4.patch (it gets updated fairly often, so retrieve a fresh copy), and also apply the PF_NOFREEZE patch (as585) I posted on lkml and linux-pm. > > These errors occurred, naturally enough, because the driver for usb3 > > refused to suspend since one of the children -- namely 3-0:1.0 -- wasn't > > suspended. > > I've figured out that too. However, if something has no _suspend() routine, > verify_suspended() could return 0 for it, I think, instead of -EBUSY. Dave Brownell would probably give you an argument, but I tend to agree. Alternatively, if something has no ->suspend then we could just set its ->power.power_state value directly so it would _appear_ to be suspended. Alan Stern [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) 2005-10-19 20:46 ` Alan Stern @ 2005-10-19 22:16 ` Rafael J. Wysocki 2005-10-20 15:30 ` Alan Stern 0 siblings, 1 reply; 14+ messages in thread From: Rafael J. Wysocki @ 2005-10-19 22:16 UTC (permalink / raw) To: Alan Stern; +Cc: Linux-pm mailing list, USB development list Hi, On Wednesday, 19 of October 2005 22:46, Alan Stern wrote: > On Wed, 19 Oct 2005, Rafael J. Wysocki wrote: }-- snip --{ > There has been a lot of development on USB > suspend/resume in 2.6.14, and you don't have all the patches applied. In > particular, you are missing usb-pm-05.patch (probably a bunch of others as > well). If I'm missing any patches that's becasue they are not in 2.6.14-rc4-mm1 for some reason (I assume an important one). > Take my advice: Start from 2.6.14-rc4, apply gregkh-all-2.6.14-rc4.patch > (it gets updated fairly often, so retrieve a fresh copy), and also apply > the PF_NOFREEZE patch (as585) I posted on lkml and linux-pm. >From my POV this means there's no point in testing USB suspend/resume on 2.6.14-rc4-mm1, because it's potentially broken. Which is fair enough, BTW. > > > These errors occurred, naturally enough, because the driver for usb3 > > > refused to suspend since one of the children -- namely 3-0:1.0 -- wasn't > > > suspended. > > > > I've figured out that too. However, if something has no _suspend() routine, > > verify_suspended() could return 0 for it, I think, instead of -EBUSY. > > Dave Brownell would probably give you an argument, but I tend to agree. > Alternatively, if something has no ->suspend then we could just set its > ->power.power_state value directly so it would _appear_ to be suspended. Well, that depends. If the driver has a _resume() routine, it's ->power.power_state should be set on suspend. However, if it has neither _resume() nor _suspend(), it's ->power.power_state is not really well defined, so it's just easier to ignore it. Greetings, Rafael ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) 2005-10-19 22:16 ` Rafael J. Wysocki @ 2005-10-20 15:30 ` Alan Stern 0 siblings, 0 replies; 14+ messages in thread From: Alan Stern @ 2005-10-20 15:30 UTC (permalink / raw) To: Rafael J. Wysocki; +Cc: Linux-pm mailing list, USB development list [-- Attachment #1: Type: TEXT/PLAIN, Size: 2346 bytes --] On Thu, 20 Oct 2005, Rafael J. Wysocki wrote: > Hi, > > On Wednesday, 19 of October 2005 22:46, Alan Stern wrote: > > On Wed, 19 Oct 2005, Rafael J. Wysocki wrote: > }-- snip --{ > > There has been a lot of development on USB > > suspend/resume in 2.6.14, and you don't have all the patches applied. In > > particular, you are missing usb-pm-05.patch (probably a bunch of others as > > well). > > If I'm missing any patches that's becasue they are not in 2.6.14-rc4-mm1 > for some reason (I assume an important one). You'll have to get the details from Greg. The stuff in his tree generally does end up in -mm after only a short delay, but maybe some patches get lost somehow. Or maybe some of them didn't make it in time for -mm1. > > Take my advice: Start from 2.6.14-rc4, apply gregkh-all-2.6.14-rc4.patch > > (it gets updated fairly often, so retrieve a fresh copy), and also apply > > the PF_NOFREEZE patch (as585) I posted on lkml and linux-pm. > > From my POV this means there's no point in testing USB suspend/resume > on 2.6.14-rc4-mm1, because it's potentially broken. Which is fair enough, > BTW. If 2.6.14-rc4-mm1 still has hub_suspend and hub_resume preprocessed away, then you're right -- it's too old to be worth testing. > > > I've figured out that too. However, if something has no _suspend() routine, > > > verify_suspended() could return 0 for it, I think, instead of -EBUSY. > > > > Dave Brownell would probably give you an argument, but I tend to agree. > > Alternatively, if something has no ->suspend then we could just set its > > ->power.power_state value directly so it would _appear_ to be suspended. > > Well, that depends. If the driver has a _resume() routine, it's ->power.power_state > should be set on suspend. However, if it has neither _resume() nor _suspend(), > it's ->power.power_state is not really well defined, so it's just easier to ignore it. I don't want to change this without talking to Dave first, and unfortunately he's incommunicado at the moment. Wasn't it Groucho Marx who said that "communicado" was a small country in Latin America? In Dave's case the country isn't so small (Brazil) and all the emails I've sent him in the last few days have bounced. So we'll have to wait until he gets back and straightens things out with his service provider. Alan Stern [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-pm] 2.6.14-rc1-mm1: usb breaks suspend 2005-10-17 18:54 ` [linux-pm] " Alan Stern 2005-10-17 21:11 ` Rafael J. Wysocki @ 2005-10-18 0:13 ` Pavel Machek 1 sibling, 0 replies; 14+ messages in thread From: Pavel Machek @ 2005-10-18 0:13 UTC (permalink / raw) To: Alan Stern; +Cc: kernel list, Linux-pm mailing list, linux-usb-devel Hi! > > In -mm, usb breaks suspend to disk. Compiled without > > CONFIG_USB_SUSPEND, it just plainly fails; iwth USB_SUSPEND, it > > actually tries to suspend USB, but it fails and machine refuses to > > suspend. Is it known or is it worth debugging? > > More details please. > > 2.6.14-rc1 is a little old by now. With 2.6.14-rc4 I don't know 2.6.14-rc4-mm1, sorry. > about -mm, but there's a problem with the uhci-hcd driver in Greg K-H's > tree. I submitted a patch earlier today: > > http://marc.theaimsgroup.com/?l=linux-usb-devel&m=112956023807659&w=2 Yes, this patch helps. [I still get quite a lot of debug messages, but that's another story]. Pavel -- Boycott Kodak -- for their patent abuse against Java. ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2005-10-20 15:30 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-10-17 10:01 2.6.14-rc1-mm1: usb breaks suspend Pavel Machek 2005-10-17 18:54 ` [linux-pm] " Alan Stern 2005-10-17 21:11 ` Rafael J. Wysocki 2005-10-18 1:01 ` Alan Stern 2005-10-19 13:13 ` 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) Rafael J. Wysocki 2005-10-19 14:53 ` 2.6.14-rc4-mm1: USB suspend regression Mark Lord 2005-10-19 16:03 ` Alan Stern 2005-10-20 3:21 ` Mark Lord 2005-10-19 16:18 ` 2.6.14-rc4-mm1: USB suspend regression (was: Re: 2.6.14-rc1-mm1: usb breaks suspend) Alan Stern 2005-10-19 20:18 ` Rafael J. Wysocki 2005-10-19 20:46 ` Alan Stern 2005-10-19 22:16 ` Rafael J. Wysocki 2005-10-20 15:30 ` Alan Stern 2005-10-18 0:13 ` [linux-pm] 2.6.14-rc1-mm1: usb breaks suspend Pavel Machek
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox