Comment 203 for bug 1098216

Revision history for this message
In , ben (ben-linux-kernel-bugs) wrote :

Re: #76 patch:

Unfortunately, just setting acpi_backlight=vendor has too many side effects to completely solve the problem:
1. It causes _BCL not to be called, so the firmware won't generate ACPI events for the keypresses. Instead, the firmware will handle them entirely internally, changing the brightness. (See [1])
2. thinkpad_acpi will not mask the brightness keys, so we get hotkey events through that, in addition to the firmware's internal brightness changes.
3. thinkpad_acpi creates its "thinkpad_screen" sysfs device, which userspace prefers to the intel_backlight device that we want to be using.

I hacked up my kernel to do what I want on my machine, and I had to have acpi_video_backlight_support continue to return true, explicitly call _BCL, and return from acpi_video_device_find_cap before the acpi_video0 device was created.

Another alternative would be to allow acpi_video0 to load normally, but prefer intel_backlight from userspace (Intel's xorg driver, xf86-video-intel/src/intel_display.c, backlight_interfaces) . That doesn't sound likely, though, from some discussions I read about libbacklight preferring firmware interfaces to raw interfaces.

[1] http://sourceforge.net/mailarchive/forum.php?thread_name=51758EA5.6030405%40bjencks.net&forum_name=ibm-acpi-devel