From cc6d8bf93e64b6c9a920bbb3e7a67dd062863ce7 Mon Sep 17 00:00:00 2001 From: Russell King Date: Mon, 30 Jul 2018 11:53:06 +0100 Subject: [PATCH] drm/armada: update primary framebuffer parameters on mode change The framebuffer base address and toggling mode needs to be updated when the interlaced flag for mode changes is updated. Arrange to reprogram these parameters when only the mode has changed. Signed-off-by: Russell King --- drivers/gpu/drm/armada/armada_plane.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/armada/armada_plane.c b/drivers/gpu/drm/armada/armada_plane.c index 39c9ba3ee57ee..bed2dca83a375 100644 --- a/drivers/gpu/drm/armada/armada_plane.c +++ b/drivers/gpu/drm/armada/armada_plane.c @@ -184,11 +184,13 @@ static void armada_drm_primary_plane_atomic_update(struct drm_plane *plane, armada_reg_queue_set(regs, idx, val, LCD_SPU_GZM_HPXL_VLN); if (old_state->src.x1 != state->src.x1 || old_state->src.y1 != state->src.y1 || - old_state->fb != state->fb) { + old_state->fb != state->fb || + state->crtc->state->mode_changed) { idx += armada_drm_crtc_calc_fb(state, regs + idx, dcrtc->interlaced); } - if (old_state->fb != state->fb) { + if (old_state->fb != state->fb || + state->crtc->state->mode_changed) { cfg = CFG_GRA_FMT(drm_fb_to_armada_fb(state->fb)->fmt) | CFG_GRA_MOD(drm_fb_to_armada_fb(state->fb)->mod); if (drm_fb_to_armada_fb(state->fb)->fmt > CFG_420) -- 2.39.5