Skip to contentSkip to conversation

acer-wmi: check wireless capability on AMW0_GUID2 machines

PATCH In review Lee, Chun-Yi 7 participants 28 messages Jan 9, 2012 – Mar 19, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 acer-wmi: check wireless capability on AMW0_GUID2 machines

From: "Lee, Chun-Yi" <[email protected]>

Have many non-acer machines have AMW0_GUID2 method in DSDT, in original acer-wmi design, driver direct set ACER_CAP_WIRELESS flag for those machines but didn't check the functionality for set/get wireless state.
It causes acer-wmi driver create a broken wireless rfkill and it already set to soft blocked.

So, this patch add a wireless capability check before we set ACER_CAP_WIRELESS flag to the machines that were included AMW0_GUID2. It avoid acer-wmi create a broken wireless rfkill.

Thank's for Matthew Garrett give the idea.

Reference: brc#674353

        https://bugzilla.redhat.com/show_bug.cgi?id=674353

Tested on Lenovo E520.
Tested on Acer TravelMate 4750.

Cc Carlos Corbacho <[email protected]>
Cc Matthew Garrett <[email protected]>
Cc Dmitry Torokhov <[email protected]>
Cc Corentin Chary <[email protected]>
Cc Thomas Renninger <[email protected]>
---
 drivers/platform/x86/acer-wmi.c |   33 ++++++++++++++++++++++++++++++++-
 1 files changed, 32 insertions(+), 1 deletions(-)
drivers/platform/x86/acer-wmi.c +32 -1
index 88dfecf..5dfa46a 100644
@@ -678,6 +678,37 @@ static acpi_status AMW0_find_mailled(void)
 	return AE_OK;
 }
 
