linux/drivers/misc
Henrique de Moraes Holschuh b59727965d ACPI: thinkpad-acpi: BIOS backlight mode helper (v2.1)
Lenovo ThinkPads with generic ACPI backlight level control can be easily
set to react to keyboard brightness key presses in a more predictable way
than what they do when in "DOS / bootloader" mode after Linux brings
up the ACPI interface.

The switch to the ACPI backlight mode in the firmware is designed to be
safe to use only as an one way trapdoor.  One is not to force the firmware
to switch back to "DOS/bootloader" mode except by rebooting.  The mode
switch itself is performed by calling any of the ACPI _BCL methods at least
once.

When in ACPI mode, the backlight firmware just issues (standard) events for
the brightness up/down hot key presses along with the non-standard HKEY
events which thinkpad-acpi traps, and doesn't touch the hardware.

thinkpad-acpi will:

1. Place the ThinkPad firmware in ACPI backlight control mode
   if one is available
2. Suppress HKEY backlight change notifications by default
   to avoid double-reporting when ACPI video is loaded when
   the ThinkPad is in ACPI backlight control mode
3. Urge the user to load the ACPI video driver

The user is free to use either the ACPI video driver to get the brightness
key events, or to override the thinkpad-acpi default hotkey mask to get
them from thinkpad-acpi as well (this will result in duplicate events if
ACPI video is loaded, so let's hope distros won't screw this up).

Provided userspace is sane, all should work (and *keep* working), which is
more that can be said about the non-ACPI mode of the new Lenovo ThinkPad
BIOSes when coupled to current userspace and X.org drivers.

Full guidelines for backlight hot key reporting and use of the
thinkpad-acpi backlight interface have been added to the documentation.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Thomas Renninger <trenn@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
2008-04-29 09:46:59 -04:00
..
hdpuftrs misc: fix platform driver hotplug/coldplug 2008-04-15 19:35:40 -07:00
ibmasm NULL noise: drivers/misc 2008-03-30 14:18:41 -07:00
sgi-xp [IA64] run drivers/misc/sgi-xp through scripts/checkpatch.pl 2008-04-22 15:08:55 -07:00
acer-wmi.c Merge branches 'release', 'ejd', 'sony' and 'wmi' into release 2008-03-13 01:59:52 -04:00
asus-laptop.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2008-02-07 09:45:58 -08:00
atmel_pwm.c misc: fix platform driver hotplug/coldplug 2008-04-15 19:35:40 -07:00
atmel_tclib.c atmel_tc library 2008-03-04 13:41:23 +01:00
atmel-ssc.c misc: fix platform driver hotplug/coldplug 2008-04-15 19:35:40 -07:00
eeprom_93cx6.c eeprom_93cx6: shorten pulse timing to match spec (bis) 2007-07-10 12:41:09 -04:00
enclosure.c [SCSI] ses: fix up functionality after class_device->device conversion 2008-04-22 15:16:29 -05:00
fujitsu-laptop.c NULL noise: drivers/misc 2008-03-30 14:18:41 -07:00
intel_menlow.c intel_menlow: Storage class should be before const qualifier 2008-04-21 22:28:49 +00:00
ioc4.c drivers/misc: Move misplaced pci_dev_put's 2007-11-14 18:45:39 -08:00
Kconfig [IA64] move XP and XPC to drivers/misc/sgi-xp 2008-04-22 15:08:17 -07:00
kgdbts.c kgdb: allow static kgdbts boot configuration 2008-04-17 20:05:43 +02:00
lkdtm.c NULL noise: drivers/misc 2008-03-30 14:18:41 -07:00
Makefile [IA64] move XP and XPC to drivers/misc/sgi-xp 2008-04-22 15:08:17 -07:00
msi-laptop.c Remove inclusions of <linux/autoconf.h> 2008-02-06 10:41:00 -08:00
phantom.c phantom: don't grab other devices 2008-02-06 10:41:10 -08:00
sony-laptop.c sony-laptop.c: fix off-by-one 2008-02-21 04:49:24 -05:00
tc1100-wmi.c tc1100-wmi: Add driver for HP Compaq TC1100 Tablets 2008-02-05 15:07:16 -05:00
thinkpad_acpi.c ACPI: thinkpad-acpi: BIOS backlight mode helper (v2.1) 2008-04-29 09:46:59 -04:00
tifm_7xx1.c tifm: clear interrupt mask bits before setting them on adapter init 2008-03-10 18:01:18 -07:00
tifm_core.c memstick: initial commit for Sony MemoryStick support 2008-02-09 11:08:34 -08:00