From dae2155bb07bb2063ce604049e9aa4e862b6db0a Mon Sep 17 00:00:00 2001 From: Russell King Date: Mon, 30 Jul 2018 11:53:06 +0100 Subject: 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(-) (limited to 'drivers/gpu') diff --git a/drivers/gpu/drm/armada/armada_plane.c b/drivers/gpu/drm/armada/armada_plane.c index 39c9ba3ee57e..bed2dca83a37 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) -- cgit v1.2.3