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,20 +40,36 @@ Scope(\_TZ)
/* Thermal sampling period for passive cooling: 10 seconds */
Name (_TSP, 100)
Method(_CRT, 0, NotSerialized) {
Store (\TCRT, Local0)
if (LGreater(Local0, Zero)) {
Return (C2K(Local0))
}
Return (C2K(127))
/* 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(_PSV, 0, NotSerialized) {
Method (_CRT, 0, NotSerialized) {
Store (\TCRT, Local0)
if (LGreater (Local0, 0)) {
Return (C2K (Local0))
}
Return (C2K (127))
}
Method (_PSV, 0, NotSerialized) {
Store (\TPSV, Local0)
if (LGreater(Local0, Zero)) {
if (LGreater (Local0, 0)) {
Return (C2K(Local0))
}
Return (C2K(95))
Return (C2K (95))
}
Method(_TMP) {
@ -76,12 +92,22 @@ Scope(\_TZ)
/* Thermal sampling period for passive cooling: 10 seconds */
Name (_TSP, 100)
Method(_CRT, 0, NotSerialized) {
Return (C2K(99))
/* Coefficients for passive cooling */
Name (_TC1, 0x02)
Name (_TC2, 0x05)
/* Processors used for passive cooling */
Method (_PSL, 0, Serialized)
{
Return (\PPKG ())
}
Method(_PSV, 0, NotSerialized) {
Return (C2K(94))
Method (_CRT, 0, NotSerialized) {
Return (C2K (99))
}
Method (_PSV, 0, NotSerialized) {
Return (C2K (94))
}
Method(_TMP) {