Convert further...
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
index e76fd45..3b04fde 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
@@ -491,12 +491,6 @@ static void rcar_du_crtc_setup(struct rcar_du_crtc *rcrtc)
/* Start with all planes disabled. */
rcar_du_group_write(rcrtc->group, rcrtc->index % 2 ? DS2PR : DS1PR, 0);
- /* Enable the VSP compositor. */
- if (rcar_du_has(rcrtc->dev, RCAR_DU_FEATURE_VSP1_SOURCE)) {
- rcar_du_vsp_modeset(rcrtc);
- rcar_du_vsp_enable(rcrtc);
- }
-
/* Turn vertical blanking interrupt reporting on. */
drm_crtc_vblank_on(&rcrtc->crtc);
}
@@ -678,8 +672,11 @@ int rcar_du_crtc_atomic_modeset(struct drm_device *dev,
struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc);
if ((crtc_state->active_changed && crtc_state->active)
- || drm_atomic_crtc_needs_modeset(crtc_state))
- rcar_du_crtc_setup(rcrtc);
+ || drm_atomic_crtc_needs_modeset(crtc_state)) {
+
+ if (rcar_du_has(rcrtc->dev, RCAR_DU_FEATURE_VSP1_SOURCE))
+ rcar_du_vsp_modeset(rcrtc);
+ }
}
return 0;
@@ -710,6 +707,9 @@ static void rcar_du_crtc_atomic_enable(struct drm_crtc *crtc,
mode->clock * 1000);
}
+ if (rcar_du_has(rcrtc->dev, RCAR_DU_FEATURE_VSP1_SOURCE))
+ rcar_du_vsp_enable(rcrtc);
+
rcar_du_crtc_start(rcrtc);
}