Abstract the framebuffer details by mapping its BOs with a call
to drm_gem_fb_vmap(). Unmap with drm_gem_fb_vunmap().

The call to drm_gem_fb_vmap() ensures that all BOs are mapped
correctly. Gud still only supports single-plane formats.

No functional changes.

Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de>
---
 drivers/gpu/drm/gud/gud_pipe.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/gud/gud_pipe.c b/drivers/gpu/drm/gud/gud_pipe.c
index 8f56bf618ac2..8243c8682366 100644
--- a/drivers/gpu/drm/gud/gud_pipe.c
+++ b/drivers/gpu/drm/gud/gud_pipe.c
@@ -15,7 +15,8 @@
 #include <drm/drm_format_helper.h>
 #include <drm/drm_fourcc.h>
 #include <drm/drm_framebuffer.h>
-#include <drm/drm_gem_shmem_helper.h>
+#include <drm/drm_gem.h>
+#include <drm/drm_gem_framebuffer_helper.h>
 #include <drm/drm_print.h>
 #include <drm/drm_rect.h>
 #include <drm/drm_simple_kms_helper.h>
@@ -152,7 +153,7 @@ static int gud_prep_flush(struct gud_device *gdrm, struct 
drm_framebuffer *fb,
 {
        struct dma_buf_attachment *import_attach = fb->obj[0]->import_attach;
        u8 compression = gdrm->compression;
-       struct dma_buf_map map;
+       struct dma_buf_map map[DRM_FORMAT_MAX_PLANES];
        void *vaddr, *buf;
        size_t pitch, len;
        int ret = 0;
@@ -162,11 +163,11 @@ static int gud_prep_flush(struct gud_device *gdrm, struct 
drm_framebuffer *fb,
        if (len > gdrm->bulk_len)
                return -E2BIG;
 
-       ret = drm_gem_shmem_vmap(fb->obj[0], &map);
+       ret = drm_gem_fb_vmap(fb, map);
        if (ret)
                return ret;
 
-       vaddr = map.vaddr + fb->offsets[0];
+       vaddr = map[0].vaddr + fb->offsets[0];
 
        if (import_attach) {
                ret = dma_buf_begin_cpu_access(import_attach->dmabuf, 
DMA_FROM_DEVICE);
@@ -228,7 +229,7 @@ static int gud_prep_flush(struct gud_device *gdrm, struct 
drm_framebuffer *fb,
        if (import_attach)
                dma_buf_end_cpu_access(import_attach->dmabuf, DMA_FROM_DEVICE);
 vunmap:
-       drm_gem_shmem_vunmap(fb->obj[0], &map);
+       drm_gem_fb_vunmap(fb, map);
 
        return ret;
 }
-- 
2.32.0

Reply via email to