Thread (26 messages) 26 messages, 3 authors, 2012-03-23

Re: [PATCH] Added backlight driver for Acer Aspire 4736

From: Pradeep Subrahmanion <hidden>
Date: 2012-03-14 06:17:12
Also in: lkml

Possibly related (same subject, not in this thread)

On Wed, Mar 14, 2012 at 11:21 AM, joeyli [off-list ref] wrote:
於 三,2012-03-14 於 08:13 +0530,Pradeep Subrahmanion 提到:
quoted
Hi Joey ,
quoted
Per my understood, EC firmware should change brightness but didn't do
that, another
way is touch i915 register in _BCM.
  how do we do this ? you mean change the _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.
quoted
quoted
Acer machine provide a broken _BCM implementation and they didn't test
it.
quoted
quoted
quoted
By ' ACPI interface' , I mean 'acpi_video0' inside the
/sys/class/backlight. I havn't tried the /sys/class/backlight interface
directly . I will try that also.
So writing values into /sys/class/backlight/acpi_video0/brightness does
nothing?

No change in value when writing
to /sys/class/backlight/acpi_video0/brightness.

Another thing is that when i did boot with acpi_backlight = 'acer_wmi' ,
in new kernel (3.3.0-rc7) , it shows following messages ,

[    8.350825] wmi: Mapper loaded
[   10.363975] acer_wmi: Acer Laptop ACPI-WMI Extras
[   10.396186] acer_wmi: Function bitmap for Communication Device: 0x91
[   10.396385] acer_wmi: Brightness must be controlled by generic video
driver

Also there was no interface inside /sys/class/backlight for acer_wmi.
Yes, acer_wmi support backlight control with AMW0 interface, your
machine didn't have AMW0 interface.

Normally, backlight should control by standard acpi interface.
quoted
I also tried writing directly to Embedded controller register .But no
change.
The machine has broken _BCM method, because EC should do something after
_BCM changed EC register.
Thanks ,

Pradeep Subrahmanion
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.
Thanks
Joey Lee
So touching the PCI LBB register is the only feasible solution now
(even though it may not be a clean  method) ?

Thanks,
Pradeep Subrahmanion
--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help