From cdd9bc9e4537e1621c1ba4bc5624e882213ffe9a Mon Sep 17 00:00:00 2001 From: Liu Ying <victor.liu@nxp.com> Date: Tue, 8 Jun 2021 11:40:53 +0800 Subject: [PATCH] LF-3991-4 drm/imx: lcdifv3: plane: Fix ->atomic_{check, update, disable} build issue due to rebase The following commits from upstream change the prototype of ->atomic_check() , ->atomic_update() and ->atomic_disable(). commit 7c11b99a8e58 ("drm/atomic: Pass the full state to planes atomic_check") commit 977697e20b3d ("drm/atomic: Pass the full state to planes atomic disable and update") So, this patch fixes the build issue accordingly. Reviewed-by: Sandor Yu <Sandor.yu@nxp.com> Signed-off-by: Liu Ying <victor.liu@nxp.com> --- drivers/gpu/drm/imx/lcdifv3/lcdifv3-plane.c | 28 ++++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/imx/lcdifv3/lcdifv3-plane.c b/drivers/gpu/drm/imx/lcdifv3/lcdifv3-plane.c index aa76e6a482bff..6f8425333ee02 100644 --- a/drivers/gpu/drm/imx/lcdifv3/lcdifv3-plane.c +++ b/drivers/gpu/drm/imx/lcdifv3/lcdifv3-plane.c @@ -29,9 +29,11 @@ static uint32_t lcdifv3_pixel_formats[] = { }; static int lcdifv3_plane_atomic_check(struct drm_plane *plane, - struct drm_plane_state *plane_state) + struct drm_atomic_state *state) { int ret; + struct drm_plane_state *plane_state = drm_atomic_get_new_plane_state(state, + plane); struct drm_plane_state *old_state = plane->state; struct drm_framebuffer *fb = plane_state->fb; struct drm_framebuffer *old_fb = old_state->fb; @@ -50,7 +52,7 @@ static int lcdifv3_plane_atomic_check(struct drm_plane *plane, if (plane_state->crtc_x || plane_state->crtc_y) return -EINVAL; - crtc_state = drm_atomic_get_existing_crtc_state(plane_state->state, + crtc_state = drm_atomic_get_existing_crtc_state(state, plane_state->crtc); mode = &crtc_state->adjusted_mode; @@ -77,12 +79,13 @@ static int lcdifv3_plane_atomic_check(struct drm_plane *plane, } static void lcdifv3_plane_atomic_update(struct drm_plane *plane, - struct drm_plane_state *old_state) + struct drm_atomic_state *state) { struct lcdifv3_plane *lcdifv3_plane = to_lcdifv3_plane(plane); struct lcdifv3_soc *lcdifv3 = lcdifv3_plane->lcdifv3; - struct drm_plane_state *state = plane->state; - struct drm_framebuffer *fb = state->fb; + struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, + plane); + struct drm_framebuffer *fb = new_plane_state->fb; struct drm_gem_cma_object *gem_obj = NULL; u32 fb_addr, src_off, src_w, fb_idx, cpp, stride; bool crop; @@ -102,8 +105,8 @@ static void lcdifv3_plane_atomic_update(struct drm_plane *plane, case DRM_PLANE_TYPE_PRIMARY: /* TODO: only support RGB */ gem_obj = drm_fb_cma_get_gem_obj(fb, 0); - src_off = (state->src_y >> 16) * fb->pitches[0] + - (state->src_x >> 16) * fb->format->cpp[0]; + src_off = (new_plane_state->src_y >> 16) * fb->pitches[0] + + (new_plane_state->src_x >> 16) * fb->format->cpp[0]; fb_addr = gem_obj->paddr + fb->offsets[0] + src_off; fb_idx = 0; break; @@ -115,11 +118,11 @@ static void lcdifv3_plane_atomic_update(struct drm_plane *plane, lcdifv3_set_fb_addr(lcdifv3, fb_idx, fb_addr); /* config horizontal cropping if crtc needs modeset */ - if (unlikely(drm_atomic_crtc_needs_modeset(state->crtc->state))) { + if (unlikely(drm_atomic_crtc_needs_modeset(new_plane_state->crtc->state))) { cpp = fb->format->cpp[0]; stride = DIV_ROUND_UP(fb->pitches[0], cpp); - src_w = state->src_w >> 16; + src_w = new_plane_state->src_w >> 16; WARN_ON(src_w > fb->width); crop = src_w != stride ? true : false; @@ -128,10 +131,11 @@ static void lcdifv3_plane_atomic_update(struct drm_plane *plane, } static void lcdifv3_plane_atomic_disable(struct drm_plane *plane, - struct drm_plane_state *old_state) + struct drm_atomic_state *state) { - struct drm_plane_state *state = plane->state; - struct drm_framebuffer *fb = state->fb; + struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, + plane); + struct drm_framebuffer *fb = new_plane_state->fb; WARN_ON(fb); -- GitLab