Re: [BUG] [linux-pm] Commit "Hibernation: Enter platform hibernation state in a consistent way)" makes my system to resume instantly from S4

Maxim Levitsky
2007-10-29T22:37:28Z

On Monday 29 October 2007 22:37:37 Rafael J. Wysocki wrote:
> On Monday, 29 October 2007 07:45, Maxim Levitsky wrote:
> > On Sunday 28 October 2007 22:23:15 Rafael J. Wysocki wrote:
> > > On Sunday, 28 October 2007 21:00, Maxim Levitsky wrote:
> > > > On Saturday 27 October 2007 23:46:45 Rafael J. Wysocki wrote:
> > > > > On Saturday, 27 October 2007 14:05, Maxim Levitsky wrote:
> > > > > > Hi,
> > > > > >
> > > > > > Recently I noticed that my system resumes just after suspend to disk.
> > > > > >
> > > > > > I traced this to commit 9cd9a0058dd35268b24fa16795a92c800f4086d4.
> > > > > >
> > > > > > Note:
> > > > > >
> > > > > > This happens only if I enable WOL using /proc/acpi/wakeup
> > > > > > (echo "ILAN" > /proc/acpi/wakeup)
> > > > >
> > > > > What happens after a suspend to RAM?
> > > > I do more testing tomorrow, but what I remember is that,
> > > > I had no issues with suspend-to-ram.
> > > > (And take into account the fact that _all_ wakeup devices were enabled always,
> > > > the rc.local does that for me, and still I did quite a lot of suspends, but I
> > > > got the immediate resume, only and always after suspend to disk.
> > >
> > > Hm, can you please retest with the above commit applied, but with
> > > device_suspend() in hibernation_platform_enter() replaced by device_shutdown()?
> > Bingo! doing the above fixes this problem.
> > And... strange, since I did test the system with e1000 unloaded, but still got same bug,
> > back when I chased that bug, thus it is probably not related to e1000 and WOL.
> >
> > the ACPI wake-up source (I have read the DSDT, and ICH datasheets, thus I know that this is a set of bits in southbridge)
> > of e1000 is shared with EHCI and HDA sound codec.
> > (But usb on my system only able to wake from S3, and the soundchip which can theoretically wake up from S3 too, doesn't have this ability)
> >
> > (But disabling this wakeup source, fixes this bug too)
>
> OK
>
> Please get back to device_suspend() in hibernation_platform_enter() and try
> to unload ehci_hcd before hibernation with the wakeup source enabled.
Well, ... bingo! again!

Replacing back the device_suspend() , and unloading the ehci_hcd fixes the problem!
Even more, loading this module back causes this problem to reappear, and vise-verso.
All wakeup sources are enabled always.

Note that I don't have any USB 2.0 devices yet.
The usb devices I have are: keyboard,mouse,and joystick.

So now this problem looks fixable, I take a look at ehci driver.

>
> Greetings,
> Rafael

Big thanks again,