Skip to content

hwmon: macsmc: SoC die keys for the 15-inch M3 MacBook Air - #464

Open
freber wants to merge 1 commit into
omacom:integration/aurorafrom
freber:j615-soc-die-keys
Open

freber wants to merge 1 commit into
omacom:integration/aurorafrom
freber:j615-soc-die-keys

Conversation

@freber

@freber freber commented Nov 13, 2026

Copy link
Copy Markdown

What

The 15-inch M3 MacBook Air (J615) has no entry in the macsmc-hwmon board table, so it never gets a macsmc_soc_die thermal zone. Without that zone the M3 GPU thermal limit has nothing to read. This line is logged every 30 seconds after boot.

asahi 292400000.gpu: M3: thermal: no SoC die temperature (no SoC die temperature zone), runtime cap 2 (618 MHz) of 2..=2

The J615 uses the same T8122 as the J613, which got its keys in 8fd1bf4. This PR gives the J615 the same twelve die keys. I left out pressure_key because I haven't checked that the J615's SMC has mTPL.

Testing

  • MacBook Air (15-inch, M3, 2024), apple,j615 / apple,t8122, 10 active GPU cores
  • linux-aurora 7.2.11.aurora16-1, m1n1-aurora 1.6.1.aurora23-2, mesa-aurora 26.3.0_devel.20261107, Hyprland 0.57.2
  • OS firmware 14.7, system firmware 26.6.2

I tested the keys without rebuilding the kernel, by reloading the packaged module with them as a parameter.

modprobe macsmc_hwmon soc_die_keys=Tg0D,Tg0P,Tg0X,Tg0b,Tg0j,Tg0v,Te05,Te0P,Tp05,Tp0L,Tp0b,Tp0r
macsmc-hwmon macsmc-hwmon: SoC die temperature zone macsmc_soc_die: hottest of Tg0D Tg0P Tg0X Tg0b Tg0j Tg0v Te05 Te0P Tp05 Tp0L Tp0b Tp0r (12 of 12 listed keys present)
asahi 292400000.gpu: M3: thermal: SoC die temperature 67.3 C from zones: macsmc_soc_die (SMC die sensors)

After that I put the same option in /etc/modprobe.d and booted with asahi.t8122_pstate_cap=5. The zone comes up at boot and reads 58 to 70 C at idle and with light desktop use. The governor uses it (runtime cap 5 (1056 MHz), firmware peak state 5).

Not tested:

  • A kernel built from this branch. I only loaded the packaged module with the parameter.
  • How each Tg key responds under GPU-only load on the J615. I had no GPU benchmark on the machine, so the key choice rests on the J613 measurements in 8fd1bf4.
  • mTPL on the J615.

#164 notes that the J615 isn't qualified for states 6 to 8. This zone is the first thing that work needs. I'll add a comment on that issue.

🤖 Generated with Claude Code

The J615 has no entry in the board table, so the GPU's thermal limit
finds no SoC die temperature zone and holds the runtime cap at state 2
(618 MHz). The J615 is the same T8122 as the J613. Its SMC has all
twelve of the J613's die keys. Loading the module with those keys as
soc_die_keys= reports "12 of 12 listed keys present". The asahi
governor then reads the zone.

Give the J615 the J613's die keys. The pressure key is left out because
mTPL has not been checked on this board.

Tested on a MacBook Air (15-inch, M3, 2024), j615, 10 GPU cores,
linux-aurora 7.2.11.aurora16-1, OS firmware 14.7, system firmware
26.6.2. With the keys set through soc_die_keys=, macsmc_soc_die reads
58 to 70 C at idle and light desktop use. The setting survives reboots
via modprobe.d. The GPU response of the individual Tg keys under load was
not measured on this board.

Assisted-by: Claude:claude-opus-5-5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Fredrik Silfver <1684291+freber@users.noreply.github.com>
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.

1 participant