Update OS policy capability handshake
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
HWE Next |
Fix Released
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Fix Released
|
High
|
Andrea Righi | ||
Focal |
Invalid
|
Undecided
|
Unassigned | ||
Jammy |
Fix Released
|
Undecided
|
Unassigned | ||
Kinetic |
Fix Released
|
Undecided
|
Unassigned | ||
linux-oem-5.14 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
koba | ||
Jammy |
Invalid
|
Undecided
|
Unassigned | ||
Kinetic |
Invalid
|
Undecided
|
Unassigned | ||
linux-oem-5.17 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Focal |
Invalid
|
Undecided
|
Unassigned | ||
Jammy |
Fix Released
|
Undecided
|
koba | ||
Kinetic |
Invalid
|
Undecided
|
Unassigned |
Bug Description
== 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 c7ff29763989bd0
Author: Srinivas Pandruvada <email address hidden>
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-
updating policy capabilities. As part of ACPI _OSC method:
Arg0 - UUID: B23BA85D-
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/
To support active policy
$echo "3A95C389-
To support passive policy
$echo "42A441D6-
To support critical policy
$echo "97C68AE7-
To check all the supported policies
$cat current_uuid
3A95C389-
42A441D6-
97C68AE7-
To match the bit format for DWORD2, rearranged enum int3400_
and int3400_
and INT3400_
If the policies are enumerated via IDSP method then legacy method is
used, if not the new method is used to update policy support.
Signed-off-by: Srinivas Pandruvada <email address hidden>
Signed-off-by: Rafael J. Wysocki <email address hidden>
Changed in linux-oem-5.14 (Ubuntu Focal): | |
status: | New → In Progress |
assignee: | nobody → koba (kobako) |
tags: | added: oem-priority originate-from-1965785 somerville |
Changed in linux-oem-5.17 (Ubuntu Focal): | |
status: | New → Invalid |
Changed in linux-oem-5.17 (Ubuntu Jammy): | |
status: | In Progress → Fix Committed |
Changed in linux-oem-5.14 (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in linux-oem-5.14 (Ubuntu Jammy): | |
status: | New → Invalid |
Changed in linux-oem-5.14 (Ubuntu): | |
status: | New → Invalid |
tags: |
added: verification-done-focal verification-done-jammy removed: verification-needed-focal verification-needed-jammy |
Changed in linux (Ubuntu Jammy): | |
status: | New → Fix Released |
Changed in linux (Ubuntu Focal): | |
status: | New → Invalid |
Changed in hwe-next: | |
status: | New → Fix Released |
Changed in linux-oem-5.17 (Ubuntu): | |
status: | New → Invalid |
Changed in linux (Ubuntu Kinetic): | |
status: | New → Fix Released |
Changed in linux-oem-5.14 (Ubuntu Kinetic): | |
status: | New → Invalid |
Changed in linux-oem-5.17 (Ubuntu Kinetic): | |
status: | New → Invalid |
This fix was requested by the thermald developer Srinivas Pandruvada to support the new version of thermald.