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