11.4. Thermal Objects

Objects related to thermal management are listed in the following table.

Table 11.5 Thermal Objects

Object

Description

_ACx

Returns active cooling policy threshold values in tenths of degrees.

_ALx

List of active cooling device objects.

_ART

Table of values that convey the Active Cooling Relationship between devices

_CRT

Returns critical trip point in tenths of degrees where OSPM must perform a critical shutdown.

_HOT

Returns critical trip point in tenths of degrees where OSPM may choose to transition the system into S4.

_MTL

Returns the minimum throttle limit of a zone, when defined under a thermal zone. T

_NTT

Returns the temperature change threshold for devices containing native temperature sensors to cause evaluation of the _TPT object

_PSL

List of processor device objects for clock throttling.

_PSV

Returns the passive cooling policy threshold value in tenths of degrees.

_RTV

Conveys whether temperatures are expressed in terms of absolute or relative values.

_SCP

Sets platform cooling policy (active or passive).

_STR

String name for this thermal zone.

_TC1

Thermal constant for passive cooling.

_TC2

Thermal constant for passive cooling.

_TFP

Thermal fast sampling period for Passive cooling in milliseconds.

_TMP

Returns the thermal zone’s current temperature in tenths of degrees.

_TPT

Conveys the temperature of a devices internal temperature sensor to the platform when a temperature trip point is crossed or a meaningful change in temperature occurs.

_TRT

Table of values that convey the Thermal Relationship between devices

_TSN

Returns a reference to the thermal sensor device used to monitor the temperature of the thermal zone (when defined under a thermal zone).

_TSP

Thermal sampling period for Passive cooling in tenths of seconds.

_TST

Conveys the minimum separation for a devices’ programmable temperature trip points.

_TZD

List of devices whose temperature is measured by this thermal zone.

_TZM

Returns the thermal zone for which a device is a member.

_TZP

Thermal zone polling frequency in tenths of seconds.

With the exception of _TPT, _TST, and the _TZM objects, the objects described in the following sections may exist under a thermal zone. Devices with embedded thermal sensors and controls may contain static cooling temperature trip points or dynamic cooling temperature trip points that must be programmed by the device’s driver. In this case, thermal objects defined under a device serve to convey the platform specific values for these settings to the devices driver.

11.4.1. _ACx (Active Cooling)

This optional object, if present under a thermal zone, returns the temperature trip point at which OSPM must start or stop Active cooling, where x is a value between 0 and 9 that designates multiple active cooling levels of the thermal zone. If the Active cooling device has one cooling level (that is, “on”) then that cooling level must be defined as _AC0. If the cooling device has two levels of capability, such as a high fan speed and a low fan speed, then they must be defined as _AC0 and _AC1 respectively. The smaller the value of x, the greater the cooling strength _ACx represents. In the above example, _AC0 represents the greater level of cooling (the faster fan speed) and _AC1 represents the lesser level of cooling (the slower fan speed). For every _ACx method, there must be a matching _ALx object or a corresponding entry in an _ART object’s active cooling relationship list.

If this object it present under a device, the device’s driver evaluates this object to determine the device’s corresponding active cooling temperature trip point. This value may then be used by the device’s driver to program an internal device temperature sensor trip point. When this object is present under a device, the device must contain a native OS device driver interface supporting a corresponding active cooling control, a matching _ALx object under the thermal zone of which the device is a member must exist, or a corresponding entry in an _ART object’s active cooling relationship list must.

Arguments:

None

Return Value:

An Integer containing the active cooling temperature threshold in tenths of degrees Kelvin

The return value is an integer that represents tenths of degrees Kelvin. For example, 300.0K is represented by the integer 3000.

11.4.2. _ALx (Active List)

This object is defined under a thermal zone and evaluates to a list of Active cooling devices to be turned on when the corresponding _ACx temperature threshold is exceeded. For example, these devices could be fans.

Arguments:

None

Return Value:

A variable-length Package containing a list of References to active cooling devices

The return value is a package consisting of references to all active cooling devices that should be engaged when the associated active cooling threshold (_ACx) is exceeded.

When the returned package consists of references to an active cooling device that is a fan device and the fan device implements _FPS and _FSL objects, OSPM activates the identified fan at a capability level matching the level identified by this object. For example, if the system has a fan that implements _FPS object with 5 levels, and if _AL3 is evaluated by the OSPM causing it to return this fan’s reference, then the fan is activated by evaluating _FSL with the value from the Control field of an _FPS entry whose TripPoint field value equals 3.

