http://bugzilla.kernel.org/show_bug.cgi?id=13577
Summary: Broken backlight control on Acer Aspire 8930G due to buggy DSDT/ACPI Video Product: ACPI Version: 2.5 Kernel Version: 2.6.29 Platform: All OS/Version: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Power-Video AssignedTo: acpi_power-vi...@kernel-bugs.osdl.org ReportedBy: hec...@marcansoft.com Regression: No Created an attachment (id=22005) --> (http://bugzilla.kernel.org/attachment.cgi?id=22005) Disassembled DSDT Backlight controls on this laptop are broken due to a combination of factors. Apparently, the DSDT supports two methods to set the backlight: - old WMI / proprietary method. This is supported by acer_wmi. - ACPI Video interface When the DSDT detects Windows Vista (which Linux seems to pretend to be), it disables the WMI method and also disables direct control using the hardware keys, instead expecting software to react to those keypresses and control it using the ACPI Video device. When I do a very ugly EC hack to turn off Vista mode, acer_wmi works fine to set and query the brightness and also the hardware keys work directly, even without acer_wmi. Presumably this will also be the case if Linux doesn't identify itself as Vista to ACPI. The ACPI Video Interface is broken. There are three devices supported: OVGA, PEGP.EVGA, and PEGP.NVGA. As far as I can tell, OVGA is supposed to be an integrated graphics controller that doesn't exist. EVGA and NVGA are very similar and I don't know which one corresponds to my laptop or how the driver is supposed to tell between them, but clearly one of them is the correct one and corresponds to the modular MXM card on the laptop. OVGA would work except that it corresponds to a nonexistent PCI device, so acpi_get_physical_pci_device kills it. Hacking this out makes things work (the brightness setting is via the EC anyway, and works the same for all three devices), but that doesn't sound like a good idea. EVGA and NVGA fail to register as video devices because they lack the _DOS method that ACPI specifies as required for backlight functionality. They do have _DOD, which isn't enough for display output switching support, but at least identifies them as video devices. They fail the acpi_is_video_device because that only checks for backlight support if one of the other three features is fully present. They also fail acpi_video_bus_check because that again wants one of the three features. At this point I'm unsure of what the best way to fix this is. My guess would be to make acpi_is_video_device check for brightness controls even if only _DOD is present, and also make acpi_video_bus_check consider just _DOD good enough to pass a device. Then the other issue left would be the duplicated device (the backlight control is really messed up when it tries to do the same thing to two different devices). Applying those two hacks and and manually unbinding one of the devices from the driver via sysfs makes things work for me. -- Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching the assignee of the bug. ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ acpi-bugzilla mailing list acpi-bugzilla@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla