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

Reply via email to