If a thermal zone has the _ART object defined, then it is not necessary to have any _ALx objects implemented.

Note

If a thermal zone has _ART object defined as well as _ALx defined, the OSPM ignores _ALx objects and uses _ART exclusively.

11.4.3. _ART (Active Cooling Relationship Table)

The optional _ART object evaluates to a variable-length package containing a list of packages each of which describes the active cooling relationship between a device within a thermal zone and an active cooling device. OSPM uses the combined information about the active cooling relationships of all devices in the thermal zone to make active cooling policy decisions.

If _ART is implemented within a thermal zone, OSPM ignores all _ALx objects as _ART conveys a mapping for each of the _ACx trip points to active cooling devices.

The platform can dynamically change the _ART object by notifying the thermal zone object with a Notify code of 0x83, which will cause OSPM to re-evaluate both the _TRT and _ART objects. This allows the platform to change the capability level mapping to various _ACx trip points dynamically at run time.

Arguments:

None

Return Value:

A variable-length Package containing a Revision ID and a list of Active Relationship Packages as described below:

Return Value Information

Package {
    Revision,               // Integer - Current revision is: 0
    ActiveRelationship[0]   // Package
    ....
    ActiveRelationship[n]   // Package
}

Each ActiveRelationship sub-Package contains the elements described below:

Package {
    SourceDevice,           // Object Reference to a Fan Device Object
    TargetDevice,           // Object Reference to a Device Object
    Weight,                 // Integer
    AC0MaxLevel,            // Integer
    AC1MaxLevel,            // Integer
    AC2MaxLevel,            // Integer
    AC3MaxLevel,            // Integer
    AC4MaxLevel,            // Integer
    AC5MaxLevel,            // Integer
    AC6MaxLevel,            // Integer
    AC7MaxLevel,            // Integer
    AC8MaxLevel,            // Integer
    AC9MaxLevel             // Integer
}
Table 11.6 Thermal Relationship Package Values 1

Element

Object Type

Description

SourceDevice

Reference (to a device)

The fan device that has an impact on the cooling of the device indicated by TargetDevice.

TargetDevice

Reference (to a device)

The device that is impacted by the fan device indicated by SourceDevice.

Weight

Integer

Indicates the SourceDevice’s contribution to the platform’s TargetDevice total cooling capability when the fans of all entries in the _ART with the same target device are engaged at their highest (maximum capability) performance state. This is represented as a percentage value (0-100).

AC0MaxLevel

Integer (DWORD)

Indicates the maximum fans speed level in percent (0-100) that OSPM may engage on the SourceDevice when a temperature exceeds the _AC0 trip point value. A value of 0xFFFFFFFF in this field indicates that the SourceDevice is not to be engaged for the trip point.

AC1MaxLevel

Integer (DWORD)

Indicates the maximum fans speed level in percent (0-100) that OSPM may engage on the SourceDevice when a temperature exceeds the _AC1 trip point value. A value of 0xFFFFFFFF in this field indicates that the SourceDevice is not to be engaged for the trip point.

AC2MaxLevel

Integer (DWORD)

Indicates the maximum fans speed level in percent (0-100) that OSPM may engage on the SourceDevice when a temperature exceeds the _AC2 trip point value. A value of 0xFFFFFFFF in this field indicates that the SourceDevice is not to be engaged for the trip point.

AC3MaxLevel

Integer (DWORD)

Indicates the maximum fans speed level in percent (0-100) that OSPM may engage on the SourceDevice when a temperature exceeds the _AC3 trip point value. A value of 0xFFFFFFFF in this field indicates that the SourceDevice is not to be engaged for the trip point.

AC4MaxLevel

Integer (DWORD)

Indicates the maximum fans speed level in percent (0-100) that OSPM may engage on the SourceDevice when a temperature exceeds the _AC4 trip point value. A value of 0xFFFFFFFF in this field indicates that the SourceDevice is not to be engaged for the trip point.

AC5MaxLevel

Integer (DWORD)

Indicates the maximum fans speed level in percent (0-100) that OSPM may engage on the SourceDevice when a temperature exceeds the _AC5 trip point value. A value of 0xFFFFFFFF in this field indicates that the SourceDevice is not to be engaged for the trip point.

