asus-wmi: control wlan-led only if wapf == 4
authorAceLan Kao <acelan.kao@canonical.com>
Thu, 30 May 2013 02:31:50 +0000 (10:31 +0800)
committerMatthew Garrett <matthew.garrett@nebula.com>
Wed, 10 Jul 2013 19:42:47 +0000 (15:42 -0400)
Controlling the wlan led seems to have some side effects to the machines
with wapf value is not equal to 4. It will make the keyboard backlight
out of order.
So, the patch will enable the wlan led function only if the wapf == 4.

Bug: https://bugzilla.kernel.org/show_bug.cgi?id=46791

Reported-by: Mirto Silvio Busico <m.busico@ieee.org>
Tested-by: Karol Herbst <karolherbst@me.com>
Tested-by: drunkenbatman <drunkenbatman@gmail.com>
Signed-off-by: AceLan Kao <acelan.kao@canonical.com>
Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
drivers/platform/x86/asus-wmi.c

index 0e58d748d7f61080b07e8e49973ffee42661c9c9..19c313b056c334c771e678b05146ee7676e7edac 100644 (file)
@@ -558,7 +558,7 @@ static int asus_wmi_led_init(struct asus_wmi *asus)
                        goto error;
        }
 
-       if (wlan_led_presence(asus)) {
+       if (wlan_led_presence(asus) && (asus->driver->quirks->wapf == 4)) {
                INIT_WORK(&asus->wlan_led_work, wlan_led_update);
 
                asus->wlan_led.name = "asus::wlan";
@@ -886,7 +886,8 @@ static int asus_new_rfkill(struct asus_wmi *asus,
        if (!*rfkill)
                return -EINVAL;
 
-       if (dev_id == ASUS_WMI_DEVID_WLAN)
+       if ((dev_id == ASUS_WMI_DEVID_WLAN) &&
+                       (asus->driver->quirks->wapf == 4))
                rfkill_set_led_trigger_name(*rfkill, "asus-wlan");
 
        rfkill_init_sw_state(*rfkill, !result);