Bug 16570

Summary: acer-wmi is loaded on a Lenovo Ideapad S12 (Intel/Broadcom version), causes problems with NetworkManager
Product: Drivers Reporter: Ville-Pekka Vainio (vpvainio)
Component: PlatformAssignee: acpi_platform-drivers (acpi_platform-drivers)
Status: RESOLVED CODE_FIX    
Severity: normal CC: alan, carlos, gasas_, jlee, mjg59-kernel, ozan, yanli
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: kernel-PAE-2.6.34.3-37.fc13.i686 Subsystem:
Regression: No Bisected commit-id:
Attachments: 0001-Add-Lenovo-Ideapad-S12-to-acer-blacklist.patch

Description Ville-Pekka Vainio 2010-08-12 09:59:33 UTC
I have a Lenovo Ideapad S12 (the Intel-based version with Broadcom network hardware) and for some reason the acer-wmi module gets loaded. This breaks NetworkManager and I need to click on "Enable Wireless" after login to get the wifi chip to scan for networks.I think this is due to the acer-wmi driver adding a killswitch which is disabled by default or something like that. If I blacklist the acer-wmi driver, wifi networking works as expected.

Here's some diagnostics I was asked to collect on the networkmanager-list:

"rfkill list" with acer-wmi:
0: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no
1: acer-wireless: Wireless LAN
        Soft blocked: yes
        Hard blocked: no
2: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no

"rfkill list" without acer-wmi:
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
3: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no

"cat /sys/class/rfkill/*/state" with acer-wmi:
1
0
1

"cat /sys/class/rfkill/*/state" without acer-wmi:
1
1

"cat /sys/class/rfkill/*/type" with acer-wmi:
bluetooth
wlan
wlan

"cat /sys/class/rfkill/*/type" without acer-wmi:
wlan
bluetooth
Comment 1 Ville-Pekka Vainio 2010-12-25 17:03:26 UTC
Even though I'm a Fedora user myself, I'll just point out that this is also marked as an "IdeaPad S Fix" on the Ubuntu wiki, so it's not just my system with the problems: https://help.ubuntu.com/community/IdeaPadS/Fixes
Comment 2 Ville-Pekka Vainio 2010-12-25 17:42:13 UTC
CCing Carlos Corbacho.
Comment 3 Lee, Chun-Yi 2011-01-03 06:33:53 UTC
Created attachment 42172 [details]
0001-Add-Lenovo-Ideapad-S12-to-acer-blacklist.patch

Add Lenovo Ideapad S12 to blacklist, because ideapad-laptop driver have better support for this machine.
Comment 4 Ozan Caglayan 2011-01-09 20:01:14 UTC
What about DMI blacklisting all Lenovo laptops if acer-wmi will not help at all to any Lenovo? The same issue arises on a Lenovo 3000 v200 (with 2.6.37) too:

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: LENOVO
	Product Name: 0764A11
	Version: LENOVO3000 V200
	Serial Number: L3B9478
	UUID: 9C07AFA0-D1CF-11DC-8130-F0CD5DCFCDD9
	Wake-up Type: Power Switch
	SKU Number: Not Specified
	Family: Not Specified

And also it would be good if stable@kernel.org is CC'ed too.
Comment 5 Ozan Caglayan 2011-01-10 07:11:07 UTC
But if the module is developed for Acer laptops and we don't have any clue/example/report about how it helps Lenovo laptops, I think the logic should be to not enable the module in Lenovo laptops as it disables Wireless on at least 2 separate models. If someone reports that its Lenovo XX YY's special functions works very well with acer-wmi than it should be whitelisted. Not breaking normally working hardware is always better than trying to support some hardware which are not even known to work correctly with the module.

Am I wrong?
Comment 6 Carlos Corbacho 2011-01-10 07:59:09 UTC
Yes.

The module would more properly be called 'wistron-wmi', as it turns out that Lenovo and other manufacturers also use them to produce some of their laptops (though the bulk are Acer).

