tags 655941 + upstream patch moreinfo quit Hi Andrey,
Jonathan Nieder wrote: > Excellent. Next step is to test whatever patch upstream arrives at. Ok, looks like there is a patch agreed upon now (attached). Could you test it? It works like this: 0. Prerequisites: apt-get install git build-essential 1. Get a copy of the kernel: git clone -o stable \ git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git \ linux cd linux Or, if you already have a copy of the kernel, update it to include the latest point releases: cd linux git remote add -f stable \ git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 2. Check out the linux-3.2.y branch and make sure it reproduces the problem. git checkout stable/linux-3.2.y cp /boot/config-$(uname -r) .config; # current configuration make localmodconfig; # optional: minimize configuration make deb-pkg; # optionally with -j<num> for parallel build dpkg -i ../<name of package> reboot 3. Apply patch and see if it improves things. git am -3sc thepatch make deb-pkg; # maybe with -j4 dpkg -i ../<name of package> reboot
From: Ike Panhc <ike....@canonical.com> Date: Fri, 3 Feb 2012 16:46:39 +0800 Subject: acer-wmi: No wifi rfkill on Lenovo machines 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....@canonical.com> Acked-by: Lee, Chun-Yi <j...@suse.com> Signed-off-by: Jonathan Nieder <jrnie...@gmail.com> --- drivers/platform/x86/acer-wmi.c | 30 +++++++++++++++++++++++++++++- 1 files changed, 29 insertions(+), 1 deletions(-) diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index b848277171a4..1e5290b5396d 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -679,6 +679,32 @@ static acpi_status AMW0_find_mailled(void) 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; @@ -692,7 +718,9 @@ static acpi_status AMW0_set_capabilities(void) * 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; } -- 1.7.9