AC6MaxLevel

Integer (DWORD)

Indicates the maximum fans speed level in percent (0-100) that OSPM may engage on the SourceDevice when a temperature exceeds the _AC6 trip point value. A value of 0xFFFFFFFF in this field indicates that the SourceDevice is not to be engaged for the trip point.

AC7MaxLevel

Integer (DWORD)

Indicates the maximum fans speed level in percent (0-100) that OSPM may engage on the SourceDevice when a temperature exceeds the _AC7 trip point value. A value of 0xFFFFFFFF in this field indicates that the SourceDevice is not to be engaged for the trip point.

AC8MaxLevel

Integer (DWORD)

Indicates the maximum fans speed level in percent (0-100) that OSPM may engage on the SourceDevice when a temperature exceeds the _AC8 trip point value. A value of 0xFFFFFFFF in this field indicates that the SourceDevice is not to be engaged for the trip point.

AC9MaxLevel

Integer (DWORD)

Indicates the maximum fans speed level in percent (0-100) that OSPM may engage on the SourceDevice when a temperature exceeds the _AC9 trip point value. A value of 0xFFFFFFFF in this field indicates that the SourceDevice is not to be engaged for the trip point.

In the case multiple active cooling trip points have been exceeded and _ART entries indicate various maximum limits for the same SourceDevice, OSPM may operate the SourceDevice up to the highest ACxMaxLevel value indicated for all exceeded trip points.

11.4.4. _CRT (Critical Temperature)

This object, when defined under a thermal zone, returns the critical temperature at which OSPM must shutdown the system. If this object it present under a device, the device’s driver evaluates this object to determine the device’s critical cooling temperature trip point. This value may then be used by the device’s driver to program an internal device temperature sensor trip point.

Arguments:

None

Return Value:

An Integer containing the critical temperature threshold in tenths of degrees Kelvin

The result is an integer value that represents the critical shutdown threshold in tenths of degrees. For example, 300.0K is represented by the integer 3000.

11.4.5. _CR3 (Warm/Standby Temperature)

This object, when defined under a thermal zone, returns the critical temperature at which OSPM may choose to transition the system into a low power state with a faster exit latency than S4 sleeping state (e.g. S3, or an equivalent low power state if the LOW_POWER_S0_IDLE_CAPABLE FADT flag is set). The platform vendor should define _CR3 to be sufficiently below _CRT so as to allow enough time to transition the system into this low power state. It may be sufficient to define either _CR3 or _HOT depending on the type and thermal characteristics of the specific thermal zone under consideration. If this object it present under a device, the device’s driver evaluates this object to determine the device’s warm/standby cooling temperature trip point. This value may then be used by the device’s driver to program an internal device temperature sensor trip point.

Arguments:

None

Return Value:

An Integer containing the critical temperature threshold in tenths of degrees Kelvin

The result is an integer value that represents the critical shutdown threshold in tenths of degrees. For example, 300.0K is represented by the integer 3000.

11.4.6. _DTI (Device Temperature Indication)

This optional object may be present under a device and is evaluated by OSPM when the device’s native (driver managed) temperature sensor has crossed a cooling temperature trip point or when a meaningful change in temperature (as indicated by evaluation of the _NTT object) has occurred. OSPM evaluation of the _DTI object enables the platform to take action as a result of these events. For example, the platform may choose to implement fan control hysteresis based on the conveyed value or signal the revaluation of the _TDL or _PDL objects.

Arguments:(1)

Arg0 - An Integer containing the current value of the temperature sensor (in tenths Kelvin)

Return Value:

None

11.4.7. _HOT (Hot Temperature)

This optional object, when defined under a thermal zone, returns the critical temperature at which OSPM may choose to transition the system into the S4 sleeping state. The platform vendor should define _HOT to be far enough below _CRT so as to allow OSPM enough time to transition the system into the S4 sleeping state. While dependent on the amount of installed memory, on typical platforms OSPM implementations can transition the system into the S4 sleeping state in tens of seconds. If this object it present under a device, the device’s driver evaluates this object to determine the device’s hot cooling temperature trip point. This value may then be used by the device’s driver to program an internal device temperature sensor trip point.

Arguments:

None

