> What Ted says makes sense. Unfortunately, it's a bit more difficult than
> it seems to obtain the wake source.
> 
> 1. Not all machines (very few in fact) implement _SWS
> 
> 2. Instrumenting a few machines to check GPEs on wake, I found that none
> of them were asserted in the lid-open case, the power-button case, and a
> few others as well. This likely means we are wiping out the status before
> we check it. When I checked the status during early init instead, the
> GPE status bits were either all on, or all off, or filled with random
> data.
> 
> In a nutshell, I haven't yet found a good way to determine the wake
> source that works on all machines. A diff that properly does this would
> certainly be welcome and go a long way toward fixing a lot of this
> nonsense.

Yes, that is essentially the problem.

We have some on/off events that sometimes work, and we have some
true/false state we can probe ... sometimes.  The frameworks
underneath seem unreliable.  It might be bugs in our acpi stack, but
quite likely there are also variations (bugs) in the machines
themselves...

(If these issues are not identified and improved, we could hackishly
move the decision making to a timeout-based codepath which will have
more information..)

Reply via email to