[PATCH 2/5] drm: lcdif: move controller enable into atomic_flush
Marek Vasut
marex at denx.de
Wed Sep 20 17:31:53 UTC 2023
On 9/20/23 12:31, Lucas Stach wrote:
> Allow drm_atomic_helper_commit_tail_rpm to setup all the plane
> state before the scanout is started.
>
> Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> ---
> drivers/gpu/drm/mxsfb/lcdif_kms.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/mxsfb/lcdif_kms.c b/drivers/gpu/drm/mxsfb/lcdif_kms.c
> index f5bfe8b52920..4acf6914a8d1 100644
> --- a/drivers/gpu/drm/mxsfb/lcdif_kms.c
> +++ b/drivers/gpu/drm/mxsfb/lcdif_kms.c
> @@ -505,6 +505,8 @@ static int lcdif_crtc_atomic_check(struct drm_crtc *crtc,
> static void lcdif_crtc_atomic_flush(struct drm_crtc *crtc,
> struct drm_atomic_state *state)
> {
> + struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state,
> + crtc);
> struct lcdif_drm_private *lcdif = to_lcdif_drm_private(crtc->dev);
> struct drm_pending_vblank_event *event;
> u32 reg;
> @@ -513,6 +515,9 @@ static void lcdif_crtc_atomic_flush(struct drm_crtc *crtc,
> reg |= CTRLDESCL0_5_SHADOW_LOAD_EN;
> writel(reg, lcdif->base + LCDC_V8_CTRLDESCL0_5);
>
> + if (drm_atomic_crtc_needs_modeset(crtc_state))
> + lcdif_enable_controller(lcdif);
> +
> event = crtc->state->event;
> crtc->state->event = NULL;
>
> @@ -552,7 +557,6 @@ static void lcdif_crtc_atomic_enable(struct drm_crtc *crtc,
> writel(CTRLDESCL_HIGH0_4_ADDR_HIGH(upper_32_bits(paddr)),
> lcdif->base + LCDC_V8_CTRLDESCL_HIGH0_4);
> }
> - lcdif_enable_controller(lcdif);
>
> drm_crtc_vblank_on(crtc);
> }
Reviewed-by: Marek Vasut <marex at denx.de>
More information about the dri-devel
mailing list