+static void AMW0_GUID2_set_capabilities(void)
+{
+	acpi_status status;
+	u32 original_state, new_state;
+
+	/* set wireless capability when detected has quirk */
+	if (quirks->wireless > 0) {
+		interface->capability |= ACER_CAP_WIRELESS;
+		return;
+	}
+
+	status = AMW0_get_u32(&original_state, ACER_CAP_WIRELESS);
+	if (ACPI_FAILURE(status))
+		return;
+
+	status = AMW0_set_u32(!original_state, ACER_CAP_WIRELESS);
+	if (ACPI_FAILURE(status))
+		return;
+
+	status = AMW0_get_u32(&new_state, ACER_CAP_WIRELESS);
+	if (ACPI_FAILURE(status))
+		return;
+
+	status = AMW0_set_u32(original_state, ACER_CAP_WIRELESS);
+	if (ACPI_FAILURE(status))
+		return;
+
+	if (new_state != original_state)
+		interface->capability |= ACER_CAP_WIRELESS;
+}
+
 static acpi_status AMW0_set_capabilities(void)
 {
 	struct wmab_args args;
@@ -691,7 +722,7 @@ static acpi_status AMW0_set_capabilities(void)
 	 * work.
 	 */
 	if (wmi_has_guid(AMW0_GUID2)) {
-		interface->capability |= ACER_CAP_WIRELESS;
+		AMW0_GUID2_set_capabilities();
 		return AE_OK;
 	}
 
Signature · 1 line
1.7.7
#1 lore raw
Quoted 13 lines · Chun-Yi

From: "Lee, Chun-Yi" <[email protected]>

Have many non-acer machines have AMW0_GUID2 method in DSDT, in original acer-wmi design, driver direct set ACER_CAP_WIRELESS flag for those machines but didn't check the functionality for set/get wireless state.
It causes acer-wmi driver create a broken wireless rfkill and it already set to soft blocked.

So, this patch add a wireless capability check before we set ACER_CAP_WIRELESS flag to the machines that were included AMW0_GUID2. It avoid acer-wmi create a broken wireless rfkill.

Quoted 7 lines

Thank's for Matthew Garrett give the idea.

Reference: brc#674353

        https://bugzilla.redhat.com/show_bug.cgi?id=674353

Tested on Lenovo E520.
Tested on Acer TravelMate 4750.

Is there really no other way to detect the availability of wireless on hardware with that GUID without resorting to poking stuff to see if it sticks?

My assumption has always been that there must be of finding out, but I've never had the hardware to check that with.

-Carlos

maintainer
#2 lore raw

Hi Carios,

於 一,2012-01-09 於 08:01 +0000,Carlos Corbacho 提到:

Quoted 22 lines · Chun-Yi
Quoted 13 lines

From: "Lee, Chun-Yi" <[email protected]>

Have many non-acer machines have AMW0_GUID2 method in DSDT, in original acer-wmi design, driver direct set ACER_CAP_WIRELESS flag for those machines but didn't check the functionality for set/get wireless state.
It causes acer-wmi driver create a broken wireless rfkill and it already set to soft blocked.

So, this patch add a wireless capability check before we set ACER_CAP_WIRELESS flag to the machines that were included AMW0_GUID2. It avoid acer-wmi create a broken wireless rfkill.

Quoted 7 lines

Thank's for Matthew Garrett give the idea.

Reference: brc#674353

        https://bugzilla.redhat.com/show_bug.cgi?id=674353

Tested on Lenovo E520.
Tested on Acer TravelMate 4750.

Quoted 9 lines

Is there really no other way to detect the availability of wireless on hardware with that GUID without resorting to poking stuff to see if it sticks?

My assumption has always been that there must be of finding out, but I've never had the hardware to check that with.

-Carlos

I just checked and found I also have no AMW0_GUID2 machines on my hand, now.
I have some questions about AMW0_GUID2:

+ Why we enabled wireless capability in acer-wim if a non-acer machine has AMW0_GUID2 ?

+ I saw there have some magic number when you access AMW0_GUID1 (e.g. 0x9610, eax, ebx, ecx) Could you please kindly teach me how can grab those value for AMW0_GUID2? Does there have any useful dump or report log can provide by hardware owner?

Thanks a lot!
Joey Lee

#3 lore raw
Quoted 6 lines · On Monday 09 Jan 2012 18:00:24 joeyli wrote:

I just checked and found I also have no AMW0_GUID2 machines on my hand, now.
I have some questions about AMW0_GUID2:

+ Why we enabled wireless capability in acer-wim if a non-acer machine has
AMW0_GUID2 ?

IIRC, there were some bug reports on non-Acer hardware (I don't think this involved Acer hardware, but this was some time ago...) where the wireless detection wasn't working with this, but if we forced it on, it worked fine.

Quoted 4 lines

+ I saw there have some magic number when you access AMW0_GUID1 (e.g.
0x9610, eax, ebx, ecx) Could you please kindly teach me how can grab those value for AMW0_GUID2? Does there have any useful dump or report log can provide by hardware owner?

Probably not. For AMW0_GUID1, I got the stuff by using the Windows Kernel Debugger remotely to see what my laptop was doing when changing things in Windows - unfortunately that relied on a firewire port on the laptop, which I suspect most people don't have.

The real problem is that I know almost nothing about AMW0_GUID2 - either what it's used for or what it actually does, nor how hardware detection works with it present (if at all).

-Carlos

maintainer
#4 lore raw

於 一,2012-01-09 於 22:15 +0000,Carlos Corbacho 提到:

Quoted 5 lines · On Monday 09 Jan 2012 18:00:24 joeyli wrote:
Quoted 4 lines

I just checked and found I also have no AMW0_GUID2 machines on my hand, now.
I have some questions about AMW0_GUID2:

Quoted 7 lines
Quoted 2 lines

+ Why we enabled wireless capability in acer-wim if a non-acer machine has
AMW0_GUID2 ?

IIRC, there were some bug reports on non-Acer hardware (I don't think this involved Acer hardware, but this was some time ago...) where the wireless detection wasn't working with this, but if we forced it on, it worked fine.

Yes, in acer-wmi supported some non-acer machine by quirk and read EC register. That means we need find out EC register reflect to wifi RF state if we are lucky.

Unfortunately, direct enable wireless capability causes some non-acer machines' wireless rfkill always disabled. e.g. Lenovo E520

https://bugzilla.redhat.com/show_bug.cgi?id=674353

If we don't check the wireless capability, then they need manually add acer-wmi to backlist. On some lenovo machines, ideapad-laptop driver should support by lenovo's ACPI method.

Quoted 10 lines
Quoted 4 lines

+ I saw there have some magic number when you access AMW0_GUID1 (e.g.
0x9610, eax, ebx, ecx) Could you please kindly teach me how can grab those value for AMW0_GUID2? Does there have any useful dump or report log can provide by hardware owner?

Probably not. For AMW0_GUID1, I got the stuff by using the Windows Kernel Debugger remotely to see what my laptop was doing when changing things in Windows - unfortunately that relied on a firewire port on the laptop, which I suspect most people don't have.

Thanks for your teach, but I never used Windows Kernel Debugger, if have good chance, I will try.

Most of the state, bug reporter already removed OEM(Acer/Lenovo...) specific Windows and hard to remote debug the machine.

Quoted 6 lines

The real problem is that I know almost nothing about AMW0_GUID2 - either what it's used for or what it actually does, nor how hardware detection works with it present (if at all).

-Carlos

I also don't have any information about AMW0_GUID2, almost all modern Acer machine already removed AMW0_GUID2.

My humbly request is:
Please kindly accept this patch to acer-wmi, it can leave the wireless rfkill state control by BIOS or other platform driver, and don't need manually add acer-wmi to blacklist.

Thanks a lot!
Joey Lee

#5 lore raw
Quoted 18 lines · joeyli

於 一,2012-01-09 於 22:15 +0000,Carlos Corbacho 提到:

Quoted 5 lines · On Monday 09 Jan 2012 18:00:24 joeyli wrote:
Quoted 4 lines

I just checked and found I also have no AMW0_GUID2 machines on my hand, now.
I have some questions about AMW0_GUID2:

Quoted 7 lines
Quoted 2 lines

+ Why we enabled wireless capability in acer-wim if a non-acer machine has
AMW0_GUID2 ?

IIRC, there were some bug reports on non-Acer hardware (I don't think this involved Acer hardware, but this was some time ago...) where the wireless detection wasn't working with this, but if we forced it on, it worked fine.

Yes, in acer-wmi supported some non-acer machine by quirk and read EC register. That means we need find out EC register reflect to wifi RF state if we are lucky.

Quoted 9 lines

Unfortunately, direct enable wireless capability causes some non-acer machines' wireless rfkill always disabled. e.g. Lenovo E520

https://bugzilla.redhat.com/show_bug.cgi?id=674353

If we don't check the wireless capability, then they need manually add acer-wmi to backlist. On some lenovo machines, ideapad-laptop driver should support by lenovo's ACPI method.

I've got two reports which says after poking the ec register, the phy0 rfkill reports hard blocked by mistake. And few hours ago I get the third report says the similar issue. I will summary the report.

I am thinking about alternative way

Since we have thinkpad_acpi and ideapad_laptop, both of them have rfkill capability. If there is VPC2004/IBM0068/LEN0068 in DSDT, then it will be fine if we do not register rfkill in acer-wmi.

Any thought?

maintainer
#6 lore raw

於 四,2012-01-12 於 00:54 +0800,Ike Panhc 提到:

Quoted 22 lines · joeyli
Quoted 21 lines

於 一,2012-01-09 於 22:15 +0000,Carlos Corbacho 提到:

Quoted 5 lines · On Monday 09 Jan 2012 18:00:24 joeyli wrote:
Quoted 4 lines

I just checked and found I also have no AMW0_GUID2 machines on my hand, now.
I have some questions about AMW0_GUID2:

Quoted 7 lines
Quoted 2 lines

+ Why we enabled wireless capability in acer-wim if a non-acer machine has
AMW0_GUID2 ?

IIRC, there were some bug reports on non-Acer hardware (I don't think this involved Acer hardware, but this was some time ago...) where the wireless detection wasn't working with this, but if we forced it on, it worked fine.

Yes, in acer-wmi supported some non-acer machine by quirk and read EC register. That means we need find out EC register reflect to wifi RF state if we are lucky.

Unfortunately, direct enable wireless capability causes some non-acer machines' wireless rfkill always disabled. e.g. Lenovo E520

Quoted 9 lines
Quoted 6 lines

https://bugzilla.redhat.com/show_bug.cgi?id=674353

If we don't check the wireless capability, then they need manually add acer-wmi to backlist. On some lenovo machines, ideapad-laptop driver should support by lenovo's ACPI method.

I've got two reports which says after poking the ec register, the phy0 rfkill reports hard blocked by mistake. And few hours ago I get the third report says the similar issue. I will summary the report.

Please give more detail information (DSDT, EC register dump...), if poking the ec register can block rfkill, means the AMW0_GUID1 works on this machine, maybe we can try to find out which EC register reflect to wireless.

Quoted 6 lines

I am thinking about alternative way

Since we have thinkpad_acpi and ideapad_laptop, both of them have rfkill capability. If there is VPC2004/IBM0068/LEN0068 in DSDT, then it will be fine if we do not register rfkill in acer-wmi.

Any thought?

Yes, it's possible a solution. If you can make sure lenovo machines have VPC2004/IBM0068/LEN0068 in DSDT, then I will generate a patch to acer-wmi.

Thanks
Joey Lee

#7 lore raw

Hi Joey,

sorry for replying late..

For ideapad s205, I work with bug reporter at

http://launchpad.net/bugs/875659

The bug reporter do not attach the DSDT, but I have a copy of acpidump of s205 at

http://people.canonical.com/~ikepanhc/DSDTs/acpidump-ideapad-s205.dat

and I backport this patch to 3.0 kernel and also cherry-pick
acer-wmi: check wireless capability flag before register

and get the report which says the rfkill:phy0 is hard blocked by mistake

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/875659/comments/33

so that I have another kernel built without touching ec register, just dont set ACER_CAP_WIRELESS and user reports everything looks fine.

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/875659/comments/43

For ideapad s12, I work with bug reporter at

http://launchpad.net/bugs/668234

You can find acpi tables at

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/668234/+attachment/1715424/+files/AcpiTables.txt

With patched kernel, rfkill:phy0 is also hard blocked by mistake and it can be unblocked by toggling the hardware radio switch

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/668234/comments/12

Again, I need to confirm its because we touch the ec register, so I ask them to blacklist acer-wmi. User reports it looks fine, but rfkill:phy0 hard blocked after couple of seconds and no idea why.

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/668234/comments/16

Quoted 55 lines · joeyli

於 四,2012-01-12 於 00:54 +0800,Ike Panhc 提到:

Quoted 22 lines · joeyli
Quoted 21 lines

於 一,2012-01-09 於 22:15 +0000,Carlos Corbacho 提到:

Quoted 5 lines · On Monday 09 Jan 2012 18:00:24 joeyli wrote:
Quoted 4 lines

I just checked and found I also have no AMW0_GUID2 machines on my hand, now.
I have some questions about AMW0_GUID2:

Quoted 7 lines
Quoted 2 lines

+ Why we enabled wireless capability in acer-wim if a non-acer machine has
AMW0_GUID2 ?

IIRC, there were some bug reports on non-Acer hardware (I don't think this involved Acer hardware, but this was some time ago...) where the wireless detection wasn't working with this, but if we forced it on, it worked fine.

Yes, in acer-wmi supported some non-acer machine by quirk and read EC register. That means we need find out EC register reflect to wifi RF state if we are lucky.

Unfortunately, direct enable wireless capability causes some non-acer machines' wireless rfkill always disabled. e.g. Lenovo E520

Quoted 9 lines
Quoted 6 lines

https://bugzilla.redhat.com/show_bug.cgi?id=674353

If we don't check the wireless capability, then they need manually add acer-wmi to backlist. On some lenovo machines, ideapad-laptop driver should support by lenovo's ACPI method.

I've got two reports which says after poking the ec register, the phy0 rfkill reports hard blocked by mistake. And few hours ago I get the third report says the similar issue. I will summary the report.

Please give more detail information (DSDT, EC register dump...), if poking the ec register can block rfkill, means the AMW0_GUID1 works on this machine, maybe we can try to find out which EC register reflect to wireless.

Quoted 6 lines

I am thinking about alternative way

Since we have thinkpad_acpi and ideapad_laptop, both of them have rfkill capability. If there is VPC2004/IBM0068/LEN0068 in DSDT, then it will be fine if we do not register rfkill in acer-wmi.

Any thought?

Yes, it's possible a solution. If you can make sure lenovo machines have VPC2004/IBM0068/LEN0068 in DSDT, then I will generate a patch to acer-wmi.

Thanks
Joey Lee

maintainer
#8 lore raw
In reply to Ike Panhc

Hi Ike

於 四,2012-01-12 於 00:54 +0800,Ike Panhc 提到:

Quoted 22 lines · joeyli
Quoted 21 lines

於 一,2012-01-09 於 22:15 +0000,Carlos Corbacho 提到:

Quoted 5 lines · On Monday 09 Jan 2012 18:00:24 joeyli wrote:
Quoted 4 lines

I just checked and found I also have no AMW0_GUID2 machines on my hand, now.
I have some questions about AMW0_GUID2:

Quoted 7 lines
Quoted 2 lines

+ Why we enabled wireless capability in acer-wim if a non-acer machine has
AMW0_GUID2 ?

IIRC, there were some bug reports on non-Acer hardware (I don't think this involved Acer hardware, but this was some time ago...) where the wireless detection wasn't working with this, but if we forced it on, it worked fine.

Yes, in acer-wmi supported some non-acer machine by quirk and read EC register. That means we need find out EC register reflect to wifi RF state if we are lucky.

Unfortunately, direct enable wireless capability causes some non-acer machines' wireless rfkill always disabled. e.g. Lenovo E520

Quoted 9 lines
Quoted 6 lines

https://bugzilla.redhat.com/show_bug.cgi?id=674353

If we don't check the wireless capability, then they need manually add acer-wmi to backlist. On some lenovo machines, ideapad-laptop driver should support by lenovo's ACPI method.

I've got two reports which says after poking the ec register, the phy0 rfkill reports hard blocked by mistake. And few hours ago I get the third report says the similar issue. I will summary the report.

Do you mean the above 2 reports is use this patch? or actually it's other problem?
Could you please kindly test this patch on issue machines?

Quoted 6 lines

I am thinking about alternative way

Since we have thinkpad_acpi and ideapad_laptop, both of them have rfkill capability. If there is VPC2004/IBM0068/LEN0068 in DSDT, then it will be fine if we do not register rfkill in acer-wmi.

Any thought?

It's also another idea.

Thanks a lot!
Joey Lee

#9 lore raw

Hi Joey,

Quoted 32 lines · joeyli

Hi Ike

於 四,2012-01-12 於 00:54 +0800,Ike Panhc 提到:

Quoted 29 lines · joeyli
Quoted 27 lines

於 一,2012-01-09 於 22:15 +0000,Carlos Corbacho 提到:

Quoted 5 lines · On Monday 09 Jan 2012 18:00:24 joeyli wrote:
Quoted 4 lines

I just checked and found I also have no AMW0_GUID2 machines on my hand, now.
I have some questions about AMW0_GUID2:

Quoted 7 lines
Quoted 2 lines

+ Why we enabled wireless capability in acer-wim if a non-acer machine has
AMW0_GUID2 ?

IIRC, there were some bug reports on non-Acer hardware (I don't think this involved Acer hardware, but this was some time ago...) where the wireless detection wasn't working with this, but if we forced it on, it worked fine.

Yes, in acer-wmi supported some non-acer machine by quirk and read EC register. That means we need find out EC register reflect to wifi RF state if we are lucky.

Unfortunately, direct enable wireless capability causes some non-acer machines' wireless rfkill always disabled. e.g. Lenovo E520

https://bugzilla.redhat.com/show_bug.cgi?id=674353

If we don't check the wireless capability, then they need manually add acer-wmi to backlist. On some lenovo machines, ideapad-laptop driver should support by lenovo's ACPI method.

Quoted 7 lines
Quoted 2 lines

I've got two reports which says after poking the ec register, the phy0 rfkill reports hard blocked by mistake. And few hours ago I get the third report says the similar issue. I will summary the report.

Do you mean the above 2 reports is use this patch? or actually it's other problem?
Could you please kindly test this patch on issue machines?

Yes, I ask them to blacklist patched acer-wmi to confirm the problem.

I am afraid that after we change the value of ec register, ec firmware might do something unexpectedly. Since acer-wmi is loaded on lots of machine with different EC, it might cause unexpected and different regression on each machine.

Quoted 14 lines
Quoted 6 lines

I am thinking about alternative way

Since we have thinkpad_acpi and ideapad_laptop, both of them have rfkill capability. If there is VPC2004/IBM0068/LEN0068 in DSDT, then it will be fine if we do not register rfkill in acer-wmi.

Any thought?

It's also another idea.

Thanks a lot!
Joey Lee

#10 lore raw

PATCH 1/1 acer-wmi: No wifi rfkill on Lenovo machines

In reply to joeyli

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.

---
 drivers/platform/x86/acer-wmi.c |   29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)
drivers/platform/x86/acer-wmi.c +28 -1
index b848277..aaef8f8 100644
@@ -679,6 +679,32 @@ static acpi_status AMW0_find_mailled(void)
 	return AE_OK;
 }
 
+static int AMW0_set_cap_acpi_check_device_found = 0;
+
+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,8 @@ static acpi_status AMW0_set_capabilities(void)
 	 * work.
 	 */
 	if (wmi_has_guid(AMW0_GUID2)) {
-		interface->capability |= ACER_CAP_WIRELESS;
+		if (!AMW0_set_cap_acpi_check_device())
+			interface->capability |= ACER_CAP_WIRELESS;
 		return AE_OK;
 	}
 
Signature · 1 line
1.7.5.4
#11 lore raw

Re: [PATCH] acer-wmi: No wifi rfkill on Lenovo machines

This patch has been tested on ideapad s205

User reports the first time try wireless hard/soft all blocked

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/875659/comments/53

but the second try looks good.

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/875659/comments/55

Quoted 63 lines · Ike Panhc

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.

---
 drivers/platform/x86/acer-wmi.c |   29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)
drivers/platform/x86/acer-wmi.c +28 -1
index b848277..aaef8f8 100644
@@ -679,6 +679,32 @@ static acpi_status AMW0_find_mailled(void)
 	return AE_OK;
 }
 
+static int AMW0_set_cap_acpi_check_device_found = 0;
+
+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,8 @@ static acpi_status AMW0_set_capabilities(void)
 	 * work.
 	 */
 	if (wmi_has_guid(AMW0_GUID2)) {
-		interface->capability |= ACER_CAP_WIRELESS;
+		if (!AMW0_set_cap_acpi_check_device())
+			interface->capability |= ACER_CAP_WIRELESS;
 		return AE_OK;
 	}
 
maintainer
#12 lore raw

Re: [PATCH] acer-wmi: No wifi rfkill on Lenovo machines

Hi Ike,

於 三,2012-01-25 於 10:14 +0800,Ike Panhc 提到:

Quoted 11 lines

This patch has been tested on ideapad s205

User reports the first time try wireless hard/soft all blocked

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/875659/comments/53

but the second try looks good.

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/875659/comments/55

That will be better retest this patch after remove ac power and battery.

Quoted 53 lines · Ike Panhc
Quoted 52 lines

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.

---
 drivers/platform/x86/acer-wmi.c |   29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)
drivers/platform/x86/acer-wmi.c +26 -0
index b848277..aaef8f8 100644
@@ -679,6 +679,32 @@ static acpi_status AMW0_find_mailled(void)
 	return AE_OK;
 }
 
+static int AMW0_set_cap_acpi_check_device_found = 0;
+
+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)
 {
Quoted 8 lines

drivers/platform/x86/acer-wmi.c static acpi_status AMW0_set_capabilities(void) · line 722

Quoted 8 lines
drivers/platform/x86/acer-wmi.c +2 -1
 	struct wmab_args args;
@@ -692,7 +718,8 @@ static acpi_status AMW0_set_capabilities(void)
 	 * work.
 	 */
 	if (wmi_has_guid(AMW0_GUID2)) {
-		interface->capability |= ACER_CAP_WIRELESS;
+		if (!AMW0_set_cap_acpi_check_device())
+			interface->capability |= ACER_CAP_WIRELESS;

I suggest add the following logic (non-test) to pass quirks that were already supported by acer-wmi:

	if ((quirk != &quirk_unknown) || !AMW0_set_cap_acpi_check_device())
		interface->capability |= ACER_CAP_WIRELESS;

That can keep acer-wmi still support Lenovo Ideapad S205 and Lenovo 3000 N200 by quirks. Those quirks works fine before.

Quoted 5 lines

drivers/platform/x86/acer-wmi.c static acpi_status AMW0_find_mailled(void) · line 681

Quoted 3 lines
drivers/platform/x86/acer-wmi.c +0 -0
 		return AE_OK;
 	}
 

Thanks a lot!
Joey Lee

#13 lore raw

PATCH v2 1/1 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.

---
 drivers/platform/x86/acer-wmi.c |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)
drivers/platform/x86/acer-wmi.c +29 -1
index b848277..1e5290b 100644
@@ -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;
 	}
 
