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





--- Comment #34 from Chris Bagwell <ch...@cnpbagwell.com>  2010-04-16 03:01:53 
---
I have some more research results.  First, let me restate the good parts.  If I
boot with acpi_osi="!Windows 2009" and acpi_backlight=vendor then things work
normally.  So thats my reference point.

Now, if I boot with no ACPI options, I notice the following important
information in dmesg:

ACPI Warning: _BQC returned an invalid level (20091214/video-638)
acpi device:0d: registered as cooling_device2
input: Video Bus as
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input7
ACPI: Video Device [VGA] (multi-head: yes  rom: no  post: no)

So it was having problems getting the current brightness level.

eeepc-laptop uses PLBG and PLBS to get and set brightness levels and they work;
as described in first paragraph.  The module seems to not modify the values it
passes so its strictly a value of 1-15.

ACPI Video uses _BQC and _BCM to get and set brightness; which isn't working. 
In DSDT, these are just remaps to PLBG and PLBS:

                    Method (_BQC, 0, NotSerialized)
                    {
                        Return (^^^^ATKD.PBLG ())
                    }

                    Method (_BCM, 1, NotSerialized)
                    {
                        Store (Arg0, Local0)
                        ^^^^ATKD.PBLS (Local0)
                    }

So as long as ACPI Video was passing values 1-15 to _BCM then you'd think they
would work as well.  But they seem to load some table of levels that are
supported using _BCL.  This table returns 15 values:

                    Method (_BCL, 0, NotSerialized)
                    {
                        Store (ShiftRight (BCLM, 0x08), Index (BBPS, 0x0F))
                        Store (ShiftRight (BCL1, 0x08), Index (BBPS, 0x0E))
                        Store (ShiftRight (BCL2, 0x08), Index (BBPS, 0x0D))
                        Store (ShiftRight (BCL3, 0x08), Index (BBPS, 0x0C))
                        Store (ShiftRight (BCL4, 0x08), Index (BBPS, 0x0B))
                        Store (ShiftRight (BCL5, 0x08), Index (BBPS, 0x0A))
                        Store (ShiftRight (BCL6, 0x08), Index (BBPS, 0x09))
                        Store (ShiftRight (BCL7, 0x08), Index (BBPS, 0x08))
                        Store (ShiftRight (BCL8, 0x08), Index (BBPS, 0x07))
                        Store (ShiftRight (BCL9, 0x08), Index (BBPS, 0x06))
                        Store (ShiftRight (BCLA, 0x08), Index (BBPS, 0x05))
                        Store (ShiftRight (BCLB, 0x08), Index (BBPS, 0x04))
                        Store (ShiftRight (BCLC, 0x08), Index (BBPS, 0x03))
                        Store (ShiftRight (BCLD, 0x08), Index (BBPS, 0x02))
                        Store (ShiftRight (BCLE, 0x08), Index (BBPS, One))
                        Store (ShiftRight (BCLF, 0x08), Index (BBPS, Zero))
                        Return (BBPS)
                    }

So when user gives a value of 1-15 ACPI Video does a lookup to values from
above array and somehow this makes things get really confused.  Output of
/proc/acpi/video/VGA/LCDD appears to show these levels:

levels:  1 4 7 10 13 16 20 23 26 29 32 36 41 46 50 56
current: 56

Based on eeepc-laptop logic, I think those levels should be 1-15.

If I am in fact understand this all then probably means buggy DSDT and needs to
be resolved by BIOS update from ASUS.... or if that doesn't happen then needs
to be blacklisted in ACPI Video to force .

In mean time, using acpi_backlight=vendor seems the best option and let
eeepc-laptop or eeepc-wmi take control of backlight.

BTW: This issue seems specific to using
/sys/class/backlight/acpi_video0/brightness interface.  If you get software out
of the loop; except for ACPI Video (maybe do an "init 3"); then Fn-F4/F5 does
work correctly.

-- 
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.

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to