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 Maxime Ripard (7): 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: Add functions to create the state objects 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 | 314 +++++++++++++++++++++++++---------- 2 files changed, 235 insertions(+), 81 deletions(-) base-commit: 66e2a590a11f54865fb3ffd3ec932a6a4e477b40 -- git-series 0.9.1