Hi Frank, I tested v6 on an Orange Pi 5 Plus (RK3588): git am onto a drm-misc-next based 7.3.0-rc2 tree with PROVE_LOCKING and DEBUG_ATOMIC_SLEEP, HDMI output to a TV.
The reproducer I used on v5 (output off, then open and close the PCM) now stops at the open: dw_hdmi_qp_audio_enable() returned -EOPNOTSUPP three times out of three, nothing from ASoC or the bridge was logged, and since the startup failed, the shutdown path never reached clear_audio_infoframe(). So I also ran the sequence from your commit message: PCM opened with the output on, output turned off by the compositor while the stream runs, PCM closed after that. With function_graph on dw_hdmi_qp_bridge_clear_audio_infoframe() and dw_hdmi_qp_audio_enable(), the clear call after the disable takes and drops phy.lock and returns 0 with no regmap access inside it; with the output on, as a control, one regmap_update_bits_base() call shows up inside it, under the lock. There was no external abort, SError, lockdep report or might_sleep splat in the whole run, including two output off/on cycles, and once the output was back on a new stream played on the TV. Tested-by: Igor Paunovic <[email protected]> # Orange Pi 5 Plus (RK3588) Not covered: I did not try to hit the window the lock is meant to close (an atomic disable landing between the state check and a register write), so that part rests on the code; and I did not check Dmitry's condition from v2 [1] that a PHY off/on cycle clears the audio registers. v6 overlaps with Detlev's patch [2] (both return -EOPNOTSUPP from the audio callbacks while the output is off), and [2] no longer applies on top of v6. For the crash, v6 alone now covers both sequences from my v5 note (open with the output already off, and the output going away under an open PCM), so my remark there that both patches are needed does not apply to v6. An LLM assistant applied and built the patch, wrote the test scripts, counted the traces and helped draft this mail; I ran the tests on the board and did the listening myself. [1] https://lore.kernel.org/all/urguajogb4zsz4jg3ef32hpyf2awxkywdtlk5ackdi2gjai4l7@vpjaf3sznkto/ [2] https://lore.kernel.org/all/[email protected]/ Igor
