1
linux/drivers/platform/x86
Henrique de Moraes Holschuh 5d756db99a thinkpad-acpi: fix volume/mute hotkey poll handling
The hotkey polling code is supposed to generate hotkey messages as
close to the way the IBM event-based volume hotkey firmware does as
possible, i.e:

* Pressing MUTE issues a mute hotkey event, even if already mute;

* Pressing Volume up/down issues a volume up/down hotkey event,
  even if already at maximum or minumum volume;

* The act of unmuting issues a volume up/down event, depending on
  which hotkey was used to unmute.

Fix the code to do just that (mute handling was incorrect), and handle
multiple hotkey presses between two polling cycles.

The new code uses the volume_toggle bit in NVRAM only to detect
repeated presses of the mute key and multiple presses of the volume
keys trying to go past the end of the volume scale.  This will work
around a bug in recent Lenovo firmware (e.g. T400), which causes the
firmware to not update the volume_toggle bit in certain situations.

Reported-by: Yang Zhe <yangzhe1990@gmail.com>
Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
2010-05-16 19:45:28 -03:00
..
acer-wmi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
acerhdf.c drivers/platform/x86/acerhdf.c: check BIOS information whether it begins with string of table 2009-12-24 00:17:09 -05:00
asus_acpi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
asus-laptop.c asus: don't modify bluetooth/wlan on boot 2010-04-12 13:10:55 -04:00
classmate-laptop.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
compal-laptop.c backlight: Allow properties to be passed at registration 2010-03-16 19:47:54 +00:00
dell-laptop.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dell-wmi.c dell-wmi: Fix memory leak 2010-04-12 13:10:19 -04:00
eeepc-laptop.c eeepc-laptop: add missing sparse_keymap_free 2010-04-23 15:23:21 -04:00
eeepc-wmi.c eeepc-wmi: add backlight support 2010-04-12 13:02:52 -04:00
fujitsu-laptop.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
hp-wmi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
intel_menlow.c device_attributes: add sysfs_attr_init() for dynamic attributes 2010-04-07 08:38:03 -07:00
Kconfig eeepc-wmi: Build fix 2010-04-12 13:21:35 -04:00
Makefile eeepc-wmi: new driver for WMI based hotkeys on Eee PC laptops 2010-03-31 17:19:07 -04:00
msi-laptop.c backlight: Allow properties to be passed at registration 2010-03-16 19:47:54 +00:00
msi-wmi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
panasonic-laptop.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sony-laptop.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
tc1100-wmi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
thinkpad_acpi.c thinkpad-acpi: fix volume/mute hotkey poll handling 2010-05-16 19:45:28 -03:00
topstar-laptop.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
toshiba_acpi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
toshiba_bluetooth.c ACPI: replace acpi_integer by u64 2010-01-28 01:47:33 -05:00
wmi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00