summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ec/google/chromeec/acpi/ec.asl2
-rw-r--r--src/ec/google/chromeec/acpi/keyboard_backlight.asl14
2 files changed, 16 insertions, 0 deletions
diff --git a/src/ec/google/chromeec/acpi/ec.asl b/src/ec/google/chromeec/acpi/ec.asl
index a5324920e6..422abe1881 100644
--- a/src/ec/google/chromeec/acpi/ec.asl
+++ b/src/ec/google/chromeec/acpi/ec.asl
@@ -54,6 +54,8 @@ Device (EC0)
PATC, 8, // Programmable Auxiliary Trip Commit
CHGL, 8, // Charger Current Limit
TBMD, 1, // Tablet mode
+ Offset (0x0a),
+ KBLE, 1, // Keyboard Backlight exists
}
#if IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC_ACPI_MEMMAP)
diff --git a/src/ec/google/chromeec/acpi/keyboard_backlight.asl b/src/ec/google/chromeec/acpi/keyboard_backlight.asl
index 75a8df3cca..d76bed87ea 100644
--- a/src/ec/google/chromeec/acpi/keyboard_backlight.asl
+++ b/src/ec/google/chromeec/acpi/keyboard_backlight.asl
@@ -23,6 +23,20 @@ Scope (\_SB)
Name (_HID, "GOOG0002")
Name (_UID, 1)
+ /* Ask EC if we even have a backlight
+ * Return 0xf (present, enabled, show in UI, functioning) or 0
+ *
+ * With older EC codebases that don't support the Device
+ * Features bitfield, this reports the keyboard backlight as
+ * enabled since reads to undefined addresses in EC address
+ * space return 0xff and so KBLE will be 1.
+ */
+ Method (_STA, 0, NotSerialized)
+ {
+ Multiply (0xf, \_SB.PCI0.LPCB.EC0.KBLE, Local0)
+ Return (Local0)
+ }
+
/* Read current backlight value */
Method (KBQC, 0, NotSerialized)
{