kernel-fxtec-pro1x/drivers/platform/x86
Alan Jenkins 978605c4fd eeepc-laptop: Work around rfkill firmware bug
1) Buggy firmware can change the RFKILL state by itself. This is easily
   detected.  The RFKILL API states that in such cases, we should call
   rfkill_force_state() to notify the core.

   I have reported the bug to Asus. I believe this is the right thing
   to do for robustness, even if this particular firmware bug is fixed.

2) The same bug causes the wireless toggle key to be reported as 0x11
   instead of 0x10.  0x11 is otherwise unused, so it should be safe to
   add this as a new keycode.

The bug is triggered by removing the laptop battery while hibernated.

On resume, the wireless toggle key causes the firmware to toggle the
wireless state itself.  (Also, the key is reported as 0x11 when the
current wireless state is OFF).

This is very poor behaviour because the OS can't predict whether the
firmware is controlling the RFKILL state.

Without this workaround, the bug means users have to press the wireless
toggle key twice to enable, due to the OS/firmware conflict.  (Assuming
rfkill-input or equivalent is being used).  The workaround avoids this.

I believe that acpid scripts which toggle the value of the sysfs state file
when the toggle key is pressed will be rendered ineffective by the bug,
regardless of this workaround.  If they simply toggle the state, when the
firmware has already toggled it, then you will never see a state change.

Tested on "EEEPC 4G" only.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Len Brown <len.brown@intel.com>
2009-05-14 11:21:36 -04:00
..
acer-wmi.c acer-wmi: Update copyright notice & documentation 2009-04-04 12:36:31 -04:00
asus-laptop.c asus-laptop: restore acpi_generate_proc_event() 2009-03-16 00:37:31 -04:00
asus_acpi.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
compal-laptop.c
dell-laptop.c dmi: Let dmi_walk() users pass private data 2009-03-30 21:46:44 +02:00
dell-wmi.c dell-wmi: new driver for hotkey control 2009-04-03 22:54:50 -04:00
eeepc-laptop.c eeepc-laptop: Work around rfkill firmware bug 2009-05-14 11:21:36 -04:00
fujitsu-laptop.c fujitsu-laptop: use .notify method instead of installing hotkey handler directly 2009-04-07 16:26:58 -04:00
hp-wmi.c hp-wmi: notify of a potential docking state change on resume 2009-03-15 23:45:28 -04:00
intel_menlow.c thermal: use integers rather than strings for thermal values 2009-02-20 10:52:37 -05:00
Kconfig Merge branch 'dell-wmi' into release 2009-04-05 01:51:22 -04:00
Makefile dell-wmi: new driver for hotkey control 2009-04-03 22:54:50 -04:00
msi-laptop.c
panasonic-laptop.c Merge branches 'release', 'APERF', 'ARAT', 'misc', 'kelvin', 'device-lock' and 'bjorn.notify' into release 2009-04-07 18:18:42 -04:00
sony-laptop.c sony-laptop: always try to unblock rfkill on load 2009-04-23 23:57:34 -04:00
tc1100-wmi.c tc1100-wmi: Fix state reporting 2009-04-03 12:03:27 -04:00
thinkpad_acpi.c thinkpad-acpi: bump up version to 0.23 2009-04-18 01:19:54 -04:00
toshiba_acpi.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
wmi.c ACPI: WMI: use .notify method instead of installing handler directly 2009-04-07 16:26:58 -04:00