Signature · 1 line
1.7.5.4
#14 lore raw

Re: [PATCH v2] acer-wmi: No wifi rfkill on Lenovo machines

Two modification.
* Check quirks also.
* for static variable, no need to set to 0 as initial value.

Quoted 64 lines · Ike Panhc

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.

---
 drivers/platform/x86/acer-wmi.c |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)
drivers/platform/x86/acer-wmi.c +29 -1
index b848277..1e5290b 100644
@@ -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;
 	}
 
maintainer
#15 lore raw

Re: [PATCH v2] acer-wmi: No wifi rfkill on Lenovo machines

In reply to Ike Panhc

Hi Ike,

於 五,2012-02-03 於 16:46 +0800,Ike Panhc 提到:

Quoted 7 lines

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.

Quoted 5 lines

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.

Thanks for your patch, it's good to me after tested.

Tested on Acer TravelMate 4750.

Thanks a lot!
Joey Lee

Quoted 52 lines
---
 drivers/platform/x86/acer-wmi.c |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)
drivers/platform/x86/acer-wmi.c +29 -1
index b848277..1e5290b 100644
@@ -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;
 	}
 
Tested-by Andrey on v2 1/1
#16 lore raw

Re: [PATCH v2] acer-wmi: No wifi rfkill on Lenovo machines

