https://bugzilla.kernel.org/show_bug.cgi?id=42833





--- Comment #12 from Lee, Chun-Yi <j...@novell.com>  2012-03-20 03:58:03 ---
(In reply to comment #11)
> (In reply to comment #9)
> > I'm confused by the ACPI brightness control implement on this machine.
> > 
> >                         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))
> >                                 {
> >                                 /* update IGD LBES field in case it's 
> > "Linux"
> > */
> >                                 }
> > 
> >                                 If (LLess (OSYS, 0x07D6))
> >                                 {
> >                                 /* Need wmi support if it is not Vista or 
> > Win7
> > */
> >                                 }
> >                             }
> >                         }
> > Does this mean that updating EC0.BLVL can change the backlight in Windows 
> > Vista
> > and Win7? Or windows Vista and Win7 doesn't use ACPI backlight control at 
> > all?
> > 
> > Hi, Lukacs,
> > will you please check
> > 1) if the brightness works when you boot the kernel with both
> > acpi_osi="!Windows 2009" and acpi_osi="!Windows 2006" ?
> > 2) if the brightness works when you boot the kernel with acpi_osi="Linux"?
> 
> Both with acpi_osi="!Windows 2009" and with acpi_osi="!Windows 2006" boot the
> system, but the problem still exist.
> 

Yes, you are not the first one, that because Acer ODM provide a broken _BCM
implementation:

"BIOS guy" should do something like this:

Method (AINT, 2, NotSerialized)
{
...
        If (LEqual (Arg0, One))
        {
            Store (Divide (Multiply (Arg1, 0xFF), 0x64, ), BCLP)
            Or (BCLP, 0x80000000, BCLP)         <=== touch BCLP register
            Store (0x02, ASLC)
        }

    Method (_BCM, 1, NotSerialized)
    {
        If (LAnd (LGreaterEqual (Arg0, Zero), LLessEqual (Arg0, 0x64)))
        {
            AINT (One, Arg0)     <=== call AINT method
            Store (Arg0, BRTL)
        }
    }

 Just for reference, they should do that when EC didn't wire to
 backlight.

But,
Why they didn't find _BCM not work?

My guess is:

Because the backlight control is through WDDM driver on Windows platform
but not through standard ACPI method _BCM. They only test Windows
platform, so, they didn't find _BCM broken.

And, they also didn't really follow Microsoft WDDM spec:

http://msdn.microsoft.com/en-us/windows/hardware/gg487382.aspx

Per spec,
ODM should keep _BCM works fine for any other OS didn't support WDDM
driver, but they didn't.

At last year, I told Acer PM one time for this issue, they said will
check but finally didn't response me.

> Luckily with acpi_osi="Linux" everything works fine just like with
> "acpi_backlight=vendor", however, when the system boots it starts with the
> lowest backlight level.

I prefer "acpi_backlight=vendor" but not acpi_osi="Linux", because ODM didn't
test the code path with acpi_osi="Linux", they always only test Windows
platform.

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to