diff options
author | Luke D. Jones <luke@ljones.dev> | 2023-08-30 06:22:37 +0300 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2023-09-12 11:18:07 +0300 |
commit | 2c97d3e55b70edf33b6e7f211bab8a748a0a2bcc (patch) | |
tree | 8fb7893bfbaa9608cbf854fae9752490548842cb /drivers/platform/x86/asus-wmi.h | |
parent | eab541aac7f49d2f6e21e486af0bd3048cebb3dd (diff) | |
download | linux-2c97d3e55b70edf33b6e7f211bab8a748a0a2bcc.tar.xz |
platform/x86: asus-wmi: add support for ASUS screenpad
Add support for the WMI methods used to turn off and adjust the
brightness of the secondary "screenpad" device found on some high-end
ASUS laptops like the GX650P series and others.
There are some small quirks with this device when considering only the
raw WMI methods:
1. The Off method can only switch the device off
2. Changing the brightness turns the device back on
3. To turn the device back on the brightness must be > 1
4. When the device is off the brightness can't be changed (so it is
stored by the driver if device is off).
5. Booting with a value of 0 brightness (retained by bios) means the bios
will set a value of >0 <15
6. When the device is off it is "unplugged"
asus_wmi sets the minimum brightness as 20 in general use, and 60 for
booting with values <= min.
The ACPI methods are used in a new backlight device named asus_screenpad.
Signed-off-by: Luke D. Jones <luke@ljones.dev>
Link: https://lore.kernel.org/r/20230830032237.42987-2-luke@ljones.dev
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'drivers/platform/x86/asus-wmi.h')
-rw-r--r-- | drivers/platform/x86/asus-wmi.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/x86/asus-wmi.h index a478ebfd34df..5fbdd0eafa02 100644 --- a/drivers/platform/x86/asus-wmi.h +++ b/drivers/platform/x86/asus-wmi.h @@ -57,6 +57,7 @@ struct quirk_entry { struct asus_wmi_driver { int brightness; int panel_power; + int screenpad_brightness; int wlan_ctrl_by_user; const char *name; |