Skip to content
Snippets Groups Projects
Commit cdd9bc9e authored by Liu Ying's avatar Liu Ying Committed by Dong Aisheng
Browse files

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 7c11b99a ("drm/atomic: Pass the full state to planes atomic_check")
commit 977697e2 ("drm/atomic: Pass the full state to planes atomic disable and update")

So, this patch fixes the build issue accordingly.

Reviewed-by: default avatarSandor Yu <Sandor.yu@nxp.com>
Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
parent adee03e9
No related branches found
No related tags found
1 merge request!455CI: Update gitlab-ci
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment