Re: [PATCH v9 00/22] Synopsys DisplayPort Controller improvements for Rockchip platforms
Igor Paunovic <[email protected]> Tue, 4 Aug 2026 15:56:40 +0200
| Newsgroups | org.infradead.lists.linux-rockchip,org.freedesktop.lists.dri-devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Sebastian, You wrote in the cover letter that parts of this are untested, and asked for comments on the out-of-band hotplug callback. I have been running this series on real hardware, so here is a report from the USB-C DP AltMode side. Tested-by: Igor Paunovic <[email protected]> # RK3588, Orange Pi 5 Plus, USB-C DP AltMode Hardware and base ----------------- Board: Orange Pi 5 Plus (RK3588) Kernel: v7.2-rc6 + rockchip-devel, pinned at 8c70065a3207, which carries this series at v9 - including 03/22 "Fix error handling in dw_dp_link_enable()", so this is v9 and not an earlier respin. No local changes on top of any dw-dp patch. PHY: your rockchip-usbdp v13 series, from the same branch Sink: 4K120-capable display, reached both directly and through a USB-C dock, DP AltMode over the Type-C port Results ------- USB-C DP AltMode works. I get 4K120 on the Type-C output, which on this board is a third display output that mainline does not otherwise light up at all. The mode comes up at dclk 594 MHz, which is what 4:2:0 should give at that resolution (two pixels per clock), and it survives a live modeset - I can go from 60 Hz to 120 Hz on a running desktop without unplugging the cable and without dropping to a black screen. That last part is the change I want to highlight. On my previous kernel, based on v7.0 without this series and without the usbdp rework, touching the cable while the link was up was something I had to actively avoid, and a live 60->120 modeset gave me a black screen that needed a hard reset to recover from. Both of those are gone here. Whatever the combination of the follow-up bridge work and the PHY re-init on orientation change is doing, from where I sit it is the difference between "usable" and "do not touch". I have not exercised the DP audio path (22/22) yet, and I have no board with a native DP connector or an HDMI bridge downstream, so I cannot say anything about the code path you flagged as untested. On the out-of-band HPD callback ------------------------------- You asked for comments, and I have a data point rather than a design opinion. On this board the AUX channel is dead at boot until something kicks the Type-C port controller. The cause is on the firmware side rather than yours: the board boots through EDK2, which has no TCPM, so it hands Linux a PHY that was never brought into a sane state and a port controller that has never negotiated. Nothing on the DP side can discover the sink until fusb302 is poked, after which the link comes up normally and stays up. I mention it because it is exactly the shape of event your callback is for: the hotplug information arrives from outside the DP block, late, and the DP side had no way of knowing. A separate callback rather than reusing hotplug_notify seems right to me for that reason - the two really are different sources, and only one of them is something the DP block could ever have observed itself. I cannot tell you whether there is a cleaner mechanism, but I can tell you that the separation matches how the hardware actually behaves here. One neighbouring finding ------------------------ While bringing this up I hit a bug that is not in your series but sits right next to it, so it may be useful to you and to Cristian. On RK3588, VP2's dclk was parented to the HDMI PHY clock. When the HDMI PHY is not powered - which is the normal case if you are only driving the Type-C output - that parent is dead, and DP gets no usable pixel clock: nothing above 640x480 comes up. Re-parenting VP2's dclk to V0PLL in DT fixes it, and that is what the 4K120 above is running on. I see Cristian's "Consolidate HDMI PHY PLL clock parent switch" (v3 09/14 of the DW HDMI QP YUV series) touches the same parent-switch logic from the driver side. I have not yet worked out whether that series makes the DT change unnecessary, or whether the two are complementary. I will work that out before I send anything, but I would rather flag it here than have two people discover it separately. Happy to run any specific case you want covered, or to retest on later revisions. Thanks for the series - it turns a port that did nothing on mainline into my main display output. Igor _______________________________________________ Linux-rockchip mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-rockchip