RE: [ACPI] Re: Cause of Suspend2 resume failures on Toshiba laptops

Li Shaohua
2005-03-08T06:12:23Z

Hi,
On Tue, 2005-03-08 at 13:28, Nigel Cunningham wrote:
> > >
> > >After more investigation, it seems that the issue is the GPE is
> > >fired but not serviced because kacpid is frozen. This in itself
> > >would be okay, however, the GPE isn't being disabled before the
> > >method executes (despite there being code there to do so), and hence
> > >fires continuously.
> > >
> > >The attached patch makes kacpid NOFREEZE so the GPE does get
> > >serviced (eventually), but probably still isn't the correct
> > >solution. (A better solution being making sure the GPE gets disabled
> > >in the first place ... still looking into this).
> > Hi,
> > Did you guys try the suspend method 'platform'? In this case, ACPI will
> > disable all non-wakeup GPEs.
>
> Suspend2 supports entering S3, S4 or S5 once the image has been written.
> For S3 or S4, we use the platform method, but when entering S5, we don't
> and neither does Pavel.
ACPI also disables all non-wakeup GPEs in S5. I guess the problem is we
probably disable the GPEs too lately in swsusp2. swsusp writes image
after GPEs are disabled, but swsusp2 isn't (Sorry, I'm not familiar with
swsusp2, but it looks like this according to the steps you write down).

> Looking at the code, I can see that we could probably rework our support
> a little as we're calling the prepare method immediately before powering
> down rather than at the start of the process.
>
> One question though: do you see any issues with calling prepare() and
> finish() with the PM_DISK_PLATFORM parameter (as if entering S4 sleep)
> when we're actually going to do an S5 powerdown? If this will allow the
> wake events to fire (as they would for S4), it could be good for
> machines where S4 isn't working properly..
This possibly can't work. We must give the BIOS a correct sleep state (4
or 5).

Thanks,
Shaohua