In reply to Ike Panhc

Hi,

Quoted 6 lines · Ike Panhc

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.

[...]

Quoted 4 lines
---
 drivers/platform/x86/acer-wmi.c |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

Thanks! As described at <http://bugs.debian.org/655941>, without this patch, Andrey was not able to use wifi, getting the following message in the kernel log instead:

	iwlagn 0000:03:00.0: RF_KILL bit toggled to enable radio.

rfkill list gave

2: acer-wireless: Wireless LAN
Soft blocked: yes
Hard blocked: no

regardless of the state of the actual radio kill switch. Unloading the acer_wmi was a workaround. With this patch, wifi works without needing to unload acer_wmi, so:

He tested against the 3.2.y tree.

When applying this, please consider cc-ing stable@ so people using point releases can benefit from the fix, too.

Happily,
Jonathan

#17 lore raw

PATCH RESEND 1/1 acer-wmi: No wifi rfkill on Lenovo machines

From: Ike Panhc <[email protected]>
Date: Fri, 3 Feb 2012 16:46:39 +0800

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.

---
Hi Matthew,

Here's a patch that seems to have fallen through the cracks. Symptom is that wifi just doesn't work on these machines until the acer-wmi driver is unloaded. Acked by the acer-wmi maintainer (jlee). The patch doesn't seem to be present in linux-next. Bug was present in 3.1.8, possibly on some older kernels, too.

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

