ec/starlabs: Store the correct value for TPLE when suspending

The current code will read the raw value from the EC, which doesn't
match the respective setting in CMOS.

Switch argument will store the correct value.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I921be8aea55b95f1ba233d2640d9bae80f8c3703
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62604
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Sean Rhodes 2022-03-05 10:22:39 +00:00 committed by Felix Held
parent 56a6e0eb7e
commit 700b5155ac
1 changed files with 19 additions and 2 deletions

View File

@ -5,8 +5,25 @@ Method (RPTS, 1, Serialized)
If ((Arg0 == 0x04) || (Arg0 == 0x05))
{
/* Store current EC settings in CMOS */
\_SB.PCI0.LPCB.TPLC =
\_SB.PCI0.LPCB.EC.ECRD (RefOf (\_SB.PCI0.LPCB.EC.TPLE))
Switch (ToInteger (\_SB.PCI0.LPCB.EC.ECRD (RefOf (\_SB.PCI0.LPCB.EC.TPLE))))
{
// 0x00 == Enabled == 0x00
// 0x11 == Re-enabled == 0x00
// 0x22 == Disabled == 0x01
Case (0x00)
{
\_SB.PCI0.LPCB.TPLC = 0x00
}
Case (0x11)
{
\_SB.PCI0.LPCB.TPLC = 0x00
}
Case (0x22)
{
\_SB.PCI0.LPCB.TPLC = 0x01
}
}
\_SB.PCI0.LPCB.FLKC =
\_SB.PCI0.LPCB.EC.ECRD (RefOf (\_SB.PCI0.LPCB.EC.FLKE))
\_SB.PCI0.LPCB.KLSC =