Just FYI. Clearly, the number of combinations that need integration testing is a problem in its own right. How do other folk cope with those issues? ---------- Forwarded Message ---------- Subject: [linux-usb-devel] [patch 2.6.10-rc1-bk] usb PM updates (0/4) Date: Sunday 07 November 2004 17:35 From: David Brownell <david-b@xxxxxxxxxxx> To: Greg KH <greg@xxxxxxxxx> Cc: linux-usb-devel@xxxxxxxxxxxxxxxxxxxxx Hi, Following this will be four patches. These four patches, all curiously about the same size, have been tested: - with and without CONFIG_USB_SUSPEND - using S1/standby and the default STD "shutdown" support - with and without usb devices connected during suspend/resume - on two different implementations of EHCI and OHCI - with both EHCI and OHCI loaded, or only one - for OHCI, controllers both with and without PCI PM support - for EHCI, controllers both with and without power switching. - with BIOS drivers for USB keyboards/mice disabled And they all worked, which is a milestone! Though I suspect at a few of the 2^7 combinations there could still stand more work, and there are other things that need attention too. Some devices may misbehave; most USB drivers don't have suspend/resume support; the other STD modes need testing; USB wakeup through ACPI is about ready to try; and so on. I'm thinking that these should all get merged. In particular, there have been some significant problems recently with OHCI recently, and these fix them for me; 2.6.10 shouldn't ship with those problems. Comments? - Dave s1-1107.patch hcd-pci.c | 151 +++++++++++++++++++++++++++++++------------------------------- 1 files changed, 77 insertions(+), 74 deletions(-) Uses the same code path both with and without CONFIG_USB_SUSPEND; if USB_SUSPEND is in use, or a hub (like OHCI) autosuspends, that just means something else did that work already. Note that only USB_SUSPEND currently kicks in hub suspend logic; that should probably move into CONFIG_PM, so that there's a clean way to make hubs quiesce other than disconnect and reset paths. s2-1107.patch hcd.c | 42 ++++++++++++++++++++++++------------------ hub.c | 26 ++++++++++++++------------ usb.c | 8 ++++---- 3 files changed, 42 insertions(+), 34 deletions(-) This starts remove driver model power_state from usbcore. It goes into bus glue (and hopefully from there it will vanish). This handles USB device state (like CONFIGURED, SUSPENDED, etc) better for root hubs, though it won't do that for any device unless USB_SUSPEND is in use. There are also several smaller bugfixes here, including a locking fix, handling some root hub timer races during the suspend/resume sequence, and cleaning up better after one "HC died" sequence. s3-1107.patch ohci-hcd.c | 12 +++++++----- ohci-hub.c | 52 ++++++++++++++++++++++++---------------------------- ohci-pci.c | 5 ++--- 3 files changed, 33 insertions(+), 36 deletions(-) OHCI updates matching the usbcore changes above, and to work both with and without USB_SUSPEND. s4-1107.patch ehci-hcd.c | 39 ++++++++++++++++++++++----------------- ehci-hub.c | 44 +++++++++++++++++++++++++------------------- 2 files changed, 47 insertions(+), 36 deletions(-) EHCI updates matching the above. APM-resume fixes from Nikolai Zeldovich. Adds a missing register re-init, and power up ports after resume (needed on some hardware).