Return Value:

An Integer containing the critical temperature threshold in tenths of degrees Kelvin

The return value is an integer that represents the critical sleep threshold tenths of degrees Kelvin. For example, 300.0K is represented by the integer 3000.

11.4.8. _MTL (Minimum Throttle Limit)

This object, when defined under a thermal zone, returns the minimum throttle limit of a zone. This will determine how much a thermal zone limits the performance of its controlled devices. This value can be used by OSPM to calculate the changes in performance limits it applies to the devices of the thermal zone.

Arguments:

None

Return Value:

An Integer value with the current minimum throttle limit, expressed as a percentage

11.4.9. _NTT (Notification Temperature Threshold)

This optional object may be defined under devices containing native temperature sensors and evaluates to the temperature change threshold for the device where the platform requires notification of the change via evaluation of the _TPT object.

Arguments:

None

Return Value:

An Integer containing the temperature threshold in tenths of degrees Kelvin.

The return value is an integer that represents the amount of change in device temperature that is meaningful to the platform and for which the platform requires notification via evaluation of the _TPT object.

11.4.10. _PSL (Passive List)

This object is defined under a thermal zone and evaluates to a list of processor objects to be used for passive cooling.

Arguments:

None

Return Value:

A variable-length Package containing a list of References to processor objects

The return value is a package consisting of references to all processor objects that will be used for passive cooling when the zone’s passive cooling threshold (_PSV) is exceeded.

11.4.11. _PSV (Passive)

This optional object, if present under a thermal zone, evaluates to the temperature at which OSPM must activate passive cooling policy.

Arguments:

None

Return Value:

An Integer containing the passive cooling temperature threshold in tenths of degrees Kelvin

The return value is an integer that represents tenths of degrees Kelvin. For example, 300.0 Kelvin is represented by 3000.

If this object it present under a device, the device’s driver evaluates this object to determine the device’s corresponding passive cooling temperature trip point. This value may then be used by the device’s driver to program an internal device temperature sensor trip point. When this object is present under a device, the device must contain a native OS device driver interface supporting a passive cooling control.

11.4.12. _RTV (Relative Temperature Values)

This optional object may be present under a device or a thermal zone and is evaluated by OSPM to determine whether the values returned by temperature trip point and current operating temperature interfaces under the corresponding device or thermal zone represent absolute or relative temperature values.

Arguments:

None

Return Value:

An Integer containing a relative versus absolute indicator:

0 Temperatures are absolute Other Temperatures are relative

The return value is an integer that indicates whether values returned by temperature trip point and current operating temperature interfaces represent absolute or relative temperature values.

If the _RTV object is not present or is present and evaluates to zero then OSPM assumes that all values returned by temperature trip point and current operating temperature interfaces under the device or thermal zone represent absolute temperature values expressed in tenths of degrees Kelvin.

If the _RTV object is present and evaluates to a non zero value then all values returned by temperature trip point and current operating temperature interfaces under the corresponding device or thermal zone represent temperature values relative to a zero point that is defined as the maximum value of the device’s or thermal zone’s critical cooling temperature trip point. In this case, temperature trip point and current operating temperature interfaces return values in units that are tenths of degrees below the zero point.

OSPM evaluates the _RTV object before evaluating any other temperature trip point or current operating temperature interfaces.

11.4.13. _SCP (Set Cooling Policy)

This optional object is a control method that OSPM invokes to set the platform’s cooling mode policy setting. The platform may use the evaluation of _SCP to reassign _ACx and _PSV temperature trip points according to the mode or limits conveyed by OSPM. OSPM will automatically evaluate _ACx and _PSV objects after executing _SCP. This object may exist under a thermal zone or a device.

Arguments:(3)

Arg0 - Mode An Integer containing the cooling mode policy code

Arg1 - AcousticLimit An Integer containing the acoustic limit

Arg2 - PowerLimit An Integer containing the power limit

Return Value:

None

Argument Information:

Mode - 0 = Active, 1 = Passive

Acoustic Limit - Specifies the maximum acceptable acoustic level that active cooling devices may generate. Values are 1 to 5 where 1 means no acoustic tolerance and 5 means maximum acoustic tolerance.

Power Limit - Specifies the maximum acceptable power level that active cooling devices may consume. Values are from 1 to 5 where 1 means no power may be used to cool and 5 means maximum power may be used to cool.

