baytrail: dptf: Add disable trip point methods
Added a method in each temp sensor to disable the aux trip points and then a wrapper function to call this method for each enabled temperature sensor. The event handler function is changed to not use a switch statement so it does not need to be serialized. This was causing issues with nested locking between the global lock and the EC PATM mutex. Some unused code in temp sensors that was added earlier is removed and instead a critical threshold is specified in _CRT. The top level DPTF device _OSC method is expanded to check for the passive policy UUID and initialize thermal devices. This is done for both enable and disable steps to ensure that the EC thermal thresholds are reset in both cases. Additionally the priority based _TRT is specified with TRTR=1. BUG=chrome-os-partner:17279 BRANCH=rambi TEST=build and boot on rambi, load esif_lf kernel drivers and start esif_uf application. Observe that temperature thresholds are set properly when running 'appstart Dptf' and that they are disabled after running 'appstop Dptf' Change-Id: Ia15824ca42164dadae2011d4e364b70905e36f85 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/182024 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/5037 Tested-by: build bot (Jenkins) Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
This commit is contained in:
parent
dec0148100
commit
b376ea632f
|
@ -6,13 +6,13 @@ Device (DPTF)
|
||||||
Name (IDSP, Package()
|
Name (IDSP, Package()
|
||||||
{
|
{
|
||||||
/* DPPM Passive Policy 1.0 */
|
/* DPPM Passive Policy 1.0 */
|
||||||
ToUUID("42A441D6-AE6A-462B-A84B-4A8CE79027D3"),
|
ToUUID ("42A441D6-AE6A-462B-A84B-4A8CE79027D3"),
|
||||||
|
|
||||||
/* DPPM Critical Policy */
|
/* DPPM Critical Policy */
|
||||||
ToUUID("97C68AE7-15FA-499c-B8C9-5DA81D606E0A"),
|
ToUUID ("97C68AE7-15FA-499c-B8C9-5DA81D606E0A"),
|
||||||
|
|
||||||
/* DPPM Cooling Policy */
|
/* DPPM Cooling Policy */
|
||||||
ToUUID("16CAF1B7-DD38-40ED-B1C1-1B8A1913D531"),
|
ToUUID ("16CAF1B7-DD38-40ED-B1C1-1B8A1913D531"),
|
||||||
})
|
})
|
||||||
|
|
||||||
Method (_STA)
|
Method (_STA)
|
||||||
|
@ -24,12 +24,26 @@ Device (DPTF)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Arg0: Buffer containing UUID
|
||||||
|
* Arg1: Integer containing Revision ID of buffer format
|
||||||
|
* Arg2: Integer containing count of entries in Arg3
|
||||||
|
* Arg3: Buffer containing list of DWORD capabilities
|
||||||
|
* Return: Buffer containing list of DWORD capabilities
|
||||||
|
*/
|
||||||
Method (_OSC, 4, Serialized)
|
Method (_OSC, 4, Serialized)
|
||||||
{
|
{
|
||||||
/* TODO: Enable/Disable EC control of thermals/charging */
|
/* Check for Passive Policy UUID */
|
||||||
|
If (LEqual (DeRefOf (Index (IDSP, 0)), Arg0)) {
|
||||||
|
/* Initialize Thermal Devices */
|
||||||
|
^TINI ()
|
||||||
|
}
|
||||||
|
|
||||||
Return (Arg3)
|
Return (Arg3)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Priority based _TRT */
|
||||||
|
Name (TRTR, 1)
|
||||||
|
|
||||||
Method (_TRT)
|
Method (_TRT)
|
||||||
{
|
{
|
||||||
Return (\_SB.DTRT)
|
Return (\_SB.DTRT)
|
||||||
|
|
|
@ -1,18 +1,37 @@
|
||||||
/* Thermal Threshold Event Handler */
|
/* Thermal Threshold Event Handler */
|
||||||
Method (TEVT, 1, Serialized)
|
Method (TEVT, 1, NotSerialized)
|
||||||
{
|
{
|
||||||
Switch (ToInteger (Arg0))
|
Store (ToInteger (Arg0), Local0)
|
||||||
{
|
|
||||||
#ifdef DPTF_TSR0_SENSOR_ID
|
#ifdef DPTF_TSR0_SENSOR_ID
|
||||||
Case (DPTF_TSR0_SENSOR_ID) { Notify (^TSR0, 0x90) }
|
If (LEqual (Local0, DPTF_TSR0_SENSOR_ID)) {
|
||||||
|
Notify (^TSR0, 0x90)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef DPTF_TSR1_SENSOR_ID
|
#ifdef DPTF_TSR1_SENSOR_ID
|
||||||
Case (DPTF_TSR1_SENSOR_ID) { Notify (^TSR1, 0x90) }
|
If (LEqual (Local0, DPTF_TSR1_SENSOR_ID)) {
|
||||||
|
Notify (^TSR1, 0x90)
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef DPTF_TSR2_SENSOR_ID
|
#ifdef DPTF_TSR2_SENSOR_ID
|
||||||
Case (DPTF_TSR2_SENSOR_ID) { Notify (^TSR2, 0x90) }
|
If (LEqual (Local0, DPTF_TSR2_SENSOR_ID)) {
|
||||||
#endif
|
Notify (^TSR2, 0x90)
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Thermal device initialization - Disable Aux Trip Points */
|
||||||
|
Method (TINI)
|
||||||
|
{
|
||||||
|
#ifdef DPTF_TSR0_SENSOR_ID
|
||||||
|
^TSR0.PATD ()
|
||||||
|
#endif
|
||||||
|
#ifdef DPTF_TSR1_SENSOR_ID
|
||||||
|
^TSR1.PATD ()
|
||||||
|
#endif
|
||||||
|
#ifdef DPTF_TSR2_SENSOR_ID
|
||||||
|
^TSR2.PATD ()
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DPTF_TSR0_SENSOR_ID
|
#ifdef DPTF_TSR0_SENSOR_ID
|
||||||
|
@ -24,9 +43,6 @@ Device (TSR0)
|
||||||
Name (TMPI, DPTF_TSR0_SENSOR_ID)
|
Name (TMPI, DPTF_TSR0_SENSOR_ID)
|
||||||
Name (_STR, Unicode (DPTF_TSR0_SENSOR_NAME))
|
Name (_STR, Unicode (DPTF_TSR0_SENSOR_NAME))
|
||||||
Name (GTSH, 20) /* 2 degree hysteresis */
|
Name (GTSH, 20) /* 2 degree hysteresis */
|
||||||
Name (NTTH, 5) /* 5 degree notification threshold */
|
|
||||||
Name (LTM0, 0) /* Last recorded temperature */
|
|
||||||
Name (CTYP, 0) /* Cooling policy */
|
|
||||||
|
|
||||||
Method (_STA)
|
Method (_STA)
|
||||||
{
|
{
|
||||||
|
@ -47,34 +63,9 @@ Device (TSR0)
|
||||||
Return (^^CTOK (DPTF_TSR0_PASSIVE))
|
Return (^^CTOK (DPTF_TSR0_PASSIVE))
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set Cooling Policy
|
Method (_CRT)
|
||||||
* Arg0 - Cooling policy mode, 1=active, 0=passive
|
|
||||||
* Arg1 - Acoustic Limit
|
|
||||||
* Arg2 - Power Limit
|
|
||||||
*/
|
|
||||||
Method (_SCP, 3, Serialized)
|
|
||||||
{
|
{
|
||||||
If (LEqual (Arg0, 0)) {
|
Return (^^CTOK (DPTF_TSR0_CRITICAL))
|
||||||
Store (0, CTYP)
|
|
||||||
} Else {
|
|
||||||
Store (1, CTYP)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* DPTF Thermal Trip Points Changed Event */
|
|
||||||
Notify (TSR0, 0x91)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Device Temperature Indication */
|
|
||||||
Method (_DTI, 1)
|
|
||||||
{
|
|
||||||
Store (Arg0, LTM0)
|
|
||||||
Notify (TSR0, 0x91)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Notification Temperature Threshold */
|
|
||||||
Method (_NTT)
|
|
||||||
{
|
|
||||||
Return (^^CTOK (NTTH))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Name (PATC, 2)
|
Name (PATC, 2)
|
||||||
|
@ -90,6 +81,12 @@ Device (TSR0)
|
||||||
{
|
{
|
||||||
\_SB.PCI0.LPCB.EC0.PAT1 (TMPI, Arg0)
|
\_SB.PCI0.LPCB.EC0.PAT1 (TMPI, Arg0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Disable Aux Trip Point */
|
||||||
|
Method (PATD, 0, Serialized)
|
||||||
|
{
|
||||||
|
\_SB.PCI0.LPCB.EC0.PATD (TMPI)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -102,9 +99,6 @@ Device (TSR1)
|
||||||
Name (TMPI, DPTF_TSR1_SENSOR_ID)
|
Name (TMPI, DPTF_TSR1_SENSOR_ID)
|
||||||
Name (_STR, Unicode (DPTF_TSR1_SENSOR_NAME))
|
Name (_STR, Unicode (DPTF_TSR1_SENSOR_NAME))
|
||||||
Name (GTSH, 20) /* 2 degree hysteresis */
|
Name (GTSH, 20) /* 2 degree hysteresis */
|
||||||
Name (NTTH, 5) /* 5 degree notification threshold */
|
|
||||||
Name (LTM1, 0)
|
|
||||||
Name (CTYP, 0) /* Cooling policy */
|
|
||||||
|
|
||||||
Method (_STA)
|
Method (_STA)
|
||||||
{
|
{
|
||||||
|
@ -125,34 +119,9 @@ Device (TSR1)
|
||||||
Return (^^CTOK (DPTF_TSR1_PASSIVE))
|
Return (^^CTOK (DPTF_TSR1_PASSIVE))
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set Cooling Policy
|
Method (_CRT)
|
||||||
* Arg0 - Cooling policy mode, 1=active, 0=passive
|
|
||||||
* Arg1 - Acoustic Limit
|
|
||||||
* Arg2 - Power Limit
|
|
||||||
*/
|
|
||||||
Method (_SCP, 3, Serialized)
|
|
||||||
{
|
{
|
||||||
If (LEqual (Arg0, 0)) {
|
Return (^^CTOK (DPTF_TSR1_CRITICAL))
|
||||||
Store (0, CTYP)
|
|
||||||
} Else {
|
|
||||||
Store (1, CTYP)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* DPTF Thermal Trip Points Changed Event */
|
|
||||||
Notify (TSR1, 0x91)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Device Temperature Indication */
|
|
||||||
Method (_DTI, 1)
|
|
||||||
{
|
|
||||||
Store (Arg0, LTM1)
|
|
||||||
Notify (TSR1, 0x91)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Notification Temperature Threshold */
|
|
||||||
Method (_NTT)
|
|
||||||
{
|
|
||||||
Return (^^CTOK (NTTH))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Name (PATC, 2)
|
Name (PATC, 2)
|
||||||
|
@ -168,6 +137,12 @@ Device (TSR1)
|
||||||
{
|
{
|
||||||
\_SB.PCI0.LPCB.EC0.PAT1 (TMPI, Arg0)
|
\_SB.PCI0.LPCB.EC0.PAT1 (TMPI, Arg0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Disable Aux Trip Point */
|
||||||
|
Method (PATD, 0, Serialized)
|
||||||
|
{
|
||||||
|
\_SB.PCI0.LPCB.EC0.PATD (TMPI)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -180,9 +155,6 @@ Device (TSR2)
|
||||||
Name (TMPI, DPTF_TSR2_SENSOR_ID)
|
Name (TMPI, DPTF_TSR2_SENSOR_ID)
|
||||||
Name (_STR, Unicode (DPTF_TSR2_SENSOR_NAME))
|
Name (_STR, Unicode (DPTF_TSR2_SENSOR_NAME))
|
||||||
Name (GTSH, 20) /* 2 degree hysteresis */
|
Name (GTSH, 20) /* 2 degree hysteresis */
|
||||||
Name (NTTH, 5) /* 5 degree notification threshold */
|
|
||||||
Name (LTM2, 0)
|
|
||||||
Name (CTYP, 0) /* Cooling policy */
|
|
||||||
|
|
||||||
Method (_STA)
|
Method (_STA)
|
||||||
{
|
{
|
||||||
|
@ -203,34 +175,9 @@ Device (TSR2)
|
||||||
Return (^^CTOK (DPTF_TSR2_PASSIVE))
|
Return (^^CTOK (DPTF_TSR2_PASSIVE))
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set Cooling Policy
|
Method (_CRT)
|
||||||
* Arg0 - Cooling policy mode, 1=active, 0=passive
|
|
||||||
* Arg1 - Acoustic Limit
|
|
||||||
* Arg2 - Power Limit
|
|
||||||
*/
|
|
||||||
Method (_SCP, 3, Serialized)
|
|
||||||
{
|
{
|
||||||
If (LEqual (Arg0, 0)) {
|
Return (^^CTOK (DPTF_TSR2_CRITICAL))
|
||||||
Store (0, CTYP)
|
|
||||||
} Else {
|
|
||||||
Store (1, CTYP)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* DPTF Thermal Trip Points Changed Event */
|
|
||||||
Notify (TSR2, 0x91)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Device Temperature Indication */
|
|
||||||
Method (_DTI, 1)
|
|
||||||
{
|
|
||||||
Store (Arg0, LTM2)
|
|
||||||
Notify (TSR2, 0x91)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Notification Temperature Threshold */
|
|
||||||
Method (_NTT)
|
|
||||||
{
|
|
||||||
Return (^^CTOK (NTTH))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Name (PATC, 2)
|
Name (PATC, 2)
|
||||||
|
@ -246,5 +193,11 @@ Device (TSR2)
|
||||||
{
|
{
|
||||||
\_SB.PCI0.LPCB.EC0.PAT1 (TMPI, Arg0)
|
\_SB.PCI0.LPCB.EC0.PAT1 (TMPI, Arg0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Disable Aux Trip Point */
|
||||||
|
Method (PATD, 0, Serialized)
|
||||||
|
{
|
||||||
|
\_SB.PCI0.LPCB.EC0.PATD (TMPI)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue