APPLIED: [PATCH 0/1][SRU][JAMMY] Update int340x OS policy capability handshake

Colin King (gmail) colin.i.king at gmail.com
Thu Mar 24 09:30:32 UTC 2022


On 24/03/2022 09:12, Andrea Righi wrote:
> On Wed, Mar 23, 2022 at 02:38:45PM +0000, 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.
> 
> Applied to jammy/linux (with the proper cherry picked line).
> Thanks Colin!
> 
> -Andrea

Thanks! Much appreciated. \o/

Colin



More information about the kernel-team mailing list