Skip to content

soc: apple: clpc: T6041 Low Power mode - #1727

Merged
DjDeveloperr merged 1 commit into
aurora-silicon:integration/aurorafrom
AxxzyWasTaken:t6041-low-power
Nov 12, 2026
Merged

DjDeveloperr merged 1 commit into
aurora-silicon:integration/aurorafrom
AxxzyWasTaken:t6041-low-power

Conversation

@AxxzyWasTaken

Copy link
Copy Markdown
Contributor

Gives the M4 Max (T6041) the low-power platform profile that T6050 got in #1656: macOS's Low Power mode as low-power, next to balanced and performance. power-profiles-daemon picks it up as power-saver.

What it does

  • The J616c's ADT has macOS's Low Power mode CPU ceiling, cpu-low-power-frequency-max = 2808 (MHz), the same value as T6050's. In low-power every cluster stays at or below the first table frequency at or above it: 2868 MHz on both P clusters. The E cluster tops out at 2592 MHz, below the ceiling, so it is unchanged.
  • No package power target. On T6050 the 15 W target comes from measuring macOS in that mode; I have no such measurement for the M4 Max, so low_power_mw stays 0. The node has no apple,smc phandle either, so the profile is the ceiling only.
  • The M4 Pro uses the same CLPC table and the same apple,t6041-clpc compatible, and I haven't checked its ADT value. So the ceiling is gated on the machine compatible (new low_power_machine field, "apple,t6041"), the way the ANE cluster floor is gated on "apple,t6040". The M4 Pro gets no profile from this.

Tested

J616c (MacBook Pro 16" M4 Max), 26.6.2 firmware, at EL2 through aura, 12 Nov, on my daily kernel (this commit on integration/aurora c6e08489 with #1664 and #1369):

  • /sys/class/platform-profile/platform-profile-0: name apple-clpc, choices low-power balanced performance; powerprofilesctl lists power-saver.
  • In low-power, scaling_max_freq is 2868000 / 2592000 / 2868000; back to 4512000 / 2592000 / 4512000 in balanced.
  • An all-core spin for 14 s, on battery, SMC "Total System Power" after 7 and 10 s:
Profile System power P clusters
balanced 76.1 / 76.8 W 4.4-4.5 GHz
low-power 42.3 / 42.1 W 2.868 GHz

Idle is 5.2 W either way.

On this branch (the commit alone on current integration/aurora 028d7624): clpc.o builds with LLVM=1 W=1 with no warnings, and tools/asahi/clpc-gpu-demand-tests.py passes. Not booted alone, and not tested on a J614c or an M4 Pro.

Offer the M4 Max the low-power platform profile T6050 has. Its ADT
carries macOS's Low Power mode CPU ceiling, cpu-low-power-frequency-max
= 2808 MHz, the same value as T6050's: in low-power every cluster stays
at or below the first table frequency at or above it (2868 MHz on the P
clusters; the E cluster tops out below it). macOS's package power target
in that mode is not measured on this SoC, so the profile has no power
target here, and with no apple,smc phandle it reads no package power.

The M4 Pro shares this CLPC table and compatible, and its value is not
checked, so the ceiling is gated on the machine compatible, as the ANE
cluster floor already is.

Signed-off-by: AxxzyWasTaken <axxzytte@gmail.com>

@DjDeveloperr DjDeveloperr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@DjDeveloperr
DjDeveloperr merged commit b822815 into aurora-silicon:integration/aurora Nov 12, 2026
7 checks passed

@RyanTheTide RyanTheTide left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked the probe gate and every low_power_khz use. Boards other than T6041 keep their old values, and T6050 is unchanged. Thanks for the power numbers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants