mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-23 05:56:14 -04:00
platform/x86: asus-wmi: Improve DSTS WMI method ID detection
The DSTS method detection mistakenly selects DCTS instead of DSTS if
nothing is returned when the method ID is not defined in WMNB. As a result,
the control of keyboard backlight is not functional for TUF Gaming series
laptops. Implement detection based on _UID of the WMI device instead.
There is evidence that DCTS is handled by ACPI WMI devices that have _UID
ASUSWMI, whereas none of the devices without ASUSWMI respond to DCTS and
DSTS is used instead [1].
DSDT examples:
FX505GM (_UID ATK):
Method (WMNB, 3, Serialized)
{ ...
If ((Local0 == 0x53545344))
{
...
Return (Zero)
}
...
// No return
}
K54C (_UID ATK):
Method (WMNB, 3, Serialized)
{ ...
If ((Local0 == 0x53545344))
{
...
Return (0x02)
}
...
Return (0xFFFFFFFE)
}
[1] Link: https://lkml.org/lkml/2019/4/11/322
Signed-off-by: Yurii Pavlovskyi <yurii.pavlovskyi@gmail.com>
Suggested-by: Daniel Drake <drake@endlessm.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This commit is contained in:
committed by
Andy Shevchenko
parent
e7488e58c7
commit
e0668f2888
@@ -18,8 +18,8 @@
|
||||
#define ASUS_WMI_METHODID_GDSP 0x50534447 /* Get DiSPlay output */
|
||||
#define ASUS_WMI_METHODID_DEVP 0x50564544 /* DEVice Policy */
|
||||
#define ASUS_WMI_METHODID_OSVR 0x5256534F /* OS VeRsion */
|
||||
#define ASUS_WMI_METHODID_DSTS 0x53544344 /* Device STatuS */
|
||||
#define ASUS_WMI_METHODID_DSTS2 0x53545344 /* Device STatuS #2*/
|
||||
#define ASUS_WMI_METHODID_DCTS 0x53544344 /* Device status (DCTS) */
|
||||
#define ASUS_WMI_METHODID_DSTS 0x53545344 /* Device status (DSTS) */
|
||||
#define ASUS_WMI_METHODID_BSTS 0x53545342 /* Bios STatuS ? */
|
||||
#define ASUS_WMI_METHODID_DEVS 0x53564544 /* DEVice Set */
|
||||
#define ASUS_WMI_METHODID_CFVS 0x53564643 /* CPU Frequency Volt Set */
|
||||
|
||||
Reference in New Issue
Block a user