summaryrefslogtreecommitdiff
path: root/src/ec/lenovo
diff options
context:
space:
mode:
authorVladimir Serbinenko <phcoder@gmail.com>2013-06-07 01:34:06 +0200
committerRonald G. Minnich <rminnich@gmail.com>2013-06-12 05:29:51 +0200
commit26419285bf6643776d5ad6534db7d0422758efb2 (patch)
treeb854e11a926e555a4ade85950846b8cdea0ce56b /src/ec/lenovo
parentfe50d0bcfe96210413d9c2372d3daa779892b520 (diff)
Avoid tripping overheat alarm on X201 before ME boots
Until ME boots (which takes seconds on X201) the reported temperature is 128 °C which triggers Linux overheat alarm which shuts down. Pretend temperature is 40°C until ME boots. Change-Id: Ia49fa03c6eb27f539a23711f2c8ebfde72b1dc18 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-on: http://review.coreboot.org/3404 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/ec/lenovo')
-rw-r--r--src/ec/lenovo/h8/acpi/thermal.asl11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ec/lenovo/h8/acpi/thermal.asl b/src/ec/lenovo/h8/acpi/thermal.asl
index 35b6f145b5..83d66c6592 100644
--- a/src/ec/lenovo/h8/acpi/thermal.asl
+++ b/src/ec/lenovo/h8/acpi/thermal.asl
@@ -1,5 +1,9 @@
Scope(\_TZ)
{
+#if defined (CONFIG_BOARD_LENOVO_X201) && CONFIG_BOARD_LENOVO_X201
+ Name (MEBT, 0)
+#endif
+
Method(C2K, 1, NotSerialized)
{
Multiply(Arg0, 10, Local0)
@@ -20,6 +24,13 @@ Scope(\_TZ)
Return (C2K(127))
}
Method(_TMP) {
+#if defined (CONFIG_BOARD_LENOVO_X201) && CONFIG_BOARD_LENOVO_X201
+ /* Avoid tripping alarm if ME isn't booted at all yet */
+ If (LAnd (LNot (MEBT), LEqual (\_SB.PCI0.LPCB.EC.TMP0, 128))) {
+ Return (C2K(40))
+ }
+ Store (1, MEBT)
+#endif
Return (C2K(\_SB.PCI0.LPCB.EC.TMP0))
}
}