kernel-ark/drivers/platform/x86
Corentin Chary 279f8f9549 eeepc-wmi: serialize access to wmi method
\AMW0.WMBC, which is the main method that we use,
is not reentrant. When wireless hotpluging is enabled,
toggling the status of the wireless device using WMBC will
trigger a notification and the notification handler need to
call WMBC again to get the new status of the device, this
will trigger the following error:

ACPI Error (dswload-0802): [_T_0] Namespace lookup failure, AE_ALREADY_EXISTS
ACPI Exception: AE_ALREADY_EXISTS, During name lookup/catalog (20100428/psloop-231)
ACPI Error (psparse-0537): Method parse/execution failed [\AMW0.WMBC] (Node f7023b88), AE_ALREADY_EXISTS
ACPI: Marking method WMBC as Serialized because of AE_ALREADY_EXISTS error

Since there is currently no way to tell the acpi subsystem to mark
a method as serialized, we do it in eeepc-wmi.

Of course, we could let the first call fail, and then it would work,
but it doesn't seems really clean, and it will make the first
WMBC call return a random value.

This patch was tested on EeePc 1000H with a RaLink RT2860
wireless card using the rt2800pci driver. rt2860sta driver
seems to deadlock when we remove the pci device...

Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
2011-03-28 06:05:15 -04:00
..
acer-wmi.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
acerhdf.c acerhdf: fix resource reclaim in error path 2010-08-03 09:49:01 -04:00
asus_acpi.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
asus-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
classmate-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
compal-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
dell-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
dell-wmi.c Input: dell-wmi - switch to using sparse keymap library 2010-10-21 09:36:43 -04:00
eeepc-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
eeepc-wmi.c eeepc-wmi: serialize access to wmi method 2011-03-28 06:05:15 -04:00
fujitsu-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
hdaps.c Move hdaps driver to platform/x86 2010-10-21 10:10:43 -04:00
hp_accel.c hp_accel: Fix driver name 2011-03-21 17:59:36 +01:00
hp-wmi.c ACPI, hp-wmi: Fix memory leak in acpi query 2010-11-24 12:07:10 -05:00
ibm_rtl.c ibm_rtl: _RTL_ is not available in UEFI mode 2010-11-24 12:00:03 -05:00
ideapad-laptop.c ideapad: pass ideapad_priv as argument (part 2) 2011-01-07 17:03:47 -05:00
intel_ips.c intel_ips: fix sparse non-ANSI function warning 2011-01-10 11:55:25 -05:00
intel_ips.h drm/i915, intel_ips: When i915 loads after IPS, make IPS relink to i915. 2010-12-23 09:51:36 +00:00
intel_menlow.c intel_menlow: fix memory leaks in error path 2010-08-03 09:48:40 -04:00
intel_pmic_gpio.c platform-drivers: x86: pmic: Use request_irq instead of chained handler 2011-02-21 17:06:11 -05:00
intel_rar_register.c rar: Fix off by one error 2010-08-24 10:42:08 -07:00
intel_scu_ipc.c intel_scu_ipc: remove duplicated #include 2011-01-31 12:59:34 +10:00
intel_scu_ipcutil.c intel_scu_ipcutils: Fix the license tag 2011-01-26 08:57:18 +10:00
Kconfig OLPC XO-1.5 ebook switch driver 2011-03-28 06:05:14 -04:00
Makefile OLPC XO-1.5 ebook switch driver 2011-03-28 06:05:14 -04:00
msi-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
msi-wmi.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
panasonic-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
sony-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
tc1100-wmi.c platform: x86: tc1100-wmi: world-writable sysfs wireless and jogdial files 2011-02-21 17:06:13 -05:00
thinkpad_acpi.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
topstar-laptop.c topstar-laptop - switch to using sparse keymap library 2010-10-21 09:36:42 -04:00
toshiba_acpi.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
toshiba_bluetooth.c ACPI: replace acpi_integer by u64 2010-01-28 01:47:33 -05:00
wmi.c WMI: return error if wmi_create_device() fails 2011-01-07 17:03:45 -05:00
xo1-rfkill.c Add OLPC XO-1 rfkill driver 2010-10-21 10:10:44 -04:00
xo15-ebook.c OLPC XO-1.5 ebook switch driver 2011-03-28 06:05:14 -04:00