On Fri, Aug 03, 2012 at 05:57:41PM +0200, Paolo Bonzini wrote:
The simplest possibility here is to just move it to the DSDT, as in my v1. Generating the nested AML ifs is a bit tedious to write, but the outcome should be easy to read.
That would require statically generating some 961 Notify operations. That seems a waste.
Similar to your v2 patch, it should be possible to dynamically generate a second-level notify that does the equivalent of:
Method(PCN2, 2) { If (LEqual(Arg0, 0x0101)) { Notify(S01_.S01_, Arg1) } If (LEqual(Arg0, 0x0102)) { Notify(S01_.S02_, Arg1) } If (LEqual(Arg0, 0x0103)) { Notify(S01_.S03_, Arg1) } ... If (LEqual(Arg0, 0x011F)) { Notify(S01_.S1F_, Arg1) } If (LEqual(Arg0, 0x0201)) { Notify(S02_.S01_, Arg1) } ... }
Then the DSDT's PCNF method can have the intelligence to call both PCNT() on the main slot and PCN2() in a loop for all the children of that slot.
-Kevin