Repository navigation
soc: apple: aop: start AFK endpoints 0x2f and 0x30 for the 27.2 AOP firmware (K116s) - #1645
Conversation
The K116s AOP firmware (27.2, AppleAOPAudioFirmware-610.18) advertises
AFK endpoints 0x20-0x27 and 0x29-0x30. Its boot stage "setup_endpoints"
brings them up one at a time and waits for the host's STARTEP on each
("waiting for endpoint enable, _routing=0x2f" in its log, where the value
is route << 16 | endpoint). The driver only knew 0x20-0x2e, so the
firmware waited for 0x2f (als-temp-2) forever, never reached its
system_ready and services_ready stages and announced no EPIC service: no
aop-audio, so no sound card, and no sensors.
Cover 0x2f and 0x30 (devmotion3). The firmware then announces its 20
services and the card registers.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
0e24ced to
367e36d
Compare
RyanTheTide
left a comment
There was a problem hiding this comment.
Endpoint start, stop and sleep all key off the count, and has_endpoint() keeps older firmware on the endpoints it advertises. The masks are u32, so 17 endpoints fit. Approving after a run on our M1/M2/M4/A18 machines.
|
Interim results. Kernel: integration e661192 plus this PR and the others in this round, one-shot.
The M2 and A18 Pro runs are still queued. |
|
M2 results (T8112 MacBook Air, j413), kernel integration e661192 plus this PR and the others in this round, one-shot, against the production kernel on the same base: AOP comes up ("AOP IS READY") with no AOP/AFK warnings, HPAI microphone capture works before and after 3 s2idle cycles, and AOP stays clean after each wake. 0 AVC, 0 kernel errors. With the M4 Pro and M1 Pro runs posted earlier, the A18 Pro run is the one still to come. |
DjDeveloperr
left a comment
There was a problem hiding this comment.
Approving. start_afk() already skips endpoints the firmware's RTKit map doesn't advertise, so raising the ceiling to 0x30 only adds 0x2f/0x30 where a firmware lists them. The per-endpoint tables are sized by the constant, the u32 masks cover 17 entries, and the explicit T8140 endpoint lists are unchanged. It merges cleanly on current integration/aurora; I updated the branch so CI runs against the current base. The hardware evidence in the thread covers this exact change: K116s announces its services and registers the sound card, and M1 Pro, M2 and M4 Pro show no AOP regressions. This also fixes the T6050 stall @joshuaswarren reported in #1850.
Follow-up idea, not for this PR: warn when the map advertises an app endpoint above the table, so the next firmware that grows its map fails loudly instead of stalling.
03f060b
into
aurora-silicon:integration/aurora
Base: integration/aurora (050f6a5). One commit.
The 27.2 AOP firmware (AppleAOPAudioFirmware-610.18, K116s) advertises AFK endpoints 0x20-0x27 and 0x29-0x30. Its boot stage
setup_endpointsbrings them up one at a time and waits for the host's STARTEP on each. The driver started only 0x20-0x2e, so the firmware waited for 0x2f forever ("waiting for endpoint enable, _routing=0x2f" in its log). It never reachedsystem_ready/services_readyand announced no EPIC service at all: no aop-audio, so no sound card, and no sensors.AFK_ENDPOINT_COUNTgoes from 0xf to 0x11.start_afk()still skips an endpoint the firmware does not advertise (has_endpoint()), so older firmware with fewer endpoints is unaffected. Every T6050 machine that moves to the 27.2 stub (J714s and others) needs this.Tested by Jens on the K116s (27.2, 26B8125): the firmware announces its 20 services and the sound card registers.
Build: arm64, LLVM 22, Rust;
drivers/soc/apple/with Jens's K116s config, no new warnings.Authorship. Jens Axboe wrote these commits and runs them on his K116s (16-inch MacBook Pro, M5 Pro, OLED; Mac17,12; stub macOS 27.2 26B8125). They come from his K116s bundle of 2026-11-11 (integration/aurora 254c9bd plus 34 commits, kernel 7.3.0 running on the machine). I rebased them onto integration/aurora 050f6a5 and removed the LLM co-author and session trailers. Jens has given his OK: the commits carry his Signed-off-by.