drm/sun4i: backend: Use drm_fb_cma_get_gem_addr() to get display memory
authorChen-Yu Tsai <wens@csie.org>
Sat, 14 Oct 2017 04:02:48 +0000 (12:02 +0800)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Mon, 16 Oct 2017 07:53:55 +0000 (09:53 +0200)
Commit 4636ce93d5b2 ("drm/fb-cma-helper: Add drm_fb_cma_get_gem_addr()")
adds a new helper, which covers fetching a drm_framebuffer's GEM object
and calculating the buffer address for a given plane.

This patch uses this helper to replace our own open coded version of the
same function.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171014040252.9621-4-wens@csie.org
drivers/gpu/drm/sun4i/sun4i_backend.c

index 1cc1780f50916f80d1f0ca8c7ee909c6aa97be4b..243ddfdc940344a1118ad3b69b8ad45cae13aeff 100644 (file)
@@ -209,22 +209,11 @@ int sun4i_backend_update_layer_buffer(struct sun4i_backend *backend,
 {
        struct drm_plane_state *state = plane->state;
        struct drm_framebuffer *fb = state->fb;
-       struct drm_gem_cma_object *gem;
        u32 lo_paddr, hi_paddr;
        dma_addr_t paddr;
-       int bpp;
-
-       /* Get the physical address of the buffer in memory */
-       gem = drm_fb_cma_get_gem_obj(fb, 0);
-
-       DRM_DEBUG_DRIVER("Using GEM @ %pad\n", &gem->paddr);
-
-       /* Compute the start of the displayed memory */
-       bpp = fb->format->cpp[0];
-       paddr = gem->paddr + fb->offsets[0];
-       paddr += (state->src_x >> 16) * bpp;
-       paddr += (state->src_y >> 16) * fb->pitches[0];
 
+       /* Get the start of the displayed memory */
+       paddr = drm_fb_cma_get_gem_addr(fb, state, 0);
        DRM_DEBUG_DRIVER("Setting buffer address to %pad\n", &paddr);
 
        /* Write the 32 lower bits of the address (in bits) */