From 3f0de3d3ea57b6ab19d18ef490462d89aaf8aa9d Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Tue, 18 Oct 2022 17:53:08 -0500 Subject: [PATCH] ec/google/chromeec: move TBMC ACPI device under CREC Tablet motion control is a function of the EC, and under Windows, the TBMC device needs to be initialized after CREC, or driver init will fail. The only way to ensure this happens is for TBMC to be a child device under CREC. TEST=build/boot Win11, Linux on google/eve, verify tablet mode drivers loaded and orientation switching functional under both OSes. Change-Id: I5e9eab9ae277b5a04dc2666960a727e5680bf6f4 Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/76792 Reviewed-by: CoolStar Reviewed-by: Caveh Jalali Reviewed-by: Felix Held Tested-by: build bot (Jenkins) Reviewed-by: Eric Lai --- src/ec/google/chromeec/acpi/cros_ec.asl | 5 +++++ src/ec/google/chromeec/acpi/ec.asl | 6 +----- src/ec/google/chromeec/acpi/tbmc.asl | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/ec/google/chromeec/acpi/cros_ec.asl b/src/ec/google/chromeec/acpi/cros_ec.asl index adf8d90d8c..b46c18741a 100644 --- a/src/ec/google/chromeec/acpi/cros_ec.asl +++ b/src/ec/google/chromeec/acpi/cros_ec.asl @@ -51,6 +51,11 @@ Device (CREC) #ifdef EC_ENABLE_PD_MCU_DEVICE #include "pd.asl" #endif + +#ifdef EC_ENABLE_TBMC_DEVICE + #include "tbmc.asl" +#endif + Method(_STA, 0) { Return (0xF) diff --git a/src/ec/google/chromeec/acpi/ec.asl b/src/ec/google/chromeec/acpi/ec.asl index 3d5961aa1b..d6d33b2a08 100644 --- a/src/ec/google/chromeec/acpi/ec.asl +++ b/src/ec/google/chromeec/acpi/ec.asl @@ -457,7 +457,7 @@ Device (EC0) \_SB.DPTF.TPET() #endif #ifdef EC_ENABLE_TBMC_DEVICE - Notify (TBMC, 0x80) + Notify (^CREC.TBMC, 0x80) #endif #if CONFIG(SOC_AMD_COMMON_BLOCK_ACPI_DPTC) If (CondRefOf (\_SB.DPTC)) { @@ -660,8 +660,4 @@ Device (EC0) #ifdef EC_ENABLE_KEYBOARD_BACKLIGHT #include "keyboard_backlight.asl" #endif - -#ifdef EC_ENABLE_TBMC_DEVICE - #include "tbmc.asl" -#endif } diff --git a/src/ec/google/chromeec/acpi/tbmc.asl b/src/ec/google/chromeec/acpi/tbmc.asl index 3ecf78ef5b..efc42570df 100644 --- a/src/ec/google/chromeec/acpi/tbmc.asl +++ b/src/ec/google/chromeec/acpi/tbmc.asl @@ -7,7 +7,7 @@ Device (TBMC) Name (_DDN, "Tablet Motion Control") Method (TBMC) { - If (^^RCTM == 1) { + If (RCTM == 1) { Return (0x1) } Else { Return (0x0) @@ -15,7 +15,7 @@ Device (TBMC) } Method(_STA, 0) { - If (^^MTNS == 1) { + If (MTNS == 1) { Return (0xF) } Else { Return (0x0)