+ drivers-platform-x86-acer-wmic-no-wifi-rfkill-on-lenovo-machines.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     Subject: drivers/platform/x86/acer-wmi.c: no wifi rfkill on Lenovo machines
has been added to the -mm tree.  Its filename is
     drivers-platform-x86-acer-wmic-no-wifi-rfkill-on-lenovo-machines.patch

Before you just go and hit "reply", please:
   a) Consider who else should be cc'ed
   b) Prefer to cc a suitable mailing list as well
   c) Ideally: find the original patch on the mailing list and do a
      reply-to-all to that, adding suitable additional cc's

*** Remember to use Documentation/SubmitChecklist when testing your code ***

The -mm tree is included into linux-next and is updated
there every 3-4 working days

------------------------------------------------------
From: Ike Panhc <ike.pan@xxxxxxxxxxxxx>
Subject: drivers/platform/x86/acer-wmi.c: 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.  Symptom is that wifi
just doesn't work on these machines until the acer-wmi driver is unloaded.
 
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.

Addresses http://bugs.debian.org/655941 and
          https://bugzilla.redhat.com/show_bug.cgi?id=674353

Signed-off-by: Ike Panhc <ike.pan@xxxxxxxxxxxxx>
Acked-by: Lee, Chun-Yi <jlee@xxxxxxxx>
Tested-by: Andrey <andrey.k.p@xxxxxxxxx> # Ideapad Z570
Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx>
Cc: Matthew Garrett <mjg@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 drivers/platform/x86/acer-wmi.c |   30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff -puN drivers/platform/x86/acer-wmi.c~drivers-platform-x86-acer-wmic-no-wifi-rfkill-on-lenovo-machines drivers/platform/x86/acer-wmi.c
--- a/drivers/platform/x86/acer-wmi.c~drivers-platform-x86-acer-wmic-no-wifi-rfkill-on-lenovo-machines
+++ a/drivers/platform/x86/acer-wmi.c
@@ -679,6 +679,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;
@@ -692,7 +718,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;
 	}
 
_
Subject: Subject: drivers/platform/x86/acer-wmi.c: no wifi rfkill on Lenovo machines

Patches currently in -mm which might be from ike.pan@xxxxxxxxxxxxx are

drivers-platform-x86-acer-wmic-no-wifi-rfkill-on-lenovo-machines.patch

--
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux