https://bugzilla.kernel.org/show_bug.cgi?id=36322
--- Comment #21 from Lee, Chun-Yi <[email protected]> 2011-06-04 20:06:00 --- (In reply to comment #20) > Created an attachment (id=60752) --> (https://bugzilla.kernel.org/attachment.cgi?id=60752) [details] > DSDT of an Acer Extensa 5635 > > I got short access to an Extensa 5635 with Win7 installed. I started > grml64-small and copied the DSDT off it (see attachment) before its owner got > too suspious :) > > There is neither a ISBC method nor a BRXP method, like there are on my model. > So it's unlikely that win7 makes use of the functions on my laptop. > > _BCM method is this: > Method (_BCM, 1, NotSerialized) { > If (LEqual (BOWN, Zero)) { > Store (Subtract (Divide (Arg0, 0x0A, ), One), Local0) > Store (Local0, BRTN) > Acquire (^^^^LPCB.EC0.MUT1, 0xFFFF) > Store (Local0, ^^^^LPCB.EC0.BLVL) > Release (^^^^LPCB.EC0.MUT1) > If (LEqual (OSYS, 0x03E8)) { > Store (Multiply (Add (Local0, One), 0x18), Local1) > If (LGreater (Local1, 0xFF)) { Store (0xFF, Local1) } > Store (Local1, ^^^^GFX0.LBES) > } > On Linux, it direct access the LBES pci register on video device. > If (LLess (OSYS, 0x07D6)) { > If (LEqual (^^^^^WMID.BAEF, One)) { > Sleep (0xC8) > Store (0x05, ^^^^^WMID.WMIQ) > Notify (WMID, 0x80) } } > } Else { Store (Zero, BOWN) } > } On Vista or XP, it emit 0x80 wmi event. > So for linux, it does more than for windows. Win7 only stores the new value in > BLVL. Same as on my laptop. > > _B8E / _B8F are no-ops for Osi==Linux and do Notify DD02 for win7. > > AINT exists on this laptop as well (but is not called by any other method). > It is exactly the same method but the last line which is probably not > significant. Therefore I think that it *can* be used to set the brightness > too. > > I couldn't test the brightness control in X, because grml64-small doesn't have > it. But I doubt that it would have worked, seeing that DSDT code. > So I still guess that win7 calls AINT to set the brightness, instead of _BCM. > I thought Acer still used standard acpi on Win7, not direct access AINT. On my Acer Travelmate 8572, brightness works fine on Linux, but it access AINT method in _BCM: Method (_BCM, 1, NotSerialized) { If (LAnd (LGreaterEqual (Arg0, Zero), LLessEqual (Arg0, 0x64))) { AINT (One, Arg0) /* access AINT(OpRegion)*/ Store (Arg0, BRTL) } } There have no difference with Windows 7 and Linux on my Acer 8572, they are all access AINT() in _BCM, and brightness control works fine. > I will ask the owner if he lets me install a debugger on his laptop, so I can > "debug" his windows. Acer have 4 ODM help them to manufacture notebook/netbook, different ODM have different DSDT when different timezone. For brightness control, as I know: + Control by EC or + Control by OpRegion (AINT) I still thought Acer folllow standard acpi (call _BCM) on Windows 7, but might need send out a special EC command to initial EC, but I don't know how to reverse engineer EC, might need dump EC registers on Windows 7? -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching the assignee of the bug. ------------------------------------------------------------------------------ Simplify data backup and recovery for your virtual environment with vRanger. Installation's a snap, and flexible recovery options mean your data is safe, secure and there when you need it. Discover what all the cheering's about. Get your free trial download today. http://p.sf.net/sfu/quest-dev2dev2 _______________________________________________ acpi-bugzilla mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla
