linux/drivers/misc
Henrique de Moraes Holschuh 01e88f2598 ACPI: thinkpad-acpi: add CMOS NVRAM polling for hot keys (v9)
Older ThinkPad models do not export some of the hot keys over the
event-based ACPI hot key interface.  For these models, one has to poll
the CMOS NVRAM to check the key state at a rate faster than the expected
rate at which the user might repeatedly press the same hot key.

This patch implements this functionality for many of the hotkeys in a
transparent way: hot keys will now Just Work, and the driver knows the
best approach (events or NVRAM polling) to employ, based on the
HKEY.MHKA ACPI method.

Also, the driver can turn off the polling when there are no users for
the hot keys that need such polling.

The NVRAM-based hot keys of the A3x series that have never been
implemented by later models are not supported, to avoid changes in the
keymap of the input devices that could cause headaches in the future.

There is a Kconfig option to avoid compiling the NVRAM polling code, as
it is not very small, and unlikely to be useful on any ThinkPad newer
than a T40, X31 or R52.

This feature is based on a previous effort by Richard Hughes.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Richard Hughes <hughsient@gmail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2008-02-01 22:26:06 -05:00
..
hdpuftrs [POWERPC] Sky Cpu and Nexus: use seq_file/single_open on proc interface 2007-10-03 12:02:44 +10:00
ibmasm kobject: convert ibmasm to use kref, not kobject 2008-01-24 20:40:08 -08:00
asus-laptop.c Pull events into release branch 2007-08-25 01:44:01 -04:00
atmel-ssc.c Driver for the Atmel on-chip SSC on AT32AP and AT91 2007-10-17 08:42:47 -07:00
eeprom_93cx6.c eeprom_93cx6: shorten pulse timing to match spec (bis) 2007-07-10 12:41:09 -04:00
fujitsu-laptop.c fujitsu-laptop.c: remove dead code 2007-10-25 17:43:46 -04:00
ioc4.c drivers/misc: Move misplaced pci_dev_put's 2007-11-14 18:45:39 -08:00
Kconfig ACPI: thinkpad-acpi: add CMOS NVRAM polling for hot keys (v9) 2008-02-01 22:26:06 -05:00
lkdtm.c [PATCH] assigning enum constant to char * is vile, even if it happens to be 0 2007-02-09 08:28:48 -08:00
Makefile Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2007-10-19 13:12:46 -07:00
msi-laptop.c drivers/firmware: const-ify DMI API and internals 2007-10-09 20:22:20 -04:00
phantom.c Misc: phantom, improved data passing 2007-10-19 11:53:41 -07:00
sony-laptop.c sony-laptop: fit input devices into sysfs tree 2007-11-21 14:15:53 -05:00
thinkpad_acpi.c ACPI: thinkpad-acpi: add CMOS NVRAM polling for hot keys (v9) 2008-02-01 22:26:06 -05:00
thinkpad_acpi.h ACPI: thinkpad-acpi: add CMOS NVRAM polling for hot keys (v9) 2008-02-01 22:26:06 -05:00
tifm_7xx1.c tifm: Convert from class_device to device for TI flash media 2008-01-24 20:40:06 -08:00
tifm_core.c tifm: Convert from class_device to device for TI flash media 2008-01-24 20:40:06 -08:00