Anything interested people can do to move this forward? Jonathan

 drivers/platform/x86/acer-wmi.c |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)
drivers/platform/x86/acer-wmi.c +29 -1
index b848277171a4..1e5290b5396d 100644
@@ -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;
 	}
 
Signature · 1 line
1.7.9
#18 lore raw

PATCH 1/1 acer-wmi: No wifi rfkill on Lenovo machines

In reply to Ike Panhc

Hi Greg,

Please consider applying 461e74377cfc (acer-wmi: No wifi rfkill on Lenovo machines, 2012-02-03) to the 3.2.y and 3.0.y trees.

Quoted 7 lines · Ike Panhc

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.

Quoted 5 lines

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.

The symptom was that that wifi just doesn't work on these machines until the acer-wmi driver is unloaded. Bug was present in 3.1.8 and Ubuntu's 3.0.0-12, possibly on some older kernels, too.

Andrey (cc-ed) confirmed that applying the patch against 3.2.y gets wifi working again on his Ideapad Z570, so

References:
http://bugs.debian.org/655941
http://launchpad.net/bugs/875659
https://bugzilla.redhat.com/show_bug.cgi?id=674353

Patch left unsnipped for reference.

Thanks,
Jonathan

Quoted 55 lines
---
 drivers/platform/x86/acer-wmi.c |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)
