From 20cc5e66c7bb81340256583025453c3804a6ea70 Mon Sep 17 00:00:00 2001 From: Nicola Corna Date: Sat, 11 Feb 2017 14:52:24 +0100 Subject: [PATCH] UPSTREAM: ec/lenovo/h8: Fix mute LEDs thinkpad_acpi expects a SSMS method to turn on/off the mute LED and a MMTS method to turn on/off the microphone mute LED. With these methods implemented the driver can correctly sync the LEDs with the corresponding statuses. There seems to be two different bits to mute the audio in the Lenovo H8 EC: * AMUT, used internally (for example to disable the audio before entering S3). * ALMT, controllable by the OS, which also toggles the mute LED (if present). Tested on a X220T and on a X201. BUG=none BRANCH=none TEST=none Change-Id: I6a33511266f67aa2337b83673ea7a990f33df6a9 Signed-off-by: Patrick Georgi Original-Commit-Id: 068edc1c52cb1e5b6376ba7f296ef8797a24cd5f Original-Change-Id: I578f95f9619a53fd35f8a8bfe5564aeb6c789212 Original-Signed-off-by: Nicola Corna Original-Reviewed-on: https://review.coreboot.org/18329 Original-Reviewed-by: Alexander Couzens Original-Tested-by: build bot (Jenkins) Reviewed-on: https://chromium-review.googlesource.com/449819 --- src/ec/lenovo/h8/acpi/ec.asl | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/ec/lenovo/h8/acpi/ec.asl b/src/ec/lenovo/h8/acpi/ec.asl index 497dde4df7..b8350ad680 100644 --- a/src/ec/lenovo/h8/acpi/ec.asl +++ b/src/ec/lenovo/h8/acpi/ec.asl @@ -39,8 +39,11 @@ Device(EC) DKR2, 1, /* Dock register 2 */ Offset (0x2a), EVNT, 8, /* write will trigger EC event */ + Offset (0x30), + , 6, + ALMT, 1, /* Audio Mute + LED */ Offset (0x3a), - AMUT, 1, /* Audio Mute */ + AMUT, 1, /* Audio Mute (internal use) */ , 3, BTEB, 1, WLEB, 1, @@ -362,6 +365,23 @@ Device(EC) { Return (TBSW << 3) } + /* Mute audio */ + Method (SSMS, 1, NotSerialized) + { + Store(Arg0, ALMT) + } + /* Control mute microphone LED */ + Method (MMTS, 1, NotSerialized) + { + If (Arg0) + { + TLED(0x8E) + } + Else + { + TLED(0x0E) + } + } /* Version */ Method (MHKV, 0, NotSerialized) {