USB APM suspend

From: Alan Stern
Date: Fri Sep 19 2003 - 17:16:34 EST


Here's a piece from my system log, when I did "apm --suspend". The
usb_device_suspend/resume messages are things I added for debugging.

Sep 19 17:02:35 ida kernel: uhci-hcd 0000:00:07.2: suspend to state 3
Sep 19 17:02:35 ida kernel: drivers/usb/host/uhci-hcd.c: 6400: suspend_hc
Sep 19 17:02:35 ida kernel: usb_device_suspend: 1-1:0
Sep 19 17:02:35 ida kernel: usb_device_suspend: 1-1
Sep 19 17:02:35 ida kernel: usb_device_suspend: 1-0:0
Sep 19 17:02:35 ida kernel: usb_device_suspend: usb1
Sep 19 17:02:45 ida kernel: uhci-hcd 0000:00:07.2: suspend D4 --> D3
Sep 19 17:02:45 ida kernel: drivers/usb/host/uhci-hcd.c: 6400: wakeup_hc
Sep 19 17:02:45 ida kernel: usb_device_resume: usb1
Sep 19 17:02:45 ida kernel: usb_device_resume: 1-0:0
Sep 19 17:02:45 ida kernel: usb_device_resume: 1-1
Sep 19 17:02:45 ida kernel: usb_device_resume: 1-1:0
Sep 19 17:02:45 ida kernel: uhci-hcd 0000:00:07.2: can't resume, not suspended!

This has several odd things. Note that both the first two "0000:00:07.2"
messages were created by hcd-pci.c, in its usb_hcd_pci_suspend() routine.

Why was this routine called twice? (Don't be fooled by the timestamps; I
think the "suspend D4 --> D3" message was created during the suspend but
not read by syslogd until after the resume.)

Why doesn't usb_hcd_pci_resume() log a similar message when it is called?
A simple oversight?

Why was the host controller suspended _before_ its child USB devices?

And why was it woken up twice?

Alan Stern


P.S.: Greg, what on Earth does "GREG: gregindex = 0" mean?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/