From: Ike Panhc ike.pan@canonical.com
Git-commit: 461e74377cfcfc2c0d6bbdfa8fc5fbc21b052c2a Patch-mainline: v3.3-rc8 References: bnc#745236
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 ike.pan@canonical.com Signed-off-by: Matthew Garrett mjg@redhat.com Acked-by: Lee, Chun-Yi jlee@suse.com --- 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 @@ -668,6 +668,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; @@ -681,7 +707,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; }
From: Lee, Chun-Yi joeyli.kernel@gmail.com
Git-commit: 5719b81988f3c24ff694dc3a37e35b35630a3966 Patch-mainline: v3.4-rc1 References: bnc#752673
The wireless rfkill should charged by sony-laptop but not acer-wmi. So, add Sony's SNY5001 acpi device to blacklist in acer-wmi.
Tested on Sony Vaio
Cc: Carlos Corbacho carlos@strangeworlds.co.uk Cc: Matthew Garrett mjg@redhat.com Cc: Mattia Dongili malattia@linux.it Cc: Dimitris N ddarlac@gmail.com Tested-by: Dimitris N ddarlac@gmail.com Signed-off-by: Lee, Chun-Yi jlee@suse.com Signed-off-by: Matthew Garrett mjg@redhat.com --- drivers/platform/x86/acer-wmi.c | 1 + 1 file changed, 1 insertion(+)
--- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -681,6 +681,7 @@ static const struct acpi_device_id norfk { "VPC2004", 0}, { "IBM0068", 0}, { "LEN0068", 0}, + { "SNY5001", 0}, /* sony-laptop in charge */ { "", 0}, };