aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/arm/hdlcd_crtc.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/gpu/drm/arm/hdlcd_crtc.c b/drivers/gpu/drm/arm/hdlcd_crtc.c
index 1a3359c0f6cd..0128ebd318f5 100644
--- a/drivers/gpu/drm/arm/hdlcd_crtc.c
+++ b/drivers/gpu/drm/arm/hdlcd_crtc.c
@@ -261,21 +261,14 @@ static void hdlcd_plane_atomic_update(struct drm_plane *plane,
261{ 261{
262 struct drm_framebuffer *fb = plane->state->fb; 262 struct drm_framebuffer *fb = plane->state->fb;
263 struct hdlcd_drm_private *hdlcd; 263 struct hdlcd_drm_private *hdlcd;
264 struct drm_gem_cma_object *gem;
265 u32 src_x, src_y, dest_h; 264 u32 src_x, src_y, dest_h;
266 dma_addr_t scanout_start; 265 dma_addr_t scanout_start;
267 266
268 if (!fb) 267 if (!fb)
269 return; 268 return;
270 269
271 src_x = plane->state->src.x1 >> 16;
272 src_y = plane->state->src.y1 >> 16;
273 dest_h = drm_rect_height(&plane->state->dst); 270 dest_h = drm_rect_height(&plane->state->dst);
274 gem = drm_fb_cma_get_gem_obj(fb, 0); 271 scanout_start = drm_fb_cma_get_gem_addr(fb, plane->state, 0);
275
276 scanout_start = gem->paddr + fb->offsets[0] +
277 src_y * fb->pitches[0] +
278 src_x * fb->format->cpp[0];
279 272
280 hdlcd = plane->dev->dev_private; 273 hdlcd = plane->dev->dev_private;
281 hdlcd_write(hdlcd, HDLCD_REG_FB_LINE_LENGTH, fb->pitches[0]); 274 hdlcd_write(hdlcd, HDLCD_REG_FB_LINE_LENGTH, fb->pitches[0]);