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

Pavel Machek
2005-03-06T12:33:35Z

Hi!

> > Perhaps you should fix that, too? It is going to cause ugly
> > perfrmance problems.
>
> Yep, been looking into it, and I think I've got it. The GPE in
> question is fired periodically, about every 5 seconds. It fires when
> suspending but kacpid is stopped, so the GPE is simply disabled and
> never serviced. However, the state of it being disabled is recorded
> in the atomic copy.
>
> Upon resume, after restoring the atomic copy, the code at the top of
> acpi_ev_disable_gpe believes that the GPE is already disabled (as it
> was when we suspended) even though it's not. Hardware state is out
> of sync with what the kernel thinks and badness ensues. The culprit
> difference between 2.6.8 and 2.6.9-rc1 is that 2.6.8 disabled the
> GPE unconditionally, 2.6.9-rc1 checks against its last known state
> which is incorrect upon resuming.
>
> Removing the check resolves this issue (patch attached). Is this an
> adequate fix?

Does not removing of the check cause problems elsewhere? Bring it up
on linix-acpi lists...

Obvious solution would be to add suspend/resume routines to acpi,
and properly set the flag during resume.

> So, combining this patch with the previous kacpid NOFREEZE patch...
> Does this make people happy? :) (And should it be submitted via Len
> or akpm?)

Len.

--
64 bytes from 195.113.31.123: icmp_seq=28 ttl=51 time=448769.1 ms