On Thu, Apr 12, 2012 at 10:28:31AM -0400, Alan Stern wrote: > > > > > I replaced the hcd_pci_suspend_noirq call with retval=0 and suspend/resume > > > > > was successful. > > > > > > > > This indicates that your computer doesn't like to suspend while the > > > > EHCI controllers are in D3hot. I have no idea why not. > > > > > > > > If you want a really thorough test, try changing > > > > drivers/pci/pci-driver.c:pci_pm_suspend_noirq. In the "if (!pm)" > > > > clause, add a call to > > > > > > > > pci_prepare_to_sleep(pci_dev); > > > > > > > > just after the pci_save_state line. Then try suspending with the > > > > script enabled (ehci-hcd unbound from the controllers). If this fails > > > > then we'll know it is the source of the trouble. > > > Looks like it works even with this line added. > > > > > > > I reverted the retval change (that worked) and added this line. Put the > > script back and did a suspend. The suspend and resume worked without > > issue. > > Hmmm. This is a situation where the wakeup setting might matter. Did > the /sys/bus/pci/devices/0000:00:1[ad].0/power/wakeup files both > contain "enabled" when you ran the test? Yes. > Here's a diagnostic patch that will give us a little more information. > Keep the previous change (so that pci_prepare_to_sleep gets called > whether ehci-hcd is bound or not) and let's see what it says. Try > doing it both with and without ehci-hcd bound. Running this with "echo > devices >/sys/power/pm_test" ought to be good enough. I don't see that line with ehci_hcd both bound and unbound and both in 'devices' test and in a real S3. > Index: usb-3.4/drivers/pci/pci.c > =================================================================== > --- usb-3.4.orig/drivers/pci/pci.c > +++ usb-3.4/drivers/pci/pci.c > @@ -1720,6 +1720,9 @@ int pci_prepare_to_sleep(struct pci_dev > > error = pci_set_power_state(dev, target_state); > > + dev_info(&dev->dev, "target %d wakeup %d error %d\n", > + target_state, device_may_wakeup(&dev->dev), error); > + > if (error) > pci_enable_wake(dev, target_state, false); > > > -- WBR, wRAR
Attachment:
signature.asc
Description: Digital signature