soc/intel/common/dptf: Add support for mode-aware DPTF

This change ports some previous work for Skylake:

cb58683ef5 soc/intel/skylake: Add support for mode-aware DPTF

...to common DPTF code so that we can support mode-aware DPTF for other
Intel platforms.

BUG=b:138702459
BRANCH=none
TEST=Manually test on hatch:
(1)Add DPTF_TSR0_TABLET_PASSIVE and DPTF_TSR1_TABLET_PASSIVE
to hatch baseboard dptf.asl
(2)Flash custom EC FW code which updates DPTF profile number when
entering/exiting tablet mode
(3)On DUT, see /sys/class/thermal/thermal_zone2/trip_point_{1,2}_temp
updated when device mode is switched (tablet/clamshell)

Signed-off-by: Philip Chen <philipchen@google.com>
Change-Id: I5e7b97d23b8567c96a7d60f7a434e98dd9c69544
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34785
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Philip Chen 2019-08-07 18:51:55 -07:00 committed by Furquan Shaikh
parent aa3c0a5fad
commit 4055cd8b03
1 changed files with 75 additions and 8 deletions

View File

@ -59,7 +59,50 @@ Method (TINI)
#endif
}
/* Thermal Trip Points Change Event Handler */
Method (TPET)
{
#ifdef DPTF_TSR0_SENSOR_ID
Notify (^TSR0, 0x81)
#endif
#ifdef DPTF_TSR1_SENSOR_ID
Notify (^TSR1, 0x81)
#endif
#ifdef DPTF_TSR2_SENSOR_ID
Notify (^TSR2, 0x81)
#endif
#ifdef DPTF_TSR3_SENSOR_ID
Notify (^TSR3, 0x81)
#endif
}
/*
* Method to return trip temperature value depending upon the device mode.
* Arg0 --> Value to return when device is in tablet mode
* Arg1 --> Value to return when device is not in tablet mode.
*/
Method (DTRP, 2, Serialized)
{
#ifdef EC_ENABLE_MULTIPLE_DPTF_PROFILES
If (LEqual (\_SB.PCI0.LPCB.EC0.RCDP, One)) {
Return (CTOK (Arg0))
} Else {
#endif
Return (CTOK (Arg1))
#ifdef EC_ENABLE_MULTIPLE_DPTF_PROFILES
}
#endif
}
#ifdef DPTF_TSR0_SENSOR_ID
#ifndef DPTF_TSR0_TABLET_PASSIVE
#define DPTF_TSR0_TABLET_PASSIVE DPTF_TSR0_PASSIVE
#endif
#ifndef DPTF_TSR0_TABLET_CRITICAL
#define DPTF_TSR0_TABLET_CRITICAL DPTF_TSR0_CRITICAL
#endif
Device (TSR0)
{
Name (_HID, EISAID ("INT3403"))
@ -85,12 +128,12 @@ Device (TSR0)
Method (_PSV)
{
Return (CTOK (DPTF_TSR0_PASSIVE))
Return (DTRP (DPTF_TSR0_TABLET_PASSIVE, DPTF_TSR0_PASSIVE))
}
Method (_CRT)
{
Return (CTOK (DPTF_TSR0_CRITICAL))
Return (DTRP (DPTF_TSR0_TABLET_CRITICAL, DPTF_TSR0_CRITICAL))
}
Name (PATC, 2)
@ -116,6 +159,14 @@ Device (TSR0)
#endif
#ifdef DPTF_TSR1_SENSOR_ID
#ifndef DPTF_TSR1_TABLET_PASSIVE
#define DPTF_TSR1_TABLET_PASSIVE DPTF_TSR1_PASSIVE
#endif
#ifndef DPTF_TSR1_TABLET_CRITICAL
#define DPTF_TSR1_TABLET_CRITICAL DPTF_TSR1_CRITICAL
#endif
Device (TSR1)
{
Name (_HID, EISAID ("INT3403"))
@ -141,12 +192,12 @@ Device (TSR1)
Method (_PSV)
{
Return (CTOK (DPTF_TSR1_PASSIVE))
Return (DTRP (DPTF_TSR1_TABLET_PASSIVE, DPTF_TSR1_PASSIVE))
}
Method (_CRT)
{
Return (CTOK (DPTF_TSR1_CRITICAL))
Return (DTRP (DPTF_TSR1_TABLET_CRITICAL, DPTF_TSR1_CRITICAL))
}
Name (PATC, 2)
@ -172,6 +223,14 @@ Device (TSR1)
#endif
#ifdef DPTF_TSR2_SENSOR_ID
#ifndef DPTF_TSR2_TABLET_PASSIVE
#define DPTF_TSR2_TABLET_PASSIVE DPTF_TSR2_PASSIVE
#endif
#ifndef DPTF_TSR2_TABLET_CRITICAL
#define DPTF_TSR2_TABLET_CRITICAL DPTF_TSR2_CRITICAL
#endif
Device (TSR2)
{
Name (_HID, EISAID ("INT3403"))
@ -197,12 +256,12 @@ Device (TSR2)
Method (_PSV)
{
Return (CTOK (DPTF_TSR2_PASSIVE))
Return (DTRP (DPTF_TSR2_TABLET_PASSIVE, DPTF_TSR2_PASSIVE))
}
Method (_CRT)
{
Return (CTOK (DPTF_TSR2_CRITICAL))
Return (DTRP (DPTF_TSR2_TABLET_CRITICAL, DPTF_TSR2_CRITICAL))
}
Name (PATC, 2)
@ -228,6 +287,14 @@ Device (TSR2)
#endif
#ifdef DPTF_TSR3_SENSOR_ID
#ifndef DPTF_TSR3_TABLET_PASSIVE
#define DPTF_TSR3_TABLET_PASSIVE DPTF_TSR3_PASSIVE
#endif
#ifndef DPTF_TSR3_TABLET_CRITICAL
#define DPTF_TSR3_TABLET_CRITICAL DPTF_TSR3_CRITICAL
#endif
Device (TSR3)
{
Name (_HID, EISAID ("INT3403"))
@ -253,12 +320,12 @@ Device (TSR3)
Method (_PSV)
{
Return (CTOK (DPTF_TSR3_PASSIVE))
Return (DTRP (DPTF_TSR3_TABLET_PASSIVE, DPTF_TSR3_PASSIVE))
}
Method (_CRT)
{
Return (CTOK (DPTF_TSR3_CRITICAL))
Return (DTRP (DPTF_TSR3_TABLET_CRITICAL, DPTF_TSR3_CRITICAL))
}
Name (PATC, 2)