Example:

// Fan Control is defined as follows:

//      Speed 1 (Fan is Off): Acoustic Limit 1, Power Limit 1, <= 64C
//      Speed 2: Acoustic Limit 2, Power Limit 2, 65C - 74C
//      Speed 3: Acoustic Limit 3, Power Limit 3, 75C - 84C
//      Speed 4: Acoustic Limit 4, Power Limit 4, 85C - 94C
//      Speed 5: Acoustic Limit 5, Power Limit 5, >= 95C

// _SCP Notifies the platform the current cooling mode.
//  Arg0 = Mode
//          0 - Active cooling
//          1 - Passive cooling
//  Arg1 = Acoustic Limit
//          1 = No acoustic tolerance
//          ...
//          5 = maximum acoustic tolerance
//  Arg2 = Power Limit
//          1 = No power may be used to cool
//          ...
//          5 = maximum power may be used to cool

Method(_SCP,3,Serialized)
{
    // Store the Cooling Mode in NVS and use as needed in
    // the rest of the ASL Code.
    Store(Arg0, CTYP)

    // Set PSVT to account for a Legacy OS that does not pass
    // in either the acoustic limit or Power Limit.
    If(Arg0)
    {
        Store(60,PSVT)
    }
    Else
    {
        Store(97,PSVT)
    }
    If (CondRefOf (_OSI,Local0))
    {
        If (\_OSI ("3.0 _SCP Extensions"))
        {
            // Determine Power Limit.
            //
            // NOTE1: PSVT = Passive Cooling Trip Point stored
            // in NVS in Celsius.
            //
            // NOTE2: 4 Active Cooling Trips Points correspond to 5
            // unique Power Limit regions and 5 unique acoustic limit
            // regions.

            //
            // NOTE3: This code will define Passive cooling so that
            // CPU throttling will be initiated within the Power Limit
            // Region passed in such that the next higher Power Limit
            // Region will not be reached.
            Switch(Arg2)
            {

                Case(1) // Power Limit = 1.
                {
                    // Stay in Acoustic Limit 1.
                    Store(60,PSVT) // Passive = 60C.
                }
                Case(2) // Power Limit = 2.
                {
                    // Store Highest supported Acoustic Level
                    // at this Power Limit (1 or 2).
                    Store(70,PSVT)
                    If(Lequal(Arg1,1))
                    {
                        // Stay in Acoustic Level 1.
                        Store(60,PSVT)
                    }
                }
                Case(3) // Power Limit = 3.
                {
                    // Store Highest supported Acoustic Level
                    // at this Power Limit (1, 2, or 3).
                    Store(80,PSVT)
                    If(Lequal(Arg1,2))
                    {
                        // Stay in Acoustic Level 1 or 2.
                        Store(70,PSVT)
                    }
                    If(Lequal(Arg1,1))
                    {
                        // Stay in Acoustic Level 1.
                        Store(60,PSVT)
                    }
                }
                Case(4) // Power Limit = 4.
                {
                    // Store Highest supported Acoustic Level
                    // at this Power Limit (1, 2, 3, or 4).
                    Store(90,PSVT)
                    If(Lequal(Arg1,3))
                    {
                        // Stay in Acoustic Level 1 or 2.
                        Store(80,PSVT)
                    }
                    If(Lequal(Arg1,2))
                    {
                        // Stay in Acoustic Level 1 or 2.
                        Store(70,PSVT)
                    }
                    If(Lequal(Arg1,1))
                    {
                        // Stay in Acoustic Level 1.
                        Store(60,PSVT)
                    }
                }
                Case(5) // Power Limit = 5.
                {
                    // Store Highest supported Acoustic Level
                    // at this Power Limit (1, 2, 3, 4, or 5).
                    Store(97,PSVT)
                    If(Lequal(Arg1,4))
                    {
                        // Stay in Acoustic Level 1 or 2.
                        Store(90,PSVT)
                    }
                    If(Lequal(Arg1,3))
                    {
                        // Stay in Acoustic Level 1 or 2.
                        Store(80,PSVT)
                    }
                    If(Lequal(Arg1,2))
                    {
                        // Stay in Acoustic Level 1 or 2.
                        Store(70,PSVT)
                    }
                    If(Lequal(Arg1,1))
                    {
                        // Stay in Acoustic Level 1.
                        Store(60,PSVT)
                    }
                } // Case 5
            } // Switch Arg 2
        } // \_OSI - Extended \_SCP
    } // CondRefOf \_OSI
} // Method \_SCP

