Repository navigation
Merge integration/aurora 1eac5fac into aurora-wip - #1159
Merged
Merged
Conversation
DisplayPort audio over the Type-C ports goes through dpaudio1, which the shared jxxx include enables on every T8103 board, but its only DMA provider, SIO, was enabled and aliased on the Mac mini alone. On the MacBook Air, MacBook Pro and both iMacs dpaudio1 therefore could not get its channel and never probed. Move the sio alias and the SIO enable into t8103-jxxx.dtsi, as t8112-jxxx.dtsi already does. The bootloader finds the node through the alias to fill in the SIO firmware parameters. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
Both iMacs enable the SEP but, unlike the MacBook Air and MacBook Pro, do not alias it. The bootloader finds the SEP through the sep alias to reserve its firmware memory and hand the node the sepfw region the driver needs to boot it, so on the iMacs the enabled SEP could never probe. Add the alias. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
…ties The Mac mini disabled the DCP and set a one-entry display iommus list, then enabled the DCP and set the full two-entry list further down the same file. Drop the dead first overrides. The compiled tree does not change. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The T8112 device tree uses apple,t8112-sio with the apple,sio fallback. Every SIO node also takes its pmgr reset through resets; document it. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
… t8112 The T8112 crossbars are compatible with the T8103 ones and the device tree lists apple,t8103-display-crossbar as their fallback. Allow that pair. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The M1 and M2 GPU nodes list an SoC-specific compatible ahead of the generation one: apple,agx-t8103 with apple,agx-g13g and apple,agx-t8112 with apple,agx-g14g. Document both pairs. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
Add the MacBook Air (j313, j413, j415), iMac (j456, j457), Mac mini (j473) and 13-inch MacBook Pro (j493) compatibles their device trees already use. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
…s5770l The Apple boards with a TAS5770L describe it as "ti,tas5770l", "ti,tas2770", and the driver binds through the ti,tas2770 fallback. Allow that pair besides the single compatibles. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The M1 and M2 Pro/Max/Ultra device trees describe a DisplayPort audio interface per display coprocessor, but no schema matched "apple,t6000-dpaudio" or "apple,t6020-dpaudio", so dtbs_check reported every node. Document them: a register window the host does not touch, one SIO DMA channel, one power domain and a graph port to the DCP that owns the audio service. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
"reset-domains" is not a documented property and nothing reads it: the DisplayPort audio driver only uses the DMA channel, the power domain and the graph port. Remove it so the nodes match the binding. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The die 0 neural engine of the M1 Ultra is the block the M1 Pro and M1 Max use, at the same addresses, with the same DARTs and power states. t6001.dtsi enables it on those, but t6002.dtsi does not include that file, so the ANE stayed disabled on the Mac Studio (M1 Ultra). Enable it in the same way, including the die 0 PMP report window for its clock-level requests. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The M2 Pro/Max/Ultra device trees use "apple,t6020-sio", "apple,t6020-pmp-v2", "apple,t6020-pmp-v2-report-entry" and "apple,t6020-pcie-ge", none of which the bindings list. Add them with the fallbacks the device trees already carry: "apple,sio", "apple,t6000-pmp-v2", "apple,t6000-pmp-v2-report-entry" and "apple,t6020-pcie". Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The T6020 power states, I2C, pinctrl, SPI, watchdog, MCA, NCO, NVMe, SMC, SPMI and ADMAC nodes listed a third, generic "apple,*" compatible after their "apple,t8103-*" fallback. The bindings only allow the two-entry form, so dtbs_check reported around 370 warnings per board, most of them for the 245 power states. Drop the generic entry, as the T6041 and T8122 trees already do. Give the AOP ADMAC the "apple,t8103-admac" fallback the other ADMAC has. The drivers match the T8103 fallbacks with the same data. The loader appends the generic compatibles again on T602x machines for older kernels, so the device tree the kernel sees does not change. Also drop the unused "reset-domains" from the DisplayPort audio nodes. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The die 0 neural engine of the M2 Ultra matches the M2 Pro and M2 Max one and the driver has T6022 match data, but only t6021.dtsi enabled it, so it stayed disabled on the Mac Studio and Mac Pro (M2 Ultra). Enable it with its mailbox and DARTs. The Mac Pro also drives its die 0 HDMI port with dpaudio1, whose DMA comes from the die 0 SIO. The loader sets up and enables SIO only for the "sio" and "sio1" aliases, and J180 only had "sio1" (die 1), so that audio interface could never get its channel. Alias the die 0 SIO as "sio". Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
# Conflicts: # Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml # Documentation/devicetree/bindings/sound/apple,macaudio.yaml
Some SMC-controlled enables are not plain gPxx GPIOs: they are written as a key with a per-line command template (a lowercase gp bank on T6040, pcIO lines on J700). Describe them with apple,output-templates and drive them through the same gpio_chip, reading back the SMC output latch where the key supports it. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The NFC controller with embedded secure element on Apple silicon Macs sits on its own SPMI bus and carries NCI packets through a non-incrementing data register. Add a transport that powers it through its VEN line, checks the follower identity with side-effect-free register reads, registers it with the NCI core and parks VEN low whenever the device is closed, which is the controller's lowest power state. The NCI core reads the controller identity on first open. No secure element commands are implemented. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
…nd J700 aop-spmi0 is driven by the application processor (there is no AOP ownership handoff), so give it its interrupt controller and parent interrupt, add the T8140 node, and describe the Stockholm NFC/SE controller at SID 9 with its VEN line on the J616s and J700. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
Use the separate receive FIFO, drain its two-byte wire footer, and report the native diagnostic status registers on a transport error. Drop the unsupported CRC-CCITT transform. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The corrected wire transport drains its opaque footer without applying a CRC transform, so CRC_CCITT is no longer needed. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The follower identity register of a model 96 controller reads 0x19 and its IRQ-offset register reads the base of the follower's interrupt block, 0xe0; neither is the SPMI address. Check them against the model data instead of the follower's SID. Seen on the J616s with the controller powered. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
On the J616s a model 96 controller delivers each NCI packet as header and payload only. Reading two more bytes runs into the next packet or past the end of the FIFO, fails the SPMI frame parity check and raises the transport error interrupt. Drain nothing after the payload. Tested on J616s (trial device tree, fleet17 base): CORE_RESET and CORE_INIT complete, the NCI core reports NCI 1.0 and the controller identity, no parity or transport errors, VEN parked low on close. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
The J713 and J715 entries sit under the M4 platforms but their comments name the M3. Name the M4. Signed-off-by: Diljit Singh <hey@djdev.me>
The J715 (MacBook Air 15-inch, M4) has a speaker card and a headphone jack card of its own, like the J713. Signed-off-by: Diljit Singh <hey@djdev.me>
The J715 (MacBook Air 15-inch, M4) is the J713 board with a larger panel and six speaker amps. Its ADT matches the J713's in the PMGR device and power-state tables, the DARTs and their streams, the PMP, MTP, SEP and Mesa wiring, so the same boot loader handoff applies. Add apple_t8132_air() for the two boards, and use it where the T8132 support only qualifies the J713: the PMP display and GPU vote bridge, the PMP telemetry, the dcpext route gate, the MTP RTKit preservation, the legacy-loader platform handoff and its KUnit test, and the SEP Touch ID profile. Signed-off-by: Diljit Singh <hey@djdev.me>
The J715 shares the J713's loader handoff and PMGR tables. Require the board's power-domain policy and use the T8132 PMP report path on it too. Signed-off-by: Diljit Singh <hey@djdev.me>
The J715's display, external display, radio and MTP DARTs are the J713's: the same addresses and streams, and the same live state at boot. Give them the J713 handling, and accept the J715 target-type in the retained display handoff's ADT check. Signed-off-by: Diljit Singh <hey@djdev.me>
The J715 ADT maps the radio to DART streams 1 and 2 as on the J713, so accept its apple,managed-sids. Signed-off-by: Diljit Singh <hey@djdev.me>
The J715 ADT's /amfm/function-reg_on is the J713's pKW4("gP13",
0x00800000). Use the same write-only handling for it, and cover the
J715 in the host test.
Signed-off-by: Diljit Singh <hey@djdev.me>
pull_request.base.sha is the base tip recorded when the PR was opened, so a PR opened before newer integration merges was compared against an old tree and blamed for every warning those merges changed (97 'new' on #1030). Use the merge commit's first parent, which is the base tip the PR is actually merged into. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
Retain the native error and event bank resources for future qualified T8140 status decoding. Reuse the generic EDAC binding with SoC-specific resource counts. Both instances remain disabled; preserve the current qualified T6041 NI register contract. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
ci: compare device trees against the current base branch tip
nfc: Apple Stockholm NFC/SE controller: identity and power-off on the AOP SPMI bus
…r-quiet Merge train 11-08: BOOTLOG2 b2t1 one-shots (Neo 00:01, M2 23:46): the missing-supplier dev_err is gone from the Neo boot (-p 3 empty on the integration DTB), and the WARN for non-sync-state links is unchanged, so the only behaviour change is that sync-state-only links stop logging at err level. Host-tests CI green.
Merge train 11-08: mechanical system_wq -> system_percpu_wq (the same per-CPU workqueue under its non-deprecated name) in btcentauri and t8132_ext_drm. Built in BOOTLOG2's b2t1 (W=1 clean) and booted on the Neo and the M2 with no change; host-tests CI green.
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
On the Neo (T8140) nothing raises the memory controller (DCS) or the SoC fabric while the Neural Engine runs: the CLPC only follows CPU and GPU load. A MobileNetV1 EXECUTE then takes 2.3-2.5 ms. With DCS 4 and fabric 3, the floor the GPU already gets for streaming work, it takes 1.25-1.31 ms; the engine time drops from 1.8-2.0 ms to about 1.0 ms. Add an ANE input next to the host GPU one. A driver gets a client with apple_clpc_ane_get() and reports work in flight with apple_clpc_ane_set_active(). The client has its own reference, so a late publication or put after the CLPC went away is harmless, and getting it never defers: without a bound CLPC the ANE runs without the floor. An idle-to-active edge samples at once, a request shorter than the sampling period is latched until the next sample, and the per-SoC ANE rail states then merge with the CPU and GPU demand under the usual hold. T8140 asks for DCS 4 and fabric 3. Other SoCs have no ANE input. A root-only debugfs file, ane_states, overrides the two states (clamped to each rail) for measurements, and the status file reports the ANE input and reason bit 32. KUnit covers demand and hold, short requests, provider removal, cold wake, a missing provider and the state overrides. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
Get the CLPC ANE client at the program stage and report each EXECUTE through the session's busy hook, so the CLPC raises DRAM and the SoC fabric while the H17 engine works. Without a CLPC nothing changes. On the Neo this takes MobileNetV1 from 2.31-2.50 ms to 1.25-1.31 ms per EXECUTE (300 requests, three rounds, ane_states 0 0 against 4 3). Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
Merge train 11-08: after DT2's split (SIO enables moved to draft #1114) this is only the iMac sep aliases; the M2 j413 DTB is byte-identical. dt-checks (0 new warnings) and host-tests CI green.
Merge train 11-08: after DT2's split (Ultra ANE/SIO enables moved to draft #1115) this is the dpaudio binding, the t602x compatibles and the dpaudio reset-domains removal. The j316s DTB boots on our M1 Pro with FLEET4's regression suite clean and is now its committed boot.bin DTB. dt-checks (0 new) and host-tests CI green.
Preserve the established GPU path, named-resource order and loader reservation forms. Put new physical resource descriptors under /soc. Waive unqualified native firmware objects instead of representing them as root platform devices, and remove their unused bindings. Keep routed existing interfaces and the real ADMAC pair-count correction. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
Split the CORE_RESET and CORE_INIT response parsing out of the identity read and test it with the responses the J616s and J700 controllers returned, a reader-class response with an RF interface list, every truncation of the init response, a failed status, an RF interface count that runs past the payload and an NCI 2.x style reset response. No functional change for the hardware. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
…ck-20261107 Merge train 11-08. Test kernel 7.3.0-aurora-mtrl1 (integration 43c790f + this check + #842/#1088/#1091) one-shot on the Neo: AV1 1080p 747 fps and 4K 189 fps decode bit-exact against software (fleet23 base 747/189), VP9/H.264 bit-exact, GStreamer v4l2slav1dec 1080p/4K clean, 0 tile refusals on valid streams, 0 AVD errors, 0 AVC, CTXR boot verify PASS. Build warnings = fleet22, W=1 avd 0, run-host-tests --only avd 12/12, CI green. M4 Max evidence: AxxzyWasTaken's J616C (Chromium 8-tile/1-entry case).
accel/ane: admit the J616C 26.6.2 preload
media: apple: avd: don't reset the T6041 decoder in recovery
The PMP graph and supplier tests and the dwc3 teardown test compile production code that now asks apple_t8132_air() instead of matching apple,j713. Give their mocks the same helper, built on their of_machine_is_compatible() stubs. Signed-off-by: Diljit Singh <hey@djdev.me>
nfc: apple-stockholm: KUnit tests for the identity parsing
arm64: dts: apple: t8132: Add the J715 (MacBook Air 15-inch, M4) board
The CLPC host test compiles the driver's sample path from clpc.c, which now also calls apple_clpc_ane_input_demand(). Extract that helper too, stub its client and lock, and check that T8140 ANE work votes DRAM 4 and fabric 3 (0x34) with reason bit 32, that a request shorter than one sample is still seen once, and that the vote expires after the hold. A new negative control drops the ANE demand and must fail. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
…ss-audit-dts-prs-j616s-t6041-and-ne Merge train 11-08: DT2 ready (dt-checks 119 DTBs 0 new / 9 removed). Neo: aura-try Stage 2 trial with the integration + this j700 DTB, FLEET4 suite vs fleet24, no regression. J616s: only disabled nodes and bindings; our check of the merged tree finds 29 new j616s nodes and none effectively enabled, 43 new j700 nodes and none enabled, W=1 j616s 13 = base 13, j700 5 = base 5. The J616s Stage 2 trial follows after 05:00.
Merge train 11-08: ANEX hardware A/B on the Neo (test kernel fleet23anex2, one-shot, silent): MobileNetV1 p50 2.3-2.5 ms -> 1.25-1.31 ms with the CLPC ANE floor (DCS 4 / fabric 3), gate open/close 42-66/24-27 us -> 0.1/0.0 us, top-1 correct, no new error lines, SELinux enforcing. KUnit CLPC 9/9, ANE 213/213 x2, W=1 0, checkpatch 0. The host demand-test fixture now covers the ANE input; CI host-tests/rust-build/source green. Clean merge on integration 5884327.
Brings aurora-wip up to fleet25: DT descriptions (#1029, #1030, #1112), the J715 board (#1129), Stockholm NFC (#1042, #1136), the AV1 tile check (#1100), the M4 Max ANE profile and AVD quirk (#1088, #1091), boot-log fixes (#1103, #1104) and the Neo ANE memory floor (#1137). Conflicts: macaudio.c and apple,macaudio.yaml, where aurora-wip's J813 and J873 entries and integration's J715 entries were added at the same spot. Keep all of them. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
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.
Brings aurora-wip up to integration/aurora 1eac5fa (fleet25, qualified on the M2 and the Neo) with one merge commit (fd3a28b, tree bef10333).
One conflict, resolved by keeping both sides: aurora-wip's J813/J873 entries and integration's J715 entries (#1129) were added at the same place in
sound/soc/apple/macaudio.c(match table) andapple,macaudio.yaml(compatible list).What integration adds since #1093: DT descriptions (#1029, #1030, #1112), the J715 board, Stockholm NFC (#1042), the AV1 tile check (#1100), the M4 Max ANE profile and AVD quirk (#1088, #1091), boot-log fixes (#1103, #1104) and the Neo ANE memory floor (#1137).
Gate (buildbox, exact merge tree): fleet config Image + modules + dtbs, run-host-tests, apple-dcp host selftests. Results are posted here before merging.
🤖 Generated with Claude Code