ec/lenovo/h8/acpi/thermal: Add support for passive cooling

The ACPI spec requires _TSP, _TC1, _TC2 and _PSL for passive cooling.
_TSP already has been added in a previous commit.
Copy the coefficients used on google devices to activate the feature.

Tested on Lenovo T430:
 The CPU is throttled once the passive threshold has been reached.
Tested on Lenovo T500:
 The CPU is throttled once the passive threshold has been reached.

Change-Id: I922923a9029de77158988ac254bab4aad9536935
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/21223
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Vasya Boytsov <vasiliy.boytsov@phystech.edu>
Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
Patrick Rudolph 2017-08-27 16:11:55 +02:00
parent 8b59b31514
commit 3ab13a8691
1 changed files with 39 additions and 13 deletions

View File

@ -40,9 +40,25 @@ Scope(\_TZ)
/* Thermal sampling period for passive cooling: 10 seconds */ /* Thermal sampling period for passive cooling: 10 seconds */
Name (_TSP, 100) Name (_TSP, 100)
/* Coefficients for passive cooling */
Name (_TC1, 0x02)
Name (_TC2, 0x05)
#if !IS_ENABLED(CONFIG_CPU_INTEL_MODEL_206AX) && \
!IS_ENABLED(CONFIG_CPU_INTEL_MODEL_2065X) && \
!IS_ENABLED(CONFIG_CPU_INTEL_MODEL_306AX)
/* Generated by acpigen */
External (\PPKG, MethodObj)
#endif
/* Processors used for passive cooling */
Method (_PSL, 0, Serialized)
{
Return (\PPKG ())
}
Method (_CRT, 0, NotSerialized) { Method (_CRT, 0, NotSerialized) {
Store (\TCRT, Local0) Store (\TCRT, Local0)
if (LGreater(Local0, Zero)) { if (LGreater (Local0, 0)) {
Return (C2K (Local0)) Return (C2K (Local0))
} }
Return (C2K (127)) Return (C2K (127))
@ -50,7 +66,7 @@ Scope(\_TZ)
Method (_PSV, 0, NotSerialized) { Method (_PSV, 0, NotSerialized) {
Store (\TPSV, Local0) Store (\TPSV, Local0)
if (LGreater(Local0, Zero)) { if (LGreater (Local0, 0)) {
Return (C2K(Local0)) Return (C2K(Local0))
} }
Return (C2K (95)) Return (C2K (95))
@ -76,6 +92,16 @@ Scope(\_TZ)
/* Thermal sampling period for passive cooling: 10 seconds */ /* Thermal sampling period for passive cooling: 10 seconds */
Name (_TSP, 100) Name (_TSP, 100)
/* Coefficients for passive cooling */
Name (_TC1, 0x02)
Name (_TC2, 0x05)
/* Processors used for passive cooling */
Method (_PSL, 0, Serialized)
{
Return (\PPKG ())
}
Method (_CRT, 0, NotSerialized) { Method (_CRT, 0, NotSerialized) {
Return (C2K (99)) Return (C2K (99))
} }