11.4.14. _STR (String)

This optional object, when defined under a thermal zone, returns a string name for this thermal zone. See below for more details.

11.4.15. _TC1 (Thermal Constant 1)

This object evaluates to the constant _TC1 for use in the Passive cooling formula:

\[\Delta Performance [\%] = \_TC1 * ( T_{n} - T_{n-1} ) + \_TC2 * (T_{n} - T_{t} )\]

Arguments:

None

Return Value:

An Integer containing Thermal Constant #1

11.4.16. _TC2 (Thermal Constant 2)

This object evaluates to the constant _TC2 for use in the Passive cooling formula:

\[\Delta Performance [\%] = \_TC1 * ( T_{n} - T_{n-1} ) + \_TC2 * (T_{n} - T_{t} )\]

Arguments:

None

Return Value:

An Integer containing Thermal Constant #2

11.4.17. _TFP (Thermal fast Sampling Period)

This object evaluates to a thermal sampling period (in milliseconds) used by OSPM to implement the Passive cooling equation. This value, along with _TC1 and _TC2, will enable OSPM to provide the proper hysteresis required by the system to accomplish an effective passive cooling policy.

Arguments:

None

Return Value:

An Integer containing the sampling period in milliseconds

The granularity of the sampling period is 1 milliseconds. For example, if the sampling period is 30.0 seconds, then _TFP needs to report 30,000; if the sampling period is 0.5 seconds, then it will report 500. OSPM can normalize the sampling over a longer period if necessary.

If both _TFP and _TSP are present in a Thermal Zone, _TFP overrides _TSP. Platforms which need to support legacy operating systems from before _TFP in ACPI 6.0, must specify a _TSP if a sampling period is required. OS support for _TFP can be discovered via _OSC See Platform-Wide _OSC Capabilities DWORD 2.

11.4.18. _TMP (Temperature)

This control method returns the thermal zone’s current operating temperature.

Arguments:

None

Return Value:

An Integer containing the current temperature of the thermal zone (in tenths of degrees Kelvin)

The return value is the current temperature of the thermal zone in tenths of degrees Kelvin. For example, 300.0K is represented by the integer 3000.

11.4.19. _TPT (Trip Point Temperature)

This optional object may be present under a device and is invoked by OSPM to indicate to the platform that the devices’ embedded temperature sensor has crossed a cooling temperature trip point. After invocation, OSPM immediately evaluates the devices’ Active and Passive cooling temperature trip point values. This enables the platform to implement hysteresis.

Arguments:(1)

Arg0 - An Integer containing the current value of the temperature sensor (in tenths Kelvin)

Return Value:

None

The _TPT object is deprecated in ACPI 4.0. The _DTI object should be used instead (see _DTI (Device Temperature Indication)).

11.4.20. _TRT (Thermal Relationship Table)

This object evaluates to a package of packages each of which describes the thermal relationship between devices within a thermal zone. OSPM uses the combined information about the thermal relationships of all devices in the thermal zone to make thermal policy decisions.

Arguments:

None

Return Value:

A variable-length Package containing a list of Thermal Relationship Packages as described below

Return Value Information

Package {
    ThermalRelationship[0] // Package
    ....
    ThermalRelationship[n] // Package
}

Each ThermalRelationship sub-Package contains the elements described below:

Package {
  SourceDevice,                   // Object Reference to a Device Object
  TargetDevice,                   // Object Reference to a Device Object
  Influence,                      // Integer
  SamplingPeriod,                 // Integer
  Reserved1,                      // Integer
  Reserved2,                      // Integer
  Reserved3,                      // Integer
  Reserved4                       // Integer
},
Table 11.7 Thermal Relationship Package Values 2

Element

Object Type

Description

Source Device

Reference (to a device)

The device that is influencing the device indicated by TargetDevice.

Target Device

Reference (to a device)

The device that is influenced by the device indicated by SourceDevice.

Influence

Integer

The thermal influence of SourceDevice on TargetDevice - represented as tenths of degrees Kelvin that the device indicated by SourceDevice raises the temperature of the device indicated by TargetDevice per watt of thermal load that SourceDevice generates.

