• João Paulo Rechi Vita's avatar
    platform/x86: asus-wmi: Detect quirk_no_rfkill from the DSDT · 71050ae7
    João Paulo Rechi Vita authored
    Some Asus laptops that have an airplane-mode indicator LED, also have
    the WMI WLAN user bit set, and the following bits in their DSDT:
    
        Scope (_SB)
        {
          (...)
          Device (ATKD)
          {
            (...)
            Method (WMNB, 3, Serialized)
            {
              (...)
              If (LEqual (IIA0, 0x00010002))
              {
                OWGD (IIA1)
                Return (One)
              }
            }
          }
        }
    
    So when asus-wmi uses ASUS_WMI_DEVID_WLAN_LED (0x00010002) to store the
    wlan state, it drives the airplane-mode indicator LED (through the call
    to OWGD) in an inverted fashion: the LED is ON when airplane mode is OFF
    (since wlan is ON), and vice-versa.
    
    This commit skips registering RFKill switches at all for these laptops,
    to allow the asus-wireless driver to drive the airplane mode LED
    correctly through the ASHS ACPI device. Relying on the presence of ASHS
    and ASUS_WMI_DSTS_USER_BIT avoids adding DMI-based quirks for at least
    21 different laptops.
    Signed-off-by: default avatarJoão Paulo Rechi Vita <jprvita@endlessm.com>
    Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    71050ae7
asus-wmi.c 56.8 KB