What would be more useful is for someone to enable debugfs and look at the value of <debugfs path>/acer-wmi/devices - my theory is that this should be actually returning 0 on machines where the WMI interface doesn't work; we can then make acer-wmi check for that in WMID_set_capabilities() and bail as appropriate.

If that's not the case, then we can consider the blacklisting route.
Comment 7 Ozan Caglayan 2011-01-10 08:57:24 UTC
I can provide you that data ASAP.
Comment 8 Ozan Caglayan 2011-01-10 10:38:46 UTC
The user says that there is no /sys/kernel/debug/acer-wmi/devices although debugfs is mounted.

·   if (wmi_has_guid(WMID_GUID2)) {
·   ·   interface->debug.wmid_devices = get_wmid_devices();
·   ·   err = create_debugfs();
·   ·   if (err)
·   ·   ·   goto error_create_debugfs;
·   }

maybe the if() does not evaluate to true on this Lenovo laptop, so no debugfs interface.

BTW this is the dump from the _WDG:

D9F41781-F633-4400-9355-601770BEC510:
        object_id: AA
        notify_id: 41
        reserved: 41
        instance_count: 1
        flags: 0
67C3371D-95A3-4C37-BB61-DD47B491DAAB:
        object_id: AB
        notify_id: 41
        reserved: 42
        instance_count: 1
        flags: 0x2 ACPI_WMI_METHOD 
431F16ED-0C2B-444C-B267-27DEB140CF9C:
        object_id: AC
        notify_id: 41
        reserved: 43
        instance_count: 1
        flags: 0x2 ACPI_WMI_METHOD 
40D1BF71-A82D-4E59-A168-3985E03B2E87:
        object_id: �
        notify_id: B0
        reserved: 00
        instance_count: 1
        flags: 0x8 ACPI_WMI_EVENT 
05901221-D566-11D1-B2F0-00A0C9062910:
        object_id: DD
        notify_id: 44
        reserved: 44
        instance_count: 1
        flags: 0
Comment 9 Ville-Pekka Vainio 2011-01-14 17:47:53 UTC
(In reply to comment #9)
> BTW this is the dump from the _WDG:

This is the same as in the Ideapad S12.
Comment 10 Yan Li 2011-05-02 09:09:44 UTC
(In reply to comment #4)
> What about DMI blacklisting all Lenovo laptops if acer-wmi will not help at
> all
> to any Lenovo? The same issue arises on a Lenovo 3000 v200 (with 2.6.37) too:

Kudo to this idea. Similar problem found on a Lenovo IdeaPad V470.

Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: LENOVO
        Product Name: 20086,4396
        Version: Lenovo V470
        Serial Number: WB01316591WB0101060B
        UUID: 8FDACB40-1DC1-11E0-A658-DA5497647E70
        Wake-up Type: Other
        SKU Number: System SKUNumber
        Family: HuronRiver System
Comment 11 avernos 2011-06-10 17:23:40 UTC
same issue with lenovo V460 on ubuntu, fedora and opensuse

i dont know if activating radio helps, but with acer_wmi i can manage to activate it, but cant make it work.

as it says in the last comment 
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/668234
Comment 12 Lee, Chun-Yi 2012-03-15 09:32:47 UTC
Please try Ike's patch on acer-wmi, it avoid acer-wmi driver generate rfkill on Lenovo machines:

From: Ike Panhc <ike.pan@canonical.com>
Date: Fri, 3 Feb 2012 16:46:39 +0800
Subject: [PATCH] acer-wmi: No wifi rfkill on Lenovo machines

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.
Comment 13 Ville-Pekka Vainio 2012-03-24 16:36:34 UTC
I'm running Fedora's 3.3.0-4.fc16.i686.PAE kernel now and I no longer blacklist acer_wmi. lsmod|grep acer shows acer-wmi is loaded and wifi still works. This is now fixed on my laptop. Thanks!