ACK/Cmnt: [PATCH 0/1][SRU][JAMMY] Update int340x OS policy capability handshake
Tim Gardner
tim.gardner at canonical.com
Wed Mar 23 15:30:20 UTC 2022
Acked-by: Tim Gardner <tim.gardner at canonical.com>
This is a clean cherry-pick which can be added when applied, e.g.,
git cherry-pick -s -x c7ff29763989bd09c433f73fae3c1e1c15d9cda4
unless you'd like to send a v2.
rtg
On 3/23/22 08:38, Colin Ian King wrote:
> BugLink: https://bugs.launchpad.net/bugs/1966089
>
> == SRU JAMMY ==
>
> Update int340x OS policy capability handshake; required for full functionality
> in thermald 2.4.9 to improve functionality for newer H/W.
>
> == The fix ==
>
> Upstream commit:
>
> commit c7ff29763989bd09c433f73fae3c1e1c15d9cda4
> Author: Srinivas Pandruvada <srinivas.pandruvada at linux.intel.com>
> Date: Mon Mar 14 15:09:37 2022 -0700
>
> thermal: int340x: Update OS policy capability handshake
>
> Update the firmware with OS supported policies mask, so that firmware can
> relinquish its internal controls. Without this update several Tiger Lake
> laptops gets performance limited with in few seconds of executing in
> turbo region.
>
> The existing way of enumerating firmware policies via IDSP method and
> selecting policy by directly writing those policy UUIDS via _OSC method
> is not supported in newer generation of hardware.
>
> There is a new UUID "B23BA85D-C8B7-3542-88DE-8DE2FFCFD698" is defined for
> updating policy capabilities. As part of ACPI _OSC method:
>
> Arg0 - UUID: B23BA85D-C8B7-3542-88DE-8DE2FFCFD698
> Arg1 - Rev ID: 1
> Arg2 - Count: 2
> Arg3 - Capability buffers: Array of Arg2 DWORDS
>
> DWORD1: As defined in the ACPI 5.0 Specification
> - Bit 0: Query Flag
> - Bits 1-3: Always 0
> - Bits 4-31: Reserved
>
> DWORD2 and beyond:
> - Bit0: set to 1 to indicate Intel(R) Dynamic Tuning is active, 0 to
> indicate it is disabled and legacy thermal mechanism should
> be enabled.
> - Bit1: set to 1 to indicate Intel(R) Dynamic Tuning is controlling
> active cooling, 0 to indicate bios shall enable legacy thermal
> zone with active trip point.
> - Bit2: set to 1 to indicate Intel(R) Dynamic Tuning is controlling
> passive cooling, 0 to indicate bios shall enable legacy thermal
> zone with passive trip point.
> - Bit3: set to 1 to indicate Intel(R) Dynamic Tuning is handling
> critical trip point, 0 to indicate bios shall enable legacy
> thermal zone with critical trip point.
> - Bits 4:31: Reserved
>
> From sysfs interface, there is an existing interface to update policy
> UUID using attribute "current_uuid". User space can write the same UUID
> for ACTIVE, PASSIVE and CRITICAL policy. Driver converts these UUIDs to
> DWORD2 Bit 1 to Bit 3. When any of the policy is activated by user
> space it is assumed that dynamic tuning is active.
>
> For example
> $cd /sys/bus/platform/devices/INTC1040:00/uuids
> To support active policy
> $echo "3A95C389-E4B8-4629-A526-C52C88626BAE" > current_uuid
> To support passive policy
> $echo "42A441D6-AE6A-462b-A84B-4A8CE79027D3" > current_uuid
> To support critical policy
> $echo "97C68AE7-15FA-499c-B8C9-5DA81D606E0A" > current_uuid
>
> To check all the supported policies
> $cat current_uuid
> 3A95C389-E4B8-4629-A526-C52C88626BAE
> 42A441D6-AE6A-462b-A84B-4A8CE79027D3
> 97C68AE7-15FA-499c-B8C9-5DA81D606E0A
>
> To match the bit format for DWORD2, rearranged enum int3400_thermal_uuid
> and int3400_thermal_uuids[] by swapping current INT3400_THERMAL_ACTIVE
> and INT3400_THERMAL_PASSIVE_1.
>
> If the policies are enumerated via IDSP method then legacy method is
> used, if not the new method is used to update policy support.
>
> Srinivas Pandruvada (1):
> thermal: int340x: Update OS policy capability handshake
>
> .../intel/int340x_thermal/int3400_thermal.c | 146 ++++++++++++------
> 1 file changed, 97 insertions(+), 49 deletions(-)
>
--
-----------
Tim Gardner
Canonical, Inc
More information about the kernel-team
mailing list