From e0f774af8bd7d1954f18e489627636cec9d30354 Mon Sep 17 00:00:00 2001
From: Paul Cercueil <paul@crapouillou.net>
Date: Tue, 10 Dec 2019 15:41:39 +0100
Subject: gpu/drm: ingenic: Use the plane's src_[x,y] to configure DMA length
Git-commit: 52e4607dace1eeeb2e012fca291dc4e6cb449bff
Patch-mainline: v5.6-rc1
References: jsc#SLE-12680, jsc#SLE-12880, jsc#SLE-12882, jsc#SLE-12883, jsc#SLE-13496, jsc#SLE-15322
Instead of obtaining the width/height of the framebuffer from the CRTC
state, obtain it from the current plane state.
v2: No change
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20191210144142.33143-3-paul@crapouillou.net
# *** extracted tags ***
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Patrik Jakobsson <pjakobsson@suse.de>
---
drivers/gpu/drm/ingenic/ingenic-drm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm.c b/drivers/gpu/drm/ingenic/ingenic-drm.c
index 43a015f33e97..0f48050b9939 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm.c
@@ -376,8 +376,8 @@ static void ingenic_drm_plane_atomic_update(struct drm_plane *plane,
if (state && state->fb) {
addr = drm_fb_cma_get_gem_addr(state->fb, state, 0);
- width = state->crtc->state->adjusted_mode.hdisplay;
- height = state->crtc->state->adjusted_mode.vdisplay;
+ width = state->src_w >> 16;
+ height = state->src_h >> 16;
cpp = state->fb->format->cpp[plane->index];
priv->dma_hwdesc->addr = addr;
--
2.28.0