From 0f716f1c764f60563f4adaa279f798654b3fdf95 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 14 Mar 2012 15:03:44 -0700 Subject: [PATCH] 3.0-stable patches added patches: acer-wmi-no-wifi-rfkill-on-lenovo-machines.patch --- ...mi-no-wifi-rfkill-on-lenovo-machines.patch | 75 +++++++++++++++++++ queue-3.0/series | 1 + 2 files changed, 76 insertions(+) create mode 100644 queue-3.0/acer-wmi-no-wifi-rfkill-on-lenovo-machines.patch diff --git a/queue-3.0/acer-wmi-no-wifi-rfkill-on-lenovo-machines.patch b/queue-3.0/acer-wmi-no-wifi-rfkill-on-lenovo-machines.patch new file mode 100644 index 00000000000..9201db2c3b0 --- /dev/null +++ b/queue-3.0/acer-wmi-no-wifi-rfkill-on-lenovo-machines.patch @@ -0,0 +1,75 @@ +From 461e74377cfcfc2c0d6bbdfa8fc5fbc21b052c2a Mon Sep 17 00:00:00 2001 +From: Ike Panhc +Date: Fri, 3 Feb 2012 16:46:39 +0800 +Subject: acer-wmi: No wifi rfkill on Lenovo machines + +From: Ike Panhc + +commit 461e74377cfcfc2c0d6bbdfa8fc5fbc21b052c2a upstream. + +We have several reports which says acer-wmi is loaded on ideapads +and register rfkill for wifi which can not be unblocked. + +Since ideapad-laptop also register rfkill for wifi and it works +reliably, it will be fine acer-wmi is not going to register rfkill +for wifi once VPC2004 is found. + +Also put IBM0068/LEN0068 in the list. Though thinkpad_acpi has no +wifi rfkill capability, there are reports which says acer-wmi also +block wireless on Thinkpad E520/E420. + +Signed-off-by: Ike Panhc +Signed-off-by: Matthew Garrett +Cc: Jonathan Nieder +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/platform/x86/acer-wmi.c | 30 +++++++++++++++++++++++++++++- + 1 file changed, 29 insertions(+), 1 deletion(-) + +--- a/drivers/platform/x86/acer-wmi.c ++++ b/drivers/platform/x86/acer-wmi.c +@@ -648,6 +648,32 @@ static acpi_status AMW0_find_mailled(voi + return AE_OK; + } + ++static int AMW0_set_cap_acpi_check_device_found; ++ ++static acpi_status AMW0_set_cap_acpi_check_device_cb(acpi_handle handle, ++ u32 level, void *context, void **retval) ++{ ++ AMW0_set_cap_acpi_check_device_found = 1; ++ return AE_OK; ++} ++ ++static const struct acpi_device_id norfkill_ids[] = { ++ { "VPC2004", 0}, ++ { "IBM0068", 0}, ++ { "LEN0068", 0}, ++ { "", 0}, ++}; ++ ++static int AMW0_set_cap_acpi_check_device(void) ++{ ++ const struct acpi_device_id *id; ++ ++ for (id = norfkill_ids; id->id[0]; id++) ++ acpi_get_devices(id->id, AMW0_set_cap_acpi_check_device_cb, ++ NULL, NULL); ++ return AMW0_set_cap_acpi_check_device_found; ++} ++ + static acpi_status AMW0_set_capabilities(void) + { + struct wmab_args args; +@@ -661,7 +687,9 @@ static acpi_status AMW0_set_capabilities + * work. + */ + if (wmi_has_guid(AMW0_GUID2)) { +- interface->capability |= ACER_CAP_WIRELESS; ++ if ((quirks != &quirk_unknown) || ++ !AMW0_set_cap_acpi_check_device()) ++ interface->capability |= ACER_CAP_WIRELESS; + return AE_OK; + } + diff --git a/queue-3.0/series b/queue-3.0/series index 50ebcf1ace6..500c5b60f85 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -9,3 +9,4 @@ pm-driver-core-leave-runtime-pm-enabled-during-system-shutdown.patch rt2x00-fix-random-stalls.patch vfs-fix-return-value-from-do_last.patch vfs-fix-double-put-after-complete_walk.patch +acer-wmi-no-wifi-rfkill-on-lenovo-machines.patch -- 2.47.3