Repository navigation
mux: apple-display-crossbar: T6041 (M4 Pro/Max) per-ATC crossbar - #435
RyanTheTide merged 2 commits into
Conversation
RyanTheTide
left a comment
There was a problem hiding this comment.
I checked the match data, the T6030 route and link sequence, the nine UFP states and resume handling. The new flags preserve the old matches and keep the T6041 path separate.
Neither ccfd11851710 nor c9daf2292417 has a Signed-off-by. Please provide your own sign-off for both commits. I have kept your commits and authorship intact.
The combined test tree has passed the apple-dcp host tests, 63/63, and the Asahi KUnit tests, 86/86. The universal WERROR builds are still running, so those are not passed yet. This is not merge-ready while the sign-offs are missing.
|
Final software gates now pass on the combined tree containing these heads and the proposed common config correction in #438. Both defconfig plus asahi.config and the Fedora-base recipe build Image, modules and DTBs with WERROR enabled. The Fedora recipe also covers KUNIT=m. Every requested asahi.config setting survives resolution. Asahi KUnit passes 86/86 and apple-dcp host tests pass 63/63. The targeted J713/J616s binding and DTB checks have no diagnostics. The code and binding gates pass. The original two commits still need contributor sign-offs, so this remains not merge-ready. The common-config review in #438 also remains outstanding. |
|
Final qualification for c9daf229241755ed68549fb827229a23a2606986. The combined test source is 031f7dec92a1bef6b72509b08c5c597f50474adb, tree 36854d3a72e4efdf2c352166498ab436adaf3c48. Both defconfig plus asahi.config and the Fedora-base shipping recipe pass the full Image/modules/DTB build with WERROR enabled. Every requested fragment value survives olddefconfig. Asahi KUnit passes 86/86, apple-dcp host tests pass 63/63, and targeted J713/J616s binding/DTB checks have no diagnostics. Strict source-style checks pass; commit sign-offs are checked separately. The attribution audit found no new material Gravity implementation blocks. Existing GPL-2.0-only Cody Ho and Niklas Sheth credit is preserved. The T6041 crossbar code passes review, preserving older SoCs. Both original commits still lack contributor Signed-off-by. Not merge-ready until the author resolves those sign-offs and #438 receives the required review. The M4-only runtime follows the agreed review/build-only scope. |
T6040/T6041 (M4 Pro/Max) carry one display crossbar per Type-C or HDMI PHY (ADT atcN-dpxbar, "atc-dpxbar,t604x"), 0x4000 bytes each, which routes the DISPEXT pipes and the DP IN ports of that ATC. Add the compatible. Signed-off-by: František Balázsy <frantisekbalazsy@gmail.com>
T6040/T6041 (M4 Pro/Max) have one 0x4000-byte display crossbar per ATC instead of the single SoC crossbar of T6020. The block follows the T6030 compact register map and flow: the status words at 0x804/0x810/0x81c mirror 0x004/0x014/0x024 and 0x808/0x818 mirror 0x00c/0x020, while the T8142/T6050-layout writes to 0x34/0x38/0x3c do not hold (register dumps on a J616s). It has no tunable register. Select the T6030 flow from the match data instead of the machine compatible, skip the UNK_TUNABLE write for this block and describe the nine UFP endpoints the ADT lists (dispext0-3, scodec0 and the DP IN ports). Tested on a MacBook Pro M4 Pro (J616s): HDMI through the ATC3 crossbar (dcpext0, 3840x2160@60) and USB-C DisplayPort through the ATC0-2 crossbars (dcpext1, 5120x1440@120 and 3840x2160@120 with DSC over HBR3), including replug and switching between the three Type-C ports. Signed-off-by: František Balázsy <frantisekbalazsy@gmail.com>
c9daf22 to
730ffa5
Compare
RyanTheTide
left a comment
There was a problem hiding this comment.
The sign-offs are in, and the trees match what was qualified.
Gates on integration/aurora 653c489 with #394, #435, #436, #446 (the carried #445), #427 and #428 merged (test tree 4582b72703d5), without #438:
- Universal recipe (Fedora asahi base, asahi.config, olddefconfig, LLVM=1, CONFIG_DRM_WERROR=y): Image, modules and DTBs build with no warnings, and all 130 asahi.config settings survive.
- KUnit asahi 84/84, drm/apple display set 212/212.
- apple-dcp host selftests 62/63, the same as the base (dwc3-teardown fails there too).
- dt_binding_check and CHECK_DTBS clean for the touched bindings and the J616s, J713, J700, M1 and M2 DTBs.
J616s (M4 Pro, 26.6.2 firmware): this kernel boots like the daily one. Wi-Fi, Bluetooth, audio devices, PMP, NVMe, cpufreq and cpuidle all match, with no DART faults or SErrors and no IRQ-safe genpd warnings. With the T6041 display handoff it also drives the internal panel. The Neo smoke boot of the same image is queued.
T6040/T6041 (M4 Pro/Max) have one 0x4000-byte display crossbar per ATC (ADT
atcN-dpxbar,atc-dpxbar,t604x) instead of the single SoC crossbar of T6020. The block follows the T6030 compact register map and flow: the status words at 0x804/0x810/0x81c mirror 0x004/0x014/0x024 and 0x808/0x818 mirror 0x00c/0x020, while writes in the T8142/T6050 layout (0x34/0x38/0x3c, tried first from #248) do not hold. There is no tunable register. The ADT lists nine UFP endpoints (dispext0-3, scodec0 and the DP IN ports).Change. Two commits:
dt-bindings: mux: apple,display-crossbar: add the T6041 per-ATC crossbar— the compatible.mux: apple-display-crossbar: support the T6041 per-ATC crossbar— match dataapple_dpxbar_hw_t6041: T6030 flow selected from the match data instead of the machine compatible (t6030_flow), noUNK_TUNABLEwrite (no_tunable),n_ufp = 9. Existing SoCs are unchanged.The J616s device-tree nodes (four crossbars) and the rest of the J616s external display series (T6040 DP PHY, dcpext0/1, DISPEXT power chains) follow separately; the crossbar nodes need the DP PHY and the loader hand-off of the dcpext firmware memory to be useful.
How tested (MacBook Pro M4 Pro, J616s, DCP firmware 26.6.2), kernel 7.3.0-m4.72 =
integration/aurora420a1c8 + the J616s display series with exactly this crossbar change:drivers/mux/apple-display-crossbar.oonintegration/aurora420a1c8checkpatch.pl --stricton both patchesmake dt_binding_check DT_SCHEMA_FILES=…/apple,display-crossbar.yaml(dtschema 2026.9, yamllint)