Hi, Here's a second attempt at fixing the current issues we have with the muxing code that results in a PV muxing its HVS muxing when only another CRTC is modified by a state, or vblank timeouts when trying to wait for a vblank on a single CRTC while another one is inactive but enabled. Let me know what you think, Maxime Changes from v1: - Dropped the code trying to access all the CRTCs (whether in the state or not) state - Added Hoegeun Kwon's tags - Fixed a build bisection error - Cleaned up the private state using drmm_add_action_or_reset - Rebased on current linux next Maxime Ripard (7): drm/vc4: kms: Switch to drmm_add_action_or_reset drm/vc4: kms: Remove useless define drm/vc4: kms: Rename NUM_CHANNELS drm/vc4: kms: Split the HVS muxing check in a separate function drm/vc4: kms: Document the muxing corner cases drm/vc4: kms: Store the unassigned channel list in the state drm/vc4: kms: Don't disable the muxing of an active CRTC drivers/gpu/drm/vc4/vc4_drv.h | 2 + drivers/gpu/drm/vc4/vc4_kms.c | 247 +++++++++++++++++++++++++--------- 2 files changed, 185 insertions(+), 64 deletions(-) -- 2.28.0