Comment 41 for bug 1726548

Revision history for this message
Jens Glathe (glathe) wrote :

An update from my POV, and a possible trace: I played around a lot with drm.debug (best use for this case is apparently 0x106), and eventually deliberately disabled the HPD gpio in the device tree (Windows Dev Kit 2023). This changes the behaviour to sleep/resume works, but with a hang of ~30 secs until the screen gets responsive again. Everything works, only indication in dmesg is this message:

[42858.743906] [drm:dp_aux_isr [msm]] *ERROR* Unexpected DP AUX IRQ 0x01000000 when not busy

which in itself is pretty ambiguous. DP AUX is one of the interrupt handlers that get called from the gpu interrupt or the HPD interrupt handler (now disabled) and appears to be a case that has no explicit handling, but an explicit WARN coding. For me this looks like a race condition worsened by the HPD interrupt handler, and things from user space (Wayland) and kernel (DP link status). Without HPD, you can see that the right EDID gets detected again, an link training starts, link gets enabled eventually. With HPD it looks like the former gets triggered twice, invalidating EDID data, leading to default CRT modeline (640x480). Pretty odd.