Bug 6024
Summary: | USB stays in state D3 after suspend to mem | ||
---|---|---|---|
Product: | ACPI | Reporter: | Tim Dijkstra (newsuser) |
Component: | Power-Sleep-Wake | Assignee: | Shaohua (shaohua.li) |
Status: | CLOSED PATCH_ALREADY_AVAILABLE | ||
Severity: | normal | CC: | acpi-bugzilla, stern |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.15.2 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
lspci -vvv
workaround log of suspend /w module log of suspend without module log of suspend without module acpidump log of suspend /w module lspic -vvv |
Description
Tim Dijkstra
2006-02-07 01:35:31 UTC
Created attachment 7263 [details]
lspci -vvv
lspci -vvv of my box
Created attachment 7314 [details]
workaround
I guess this workaround can automatically switch the device to D0 state after
you reload the driver at resume time.
But the real issue of your problem is why your system has an immediate resume.
So I'd like look at your acpidmp out. Thanks!
OK, I'll try make an acpidmp tonight. For now I'll attach two logs, one of a suspend-resume cycle with uhci_usb loaded and one without. Created attachment 7336 [details]
log of suspend /w module
Log of echo > /sys/power/state with uhci_usb loaded. This resumes immediately.
Created attachment 7337 [details]
log of suspend without module
This is a log of
rmmod uhci_usb
echo mem > /sys/power/state
modprobe uhci_usb
Note ACPI complaining about "Device is not power manageable". That could well
the root of the problem.
Created attachment 7352 [details]
log of suspend without module
This is a log of suspend to RAM without uhci_usb loaded, but now with debug
messages included.
Created attachment 7353 [details]
acpidump
This a dump made with the acpidump utility from pmtools. I think this is what
you want. If not, tell me.
Created attachment 7355 [details]
log of suspend /w module
This is a log of suspend to RAM wit uhci_usb loaded, but now with debug
messages included.
Please run "lspci -vvv" again, but this time run it as root. Your earlier attachment doesn't include the PCI capabilities. When uhci-hcd is unloaded, the USB stack is out of the picture. Any suspend/resume processing is done by the PCI core. I don't know how it handles driverless devices... Maybe it puts them into D3 during suspend and just leaves them there during resume. "lspci -vvv" as root will show device's current power state. Does the workaround in comment #2 change anything? If it works, I think we should push it to base kernel, because it's likely modules are unloaded/reloaded before/after suspend. Created attachment 7372 [details]
lspic -vvv
Again lspci -vvv but now with root priv's
Yep the workaround in comment #2 works for me. I noticed the fix from comment #2 isn't in 2.6.16, anything wrong with it? Patrick Mochel sent a updated patch based on my previous patch. But for some known reason, the patch is missed. I'll ping him. Any news? This report is getting old... Patrick's suggested patch is here: http://marc.theaimsgroup.com/?l=linux-pci&m=114049761428561&w=2 It seems to have faded away. David, do you want to try reviving it? I think Patrick has been far too busy with other matters to work on this sort of thing lately... Ok, I can take it. But I might have a little delay as I'm on holiday till Oct.8 Have we had any progress? Yes, I sent a updated patch to akpm. It might be in -mm tree soon. Patch is in base kenrel now. |