Patrick Rudolph has uploaded this change for review. ( https://review.coreboot.org/21223
Change subject: ec/lenovo/h8/acpi/thermal: Add coefficients for passive cooling ......................................................................
ec/lenovo/h8/acpi/thermal: Add coefficients for passive cooling
The GNU/Linux kernel 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 and add _PSL for SandyBridge and IvyBridge based Thinkpads.
On older Thinkpads the PPKG method needs to be implemented first.
Tested on Lenovo T430: The CPU is throttled once the passive threshold has been reached.
Change-Id: I922923a9029de77158988ac254bab4aad9536935 Signed-off-by: Patrick Rudolph siro@das-labor.org --- M src/ec/lenovo/h8/acpi/thermal.asl 1 file changed, 28 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/23/21223/1
diff --git a/src/ec/lenovo/h8/acpi/thermal.asl b/src/ec/lenovo/h8/acpi/thermal.asl index 84e23f9..a40043c 100644 --- a/src/ec/lenovo/h8/acpi/thermal.asl +++ b/src/ec/lenovo/h8/acpi/thermal.asl @@ -40,6 +40,20 @@ /* Thermal sampling period for passive cooling: 10 seconds */ Name (_TSP, 100)
+ /* Coefficients for passive cooling */ + Name (_TC1, 0x02) + Name (_TC2, 0x05) + + /* FIXME: Add support for other CPUs as well */ +#if IS_ENABLED(CONFIG_CPU_INTEL_MODEL_206AX) || \ + IS_ENABLED(CONFIG_CPU_INTEL_MODEL_306AX) + /* Processors used for passive cooling */ + Method (_PSL, 0, Serialized) + { + Return (\PPKG ()) + } +#endif + Method(_CRT, 0, NotSerialized) { Store (\TCRT, Local0) if (LGreater(Local0, Zero)) { @@ -76,6 +90,20 @@ /* Thermal sampling period for passive cooling: 10 seconds */ Name (_TSP, 100)
+ /* Coefficients for passive cooling */ + Name (_TC1, 0x02) + Name (_TC2, 0x05) + + /* FIXME: Add support for other CPUs as well */ +#if IS_ENABLED(CONFIG_CPU_INTEL_MODEL_206AX) || \ + IS_ENABLED(CONFIG_CPU_INTEL_MODEL_306AX) + /* Processors used for passive cooling */ + Method (_PSL, 0, Serialized) + { + Return (\PPKG ()) + } +#endif + Method(_CRT, 0, NotSerialized) { Return (C2K(99)) }