drivers/platform/x86/acer-wmi.c +29 -1
index b848277..1e5290b 100644
@@ -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;
 	}
 
Signature · 1 line
1.7.5.4
#19 lore raw

Re: [PATCH 3.0.y] acer-wmi: No wifi rfkill on Lenovo machines

Quoted 4 lines · Jonathan Nieder

Hi Greg,

Please consider applying 461e74377cfc (acer-wmi: No wifi rfkill on Lenovo machines, 2012-02-03) to the 3.2.y and 3.0.y trees.

Now applied.

greg k-h

#20 lore raw

Re: [PATCH 3.0.y] acer-wmi: No wifi rfkill on Lenovo machines

Quoted 6 lines · Greg KH
Quoted 2 lines · Jonathan Nieder

Please consider applying 461e74377cfc (acer-wmi: No wifi rfkill on Lenovo machines, 2012-02-03) to the 3.2.y and 3.0.y trees.

Now applied.

Thanks! That was fast.

#21 lore raw

Re: [PATCH 3.0.y] acer-wmi: No wifi rfkill on Lenovo machines

Quoted 6 lines · Jonathan Nieder
Quoted 5 lines · Greg KH
Quoted 2 lines · Jonathan Nieder

Please consider applying 461e74377cfc (acer-wmi: No wifi rfkill on Lenovo machines, 2012-02-03) to the 3.2.y and 3.0.y trees.

