Hi Imre,
You're right, sorry for the noise.
The fix doesn't belong in the kernel here.
I turned on KWin's DRM debug logging and reproduced again on latest drm-tip
with your DSC cap patch.
KWin does react to the disconnect, it just never emits the disabling modeset,
because DP-1 is its only output:
[kernel] 19:57:15.58 [CONNECTOR:512:DP-1] status updated from connected to
disconnected
[kernel] 19:57:15.58 [CONNECTOR:512:DP-1] generating connector hotplug event
[kwin] 19:57:15 Received change event for monitored drm device
"/dev/dri/card0"
[kwin] 19:57:15 Removing output KWin::DrmOutput(...)
-> no atomic commit from user space, CRTC pipe A stays active
[kernel] 19:57:17.63 intel_tc_port_link_reset_work Port D/TC#1: TypeC DP-alt
sink disconnected, resetting link
[kernel] 19:57:18.13 [CONNECTOR:512:DP-1] Link Training failed at link rate
= 810000, lane count = 2
[kernel] 19:57:18.32 intel_enable_transcoder enabling pipe A <- re-enabled
on the dead link
[kernel] 19:57:36+ DP-1 hotplug retry 0..5 -> detect never succeeds ->
wedged
So KWin tears down its output object on the hotplug, but for the last output it
drops it internally without committing a CRTC off, so the pipe is never
disabled.
About 2 s later the TC link reset worker re-enables that still active pipe on
the dead link.
Had the CRTC been disabled, the pipe and its TC link ref would be gone before
the worker runs, which I think avoids the wedge.
So this one is mine to fix in user space.
I'll check whether current KWin already handles last output removal
differently, and otherwise write the fix there.
Thanks for pushing back.
The full boot log up to the wedge and the KWin log are on the ticket [1].
On a separate note, I have a few other small display fixes for this same
hardware (Synaptics VMM7100 PCON on Panther Lake), still blocked from
submitting by the CI allowlist.
If you have the bandwidth I'd welcome a quick gut check, otherwise I'll post
them properly once I'm allowlisted:
- a DP quirk so the PCON doesn't get stuck at 2 lanes / 6 bpc after a failed
RBR link training handshake
- FRL deep color plus preferring DSC over a 6 bpc uncompressed output, which
gets 4K@120 RGB 12 bpc working
- reading the PCON max FRL bandwidth only for HDMI DFPs in the DP core, it is
read unconditionally today
- a drm_dp_cec fix so CEC tunneling works on these dongles, they do support
CEC and it is fully functional to my TV
No worries if you don't have time.
The allowlist route is fine too.
[1] https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14807
Thanks,
Alexander