]> git.baikalelectronics.ru Git - kernel.git/commit
platform/x86: asus-wmi: try to set als by default
authorOleksij Rempel <linux@rempel-privat.de>
Fri, 28 Apr 2017 14:19:49 +0000 (16:19 +0200)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 28 Apr 2017 18:52:24 +0000 (21:52 +0300)
commit9f9c380ab7eb8ad09034250a5b352c605fbb8160
tree00ec5f244ee853f85c8dd5ebfea974b7e9b1f980
parent7e405a65dae8a5289663d55b04d40ad1c446c414
platform/x86: asus-wmi: try to set als by default

some laptops, for example ASUS UX330UAK, have brocken als_get function
but working als_set funktion. In this case, ALS will stay turned off.

             Method (WMNB, 3, Serialized)
            {
    ...
               If (Local0 == 0x53545344)
                {
...
                    If (IIA0 == 0x00050001)
                    {
                        If (!ALSP)
                        {
                            Return (0x02)
                        }

                        Local0 = (GALS & 0x10)    <<<---- bug,
                                                    should be: (GALS () & 0x10)
                        If (Local0)
                        {
                            Return (0x00050001)
                        }
                        Else
                        {
                            Return (0x00050000)
                        }
                    }

             .....
                If (Local0 == 0x53564544)
                {
...
                    If (IIA0 == 0x00050001)
                    {
                        Return (ALSC (IIA1))
                    }

                  ......
                    Method (GALS, 0, NotSerialized)
                    {
                        Local0 = Zero
                        Local0 |= 0x20
                        If (ALAE)
                        {
                            Local0 |= 0x10
                        }

                        Local1 = 0x0A
                        Local1 <<= 0x08
                        Local0 |= Local1
                        Return (Local0)
                    }

Since it works without problems on Windows I assume ASUS WMI driver for Win
never trying to get ALS state, and instead it is setting it by default to ON.

This patch will do the same. Turn ALS on by default.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/asus-nb-wmi.c
drivers/platform/x86/asus-wmi.c
drivers/platform/x86/asus-wmi.h