Sampling Period

Integer

The minimum period of time in tenths of seconds that OSPM should wait after applying a passive control to the device indicated by SourceDevice to detect its impact on the device indicated by TargetDevice.

Reserved (1-4)

Integer

Reserved for future use.

11.4.21. _TSN (Thermal Sensor Device)

This object, when defined under a thermal zone, returns a reference to the thermal sensor device used to monitor the temperature of the thermal zone. See Native OS Device Driver Thermal Interfaces.

Arguments:

None

Return Value:

A single Reference to the namespace device object that monitors the temperature of the thermal zone.

11.4.22. _TSP (Thermal Sampling Period)

This object evaluates to a thermal sampling period (in tenths of seconds) used by OSPM to implement the Passive cooling equation. This value, along with _TC1 and _TC2, will enable OSPM to provide the proper hysteresis required by the system to accomplish an effective passive cooling policy.

Arguments:

None

Return Value:

An Integer containing the sampling period in tenths of seconds

The granularity of the sampling period is 0.1 seconds. For example, if the sampling period is 30.0 seconds, then _TSP needs to report 300; if the sampling period is 0.5 seconds, then it will report 5. OSPM can normalize the sampling over a longer period if necessary.

If both _TFP and _TSP are present in a Thermal Zone, _TFP overrides _TSP. Platforms which need to support legacy operating systems from before _TFP in ACPI 6.0 must specify a _TSP if a sampling period is required. OS support for _TFP can be discovered via _OSC (see Platform-Wide _OSC Capabilities DWORD 2).

11.4.23. _TST (Temperature Sensor Threshold)

This optional object may be present under a device and is evaluated by OSPM to determine the minimum separation for a devices’ programmable temperature trip points. When a device contains multiple programmable temperature trip points, it may not be necessary for OSPM to poll the device’s temperature after crossing a temperature trip point when performing passive cooling control policy.

Arguments:

None

Return Value:

An Integer containing the sensor threshold (in tenths of degrees Kelvin)

To eliminate polling, the device can program intermediate trip points of interest (higher or lower than the current temperature) and signal the crossing of the intermediate trip points to OSPM. The distance between the current temperature and these intermediate trip points may be platform specific and must be set far enough away from the current temperature so as to not to miss the crossing of a meaningful temperature point. The _TST object conveys the recommended minimum separation between the current temperature and an intermediate temperature trip point to OSPM.

11.4.24. _TZD (Thermal Zone Devices)

This optional object evaluates to a package of device names. Each name corresponds to a device in the ACPI namespace that is associated with the thermal zone. The temperature reported by the thermal zone is roughly correspondent to that of each of the devices.

Arguments:

None

Return Value:

A variable-length Package containing a list of References to thermal zone devices

The list of devices returned by the control method need not be a complete and absolute list of devices affected by the thermal zone. However, the package should at least contain the devices that would uniquely identify where this thermal zone is located in the machine. For example, a thermal zone in a docking station should include a device in the docking station, a thermal zone for the CD-ROM bay, should include the CD-ROM.

11.4.25. _TZM (Thermal Zone Member)

This optional object may exist under any device definition and evaluates to a reference to the thermal zone of which the device is a member.

Arguments:

None

Return Value:

A Reference to the parent device

11.4.26. _TZP (Thermal Zone Polling)

This optional object evaluates to a recommended polling frequency (in tenths of seconds) for this thermal zone. A value of zero indicates that OSPM does not need to poll the temperature of this thermal zone in order to detect temperature changes (the hardware is capable of generating asynchronous notifications).

Arguments:

None

Return Value:

An Integer containing the recommended polling frequency in tenths of seconds

The return value contains the recommended polling frequency, in tenths of seconds. A value of zero indicates that polling is not necessary.

The _TZP value is specified as tenths of seconds with a 1 second granularity. For example, a _TZP value of 300 equals 30 seconds, while a value of 3000 equals 5 minutes. This is only a recommended value, and OSPM will consider other factors when determining the actual polling frequency to use.

The use of polling is allowed but strongly discouraged by this specification. OEMs should design systems that asynchronously notify OSPM whenever a meaningful change in the zone’s temperature occurs–relieving the OS of the overhead associated with polling (see Detecting Temperature Changes for more details).