drm/vc4_hdmi: Force a modeset when Broadcast RGB setting changes
authorDom Cobley <popcornmix@gmail.com>
Thu, 5 May 2022 17:50:04 +0000 (18:50 +0100)
committerPhil Elwell <8911409+pelwell@users.noreply.github.com>
Fri, 13 May 2022 10:37:20 +0000 (11:37 +0100)
Without this the change is not visible until the next modeset

Signed-off-by: Dom Cobley <popcornmix@gmail.com>
drivers/gpu/drm/vc4/vc4_hdmi.c

index 4696ba6..b0f9ca6 100644 (file)
@@ -333,14 +333,17 @@ static int vc4_hdmi_connector_atomic_check(struct drm_connector *connector,
 {
        struct drm_connector_state *old_state =
                drm_atomic_get_old_connector_state(state, connector);
+       struct vc4_hdmi_connector_state *old_vc4_state = conn_state_to_vc4_hdmi_conn_state(old_state);
        struct drm_connector_state *new_state =
                drm_atomic_get_new_connector_state(state, connector);
+       struct vc4_hdmi_connector_state *new_vc4_state = conn_state_to_vc4_hdmi_conn_state(new_state);
        struct drm_crtc *crtc = new_state->crtc;
 
        if (!crtc)
                return 0;
 
        if (old_state->colorspace != new_state->colorspace ||
+           old_vc4_state->broadcast_rgb != new_vc4_state->broadcast_rgb ||
            !drm_connector_atomic_hdr_metadata_equal(old_state, new_state)) {
                struct drm_crtc_state *crtc_state;