Quoted 8 lines
Quoted 1 line

Now applied.

Thanks! That was fast.
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Review the commit log of acer-wmi

For 3.2.y, this patch shall work fine.

But for 3.0.y, backport commit 1709adab is necessary or patch has no effect.

I will post the backport patch after.

Joey, can you review and ACK/NAK for this?

maintainer
#22 lore raw

Re: [PATCH 3.0.y] acer-wmi: No wifi rfkill on Lenovo machines

Hi Ike,

於 五,2012-03-16 於 12:03 +0800,Ike Panhc 提到:

Quoted 18 lines · Jonathan Nieder
Quoted 6 lines
Quoted 5 lines · Greg KH
Quoted 2 lines · Jonathan Nieder

Please consider applying 461e74377cfc (acer-wmi: No wifi rfkill on Lenovo machines, 2012-02-03) to the 3.2.y and 3.0.y trees.

Quoted 8 lines
Quoted 1 line

Now applied.

Thanks! That was fast.
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Review the commit log of acer-wmi

Quoted 8 lines

For 3.2.y, this patch shall work fine.

But for 3.0.y, backport commit 1709adab is necessary or patch has no effect.

I will post the backport patch after.

Joey, can you review and ACK/NAK for this?

Yes, should check ACER_CAP_WIRELESS flag before create wifi rfkill interface.

Thanks
Joey Lee

#23 lore raw

Re: [PATCH 3.0.y] acer-wmi: No wifi rfkill on Lenovo machines

Quoted 25 lines · joeyli

Hi Ike,

於 五,2012-03-16 於 12:03 +0800,Ike Panhc 提到:

Quoted 22 lines · Jonathan Nieder
Quoted 6 lines
Quoted 5 lines · Greg KH
Quoted 2 lines · Jonathan Nieder

Please consider applying 461e74377cfc (acer-wmi: No wifi rfkill on Lenovo machines, 2012-02-03) to the 3.2.y and 3.0.y trees.

Quoted 8 lines
Quoted 1 line

Now applied.

Thanks! That was fast.
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Review the commit log of acer-wmi

For 3.2.y, this patch shall work fine.

But for 3.0.y, backport commit 1709adab is necessary or patch has no effect.

Quoted 7 lines
Quoted 4 lines

I will post the backport patch after.

Joey, can you review and ACK/NAK for this?

Yes, should check ACER_CAP_WIRELESS flag before create wifi rfkill interface.

Ok, I've queued up a number of acer-wmi patches for the 3.0-stable tree now, all should be good.

thanks,

greg k-h

maintainer
#24 lore raw

Re: [PATCH 3.0.y] acer-wmi: No wifi rfkill on Lenovo machines

於 五,2012-03-16 於 10:20 -0700,Greg KH 提到:

Quoted 34 lines · joeyli
Quoted 25 lines

Hi Ike,

於 五,2012-03-16 於 12:03 +0800,Ike Panhc 提到:

Quoted 22 lines · Jonathan Nieder
Quoted 6 lines
Quoted 5 lines · Greg KH
Quoted 2 lines · Jonathan Nieder

Please consider applying 461e74377cfc (acer-wmi: No wifi rfkill on Lenovo machines, 2012-02-03) to the 3.2.y and 3.0.y trees.

Quoted 8 lines
Quoted 1 line

Now applied.

Thanks! That was fast.
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Review the commit log of acer-wmi

For 3.2.y, this patch shall work fine.

But for 3.0.y, backport commit 1709adab is necessary or patch has no effect.

Quoted 7 lines
Quoted 4 lines

I will post the backport patch after.

Joey, can you review and ACK/NAK for this?

Yes, should check ACER_CAP_WIRELESS flag before create wifi rfkill interface.

Quoted 7 lines

Ok, I've queued up a number of acer-wmi patches for the 3.0-stable tree now, all should be good.

thanks,

greg k-h

Thanks a lot!
Joey Lee

#25 lore raw

Re: [PATCH 3.0.y] acer-wmi: No wifi rfkill on Lenovo machines

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

