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