Repository navigation
Conversation
The T6041 low-power profile takes macOS's Low Power mode CPU ceiling from the J616c's ADT, cpu-low-power-frequency-max = 2808 MHz, for every M4 Max. The 14" J614c's ADT has 2616 MHz there (macOS 26.6.2; the J614s and J616s show the same 14"/16" split), so in power-saver its P clusters run one step higher than macOS lets them. Replace the single machine compatible with a per-machine table, first match wins: the J614c gets 2616 MHz, other T6041 machines keep 2808 MHz. The M4 Pro still gets no profile, and T6050 keeps its ceiling on any machine. A KUnit case checks the J614c, J616c, J575c, J614s and table-less cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Jos Dehaes <jos.dehaes@gmail.com>
The test builds struct apple_clpc_hw and the T6040 table from clpc.c. That table now points at apple_clpc_t6041_low_power, so copy struct apple_clpc_low_power and the table as well. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Jos Dehaes <jos.dehaes@gmail.com>
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.
#1727 gave the M4 Max macOS's Low Power mode, with the CPU ceiling from the J616c's ADT (
cpu-low-power-frequency-max = 2808MHz) for everyapple,t6041machine. The 14" J614c's ADT has 2616 MHz there. The macOS 26.6.2 ADTs show the same 14"/16" split on the M4 Pro (J614s 2616, J616s 2808). So in power-saver the J614c's P clusters ran one table step higher than macOS lets them (2868 instead of 2616 MHz).Change
low_power_machinecompatible becomes a per-machine table, first match wins:apple,j614c2616 MHz, thenapple,t60412808 MHz. So the J616c, and the J575c whose ADT I don't have, keep 2808. The M4 Pro still gets no profile, and T6050 keeps its ceiling on any machine.Testing
J614c (MacBook Pro 14" M4 Max), os-fw 26.6.2, kernel
integration/aurorafdef45b + this commit + #1793, withCONFIG_ACPI=y(see below).apple-clpcofferslow-power balanced performance;powerprofilesctllistspower-saver.scaling_max_freq:Back to balanced restores 4104 MHz.
An all-core spin (16 threads) for 14 s, on battery, SMC "Total System Power" after 7 and 10 s:
Idle is 4.7 W in both. I didn't measure the old 2868 MHz step.
KUnit
clpcon arm64 QEMU: 13 passed, 1 skipped (apple_g17_rx_util_min_test, needsCONFIG_UCLAMP_TASK).Note: the profile only registers with
CONFIG_ACPI_PLATFORM_PROFILE, which lives underdrivers/acpi/and is only built withCONFIG_ACPI=y. The aurora package config has# CONFIG_ACPI is not set, so with the shipped kernel no T6041 or T6050 machine gets a platform profile. For this test I built withCONFIG_ACPI=y; with no ACPI tables, the kernel logs "ACPI: Interpreter disabled" and boots from the DT as before.🤖 Generated with Claude Code