19.03.2012 04:08, joeyli пишет:

Quoted 38 lines

於 五,2012-03-16 於 10:20 -0700,Greg KH 提到:

Quoted 37 lines · joeyli
Quoted 25 lines

Hi Ike,

於 五,2012-03-16 於 12:03 +0800,Ike Panhc 提到:

Quoted 22 lines · Jonathan Nieder
Quoted 6 lines
Quoted 5 lines · Greg KH
Quoted 2 lines · Jonathan Nieder

Please consider applying 461e74377cfc (acer-wmi: No wifi rfkill on Lenovo machines, 2012-02-03) to the 3.2.y and 3.0.y trees.

Quoted 8 lines
Quoted 1 line

Now applied.

Thanks! That was fast.
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Review the commit log of acer-wmi

For 3.2.y, this patch shall work fine.

But for 3.0.y, backport commit 1709adab is necessary or patch has no effect.

Quoted 7 lines
Quoted 4 lines

I will post the backport patch after.

Joey, can you review and ACK/NAK for this?

Yes, should check ACER_CAP_WIRELESS flag before create wifi rfkill interface.

Ok, I've queued up a number of acer-wmi patches for the 3.0-stable tree now, all should be good.

Quoted 10 lines
Quoted 4 lines

thanks,

greg k-h

Thanks a lot!
Joey Lee

Please notify me when patches will be present in git. For testing. Thanks!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJPZylEAAoJEFy4/nEE4cHctr8H/31WX6TyfdfdKdft9oxSvCh3 1kYvxMY5rNgPDV7n19Hu280AZt4mLjbDupfGqewiArxEfiPFQqSs/1wUBM7Rl70E eniJ+mTz7v2UuA7j+wdnp0LTR41qkmVd8tlLMjLnj+/UqxJyFo+8dyPFpAF3lTZS jthIMqFJoWv+1/4pvcBFCXeQiQDHMMHFQuqT5qGhsjxuDDCDQ4S2PnYuwcZCPYwY yTlDCUIhePOBekwU0MAmbtcskz7zByek+Q+xS6a6KV2ZJ4H3h1pO+WqGtsqsbkrj Xyx/Ng6B0nYSQhsqMZZC7VyqetgXUMBb2ZL/W17dAOXsXbelmpyAtrszRZlXRV4= =nXjU
-----END PGP SIGNATURE-----

#26 lore raw

Re: [PATCH 3.0.y] acer-wmi: No wifi rfkill on Lenovo machines

Hi Andrey,

Quoted 4 lines · Andrey
Quoted 4 lines

於 五,2012-03-16 於 10:20 -0700,Greg KH 提到:

Quoted 2 lines

Ok, I've queued up a number of acer-wmi patches for the 3.0-stable tree now, all should be good.

[...]

Quoted 2 lines

Please notify me when patches will be present in git. For testing. Thanks!

The patches can be found in the git repository here:

git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git

in the queue-3.0 subdirectory so you are free to test them today. ;-)

When Greg announces the next release of the 3.0.y kernel, they will also be available from the linux-3.0.y branch of

git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

assuming nobody has found problems with the patches by then.

Hope that helps,
Jonathan

maintainer
#27 lore raw
In reply to Ike Panhc

Hi Ike,

Quoted 22 lines · Ike Panhc
Quoted 21 lines · joeyli

於 一,2012-01-09 於 22:15 +0000,Carlos Corbacho 提到:

Quoted 5 lines · On Monday 09 Jan 2012 18:00:24 joeyli wrote:
Quoted 4 lines

I just checked and found I also have no AMW0_GUID2 machines on my hand, now.
I have some questions about AMW0_GUID2:

Quoted 7 lines
Quoted 2 lines

+ Why we enabled wireless capability in acer-wim if a non-acer machine has
AMW0_GUID2 ?

IIRC, there were some bug reports on non-Acer hardware (I don't think this involved Acer hardware, but this was some time ago...) where the wireless detection wasn't working with this, but if we forced it on, it worked fine.

Yes, in acer-wmi supported some non-acer machine by quirk and read EC register. That means we need find out EC register reflect to wifi RF state if we are lucky.

Unfortunately, direct enable wireless capability causes some non-acer machines' wireless rfkill always disabled. e.g. Lenovo E520

Quoted 9 lines
Quoted 6 lines

https://bugzilla.redhat.com/show_bug.cgi?id=674353

If we don't check the wireless capability, then they need manually add acer-wmi to backlist. On some lenovo machines, ideapad-laptop driver should support by lenovo's ACPI method.

I've got two reports which says after poking the ec register, the phy0 rfkill reports hard blocked by mistake. And few hours ago I get the third report says the similar issue. I will summary the report.

Could you please share the above 3 reports and acpidump?

Thanks
Joey Lee

Quoted 6 lines

I am thinking about alternative way

Since we have thinkpad_acpi and ideapad_laptop, both of them have rfkill capability. If there is VPC2004/IBM0068/LEN0068 in DSDT, then it will be fine if we do not register rfkill in acer-wmi.

Any thought?