adjustor: add Intel RAPL TDP support for ONEXPLAYER 3 - #338
Open
Domessy wants to merge 1 commit into
Open
Conversation
Add a DMI-gated Intel RAPL backend for the Intel ONEXPLAYER 3. The device exposes a 25 W MSR PL1 under Linux while supporting an OEM 8-35 W TDP range. Change only the PL1 power field in MSR_PKG_POWER_LIMIT while preserving PL2 and all other fields. Derive the RAPL unit from MSR_RAPL_POWER_UNIT, check the package-limit lock, verify writes, reapply the selected limit after power-state changes, and expose an 8-35 W TDP range. Validated on Intel Panther Lake / Arc B390 at 30 W and 35 W.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background
I am an ONEXPLAYER 3 user and hardware enthusiast, rather than a software
developer.
While testing this device, I noticed that TDP control was not
behaving as expected under Linux.
The device was limited to a 25 W sustained PL1 power limit. This resulted in lower
performance compared with other devices using the same CPU platform.
Hardware investigation
The ONEXPLAYER 3 is equipped with an Intel Panther Lake processor and Intel
Arc B390 graphics.
After investigating the power management interfaces exposed by the platform,
Intel RAPL controls were found to be available and capable of adjusting the
package power limit.
With this adjustment:
running at equivalent power levels
Implementation details
The device exposes a 25 W MSR PL1 limit under Linux while supporting an
OEM 8-35 W TDP range.
The implementation only modifies the PL1 power field in
MSR_PKG_POWER_LIMIT while preserving PL2 and all unrelated fields.
The RAPL power unit is detected dynamically from MSR_RAPL_POWER_UNIT.
The implementation checks the package limit lock state, verifies writes,
and reapplies the selected limit after power-state changes.
The TDP range exposed through HHD is an adjustable 8-35 W slider.
Validation
Validated on:
Note
AI tools were used as a coding assistant during development. All hardware
investigation, testing, and validation were performed on real hardware.
Feedback on the approach is welcome.