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

Rafael J. Wysocki
2007-10-29T20:21:20Z

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.

Greetings,
Rafael