Repository navigation
ASoC: apple: t8152-aop-audio: Match the T6050 AOP audio node (J714c) - #1410
Conversation
The binding and the J714c device tree name the AOP audio service "apple,t6050-aop-audio", but the driver matched only t8142 and t8152, so that node never bound. Add a T6050 hardware config. The J714c ADT audio-speaker stream header (DeviceTree.j714cap) has the same layout as J813's with six amplifiers in place of four: 6 speaker slots and 12 sense words (V, I per amplifier), at 16 bits, on slots vsense 0,4,..20 / isense 2,6,..22. J813's header has 4 slots, 8 sense words and vsense 0..12 / isense 2..14. HW_CFG_T8152 (one amplifier, two sense words) would expose the wrong channel counts, so it is not reused. The sense width and the sense realignment are taken from J813's config by analogy; they are not tested on a J714c. Tested: builds as a module with Rust enabled (clang 19, arm64 defconfig plus CONFIG_RUST, CONFIG_SND_SOC_APPLE_T8152_AOP_AUDIO=m); the object carries the apple,t6050-aop-audio match string. Not tested: no J714c boot, no sound.
Codex Review Summary: ❌ FailedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
The account paying for this security review has reached its Codex usage limits. The payer can check the Codex usage dashboard. For personal accounts, using credits requires enabling “Use credits for security reviews” in Code review settings. If you do not manage the paying account, contact this repository's admins. |
|
GREEN at 5ef1b8c opencode-go/glm-5.3-flash as routed by Main (model id unverifiable); implementer model unverified. Checked the HwConfig numbers against ADT dumps. The J714c audio-speaker speaker-config has six entries with rx_slot 0-5, vsense_slot = 4N (0..20) and isense_slot = 4N+2 (2..22): six amps, V-before-I, twelve sense words, and the amps are sn012776. The J813 speaker-config is the same pattern at four amps (vsense 0,4,8,12 / isense 2,6,10,14), matching HW_CFG_T8142. The iop audio-data reg blobs also align: J714c carries 0x0c/0x06/0x0c (12 sense words, 6 amp slots, 12) where J813 carries 0x08/0x04/0x08, with 0x10 (16-bit sense) and the remaining header bytes identical, which directly verifies the 6-slots/12-words doc comment. No code path assumes four amps: the channels only feed channels_min/max; the single literal-4 (hw_params' min(channels, 4) window) is the apple-admac BUS_WIDTH constraint (the DMA driver accepts 0/1/2/4 words and -EINVAL otherwise, and mca.c uses the same cap for much wider TDM streams, with J813 already running an 8-word RX through it); the TDM slot callback ignores counts since the firmware owns the serializers. Not run: hardware. |
Audio piece 2 for the 14-inch M5 Max (J714c): make the AOP audio driver match the T6050 node. Piece 1 is #1408 (the six speaker amplifiers, DT only).
Problem
The binding (
apple,t8152-aop-audio.yaml) allows a loneapple,t6050-aop-audio, andt6050-die0.dtsionintegration/aurorauses it. The driver on this branch matches onlyapple,t8142-aop-audioandapple,t8152-aop-audio, so the J714c audio node never binds. The driver exists only on this branch;integration/aurorahas the binding and the DT but no driver.Change
sound/soc/apple/t8152_aop_audio.rs: addHW_CFG_T6050and an OF table entry. One file, one commit.Source of the J714c numbers: the J714c ADT
audio-speakerstream header (regbytes 4-5 and the two masks) and itsspeaker-configcontainers (vsense slots 0,4,..20; isense 2,6,..22). J813's ADT has the same layout with 4 amplifiers (vsense 0..12, isense 2..14).HW_CFG_T8152would give a 1-slot, 2-word sense stream and is not reused.Tested
CONFIG_RUST,CONFIG_SND_SOC_APPLE_T8152_AOP_AUDIO=m). The object carries theapple,t6050-aop-audiomatch string.bindgendoes not preserve empty-struct alignment (the tree asks fortools/aurora-bindgen/build.py). I did not run that build, so the layout check is not covered.Not tested
macaudiolink for the six amplifiers yet, so the driver binds but nothing plays.Scope
No overlap with #1051: it does not touch
t8152_aop_audio.rs.