Fixes a build failure with mediatek.

This change was supposed to be part of commit 49a3f51dfeee ("drm/gem:
Use struct dma_buf_map in GEM vmap ops and convert GEM backends"), but
mediatek was forgotten.

Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de>
Fixes: 49a3f51dfeee ("drm/gem: Use struct dma_buf_map in GEM vmap ops and 
convert GEM backends")
Cc: Thomas Zimmermann <tzimmerm...@suse.de>
Cc: Christian König <christian.koe...@amd.com>
Cc: David Airlie <airl...@linux.ie>
Cc: Daniel Vetter <dan...@ffwll.ch>
Cc: Maarten Lankhorst <maarten.lankho...@linux.intel.com>
Cc: Maxime Ripard <mrip...@kernel.org>
Cc: Dave Airlie <airl...@redhat.com>
Cc: Lucas Stach <l.st...@pengutronix.de>
Cc: Russell King <linux+etna...@armlinux.org.uk>
Cc: Christian Gmeiner <christian.gmei...@gmail.com>
Cc: Qiang Yu <yuq...@gmail.com>
Cc: Ben Skeggs <bske...@redhat.com>
Cc: Rob Herring <r...@kernel.org>
Cc: Tomeu Vizoso <tomeu.viz...@collabora.com>
Cc: Steven Price <steven.pr...@arm.com>
Cc: Alyssa Rosenzweig <alyssa.rosenzw...@collabora.com>
Cc: Gerd Hoffmann <kra...@redhat.com>
Cc: Alex Deucher <alexander.deuc...@amd.com>
Cc: "Christian König" <christian.koe...@amd.com>
Cc: Sandy Huang <h...@rock-chips.com>
Cc: "Heiko Stübner" <he...@sntech.de>
Cc: Hans de Goede <hdego...@redhat.com>
Cc: Sean Paul <s...@poorly.run>
Cc: Eric Anholt <e...@anholt.net>
Cc: Rodrigo Siqueira <rodrigosiqueiram...@gmail.com>
Cc: Melissa Wen <melissa....@gmail.com>
Cc: Haneen Mohammed <hamohammed...@gmail.com>
Cc: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com>
Cc: Sumit Semwal <sumit.sem...@linaro.org>
Cc: Emil Velikov <emil.veli...@collabora.com>
Cc: Marek Szyprowski <m.szyprow...@samsung.com>
Cc: Arunpravin <apane...@amd.com>
Cc: Huang Rui <ray.hu...@amd.com>
Cc: Luben Tuikov <luben.tui...@amd.com>
Cc: Madhav Chauhan <madhav.chau...@amd.com>
Cc: Nirmoy Das <nirmoy....@amd.com>
Cc: Jason Gunthorpe <j...@ziepe.ca>
Cc: Sam Ravnborg <s...@ravnborg.org>
Cc: Chris Wilson <ch...@chris-wilson.co.uk>
Cc: dri-de...@lists.freedesktop.org
Cc: etna...@lists.freedesktop.org
Cc: l...@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: virtualizat...@lists.linux-foundation.org
Cc: spice-de...@lists.freedesktop.org
Cc: amd-...@lists.freedesktop.org
Cc: linux-arm-ker...@lists.infradead.org
Cc: linux-rockc...@lists.infradead.org
Cc: xen-de...@lists.xenproject.org
---
 drivers/gpu/drm/mediatek/mtk_drm_gem.c | 20 ++++++++++++--------
 drivers/gpu/drm/mediatek/mtk_drm_gem.h |  4 ++--
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_drm_gem.c 
b/drivers/gpu/drm/mediatek/mtk_drm_gem.c
index cdd1a6e61564..28a2ee1336ef 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_gem.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_gem.c
@@ -240,23 +240,25 @@ struct drm_gem_object 
*mtk_gem_prime_import_sg_table(struct drm_device *dev,
        return &mtk_gem->base;
 }
 
-void *mtk_drm_gem_prime_vmap(struct drm_gem_object *obj)
+int mtk_drm_gem_prime_vmap(struct drm_gem_object *obj, struct dma_buf_map *map)
 {
        struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj);
-       struct sg_table *sgt;
+       struct sg_table *sgt = NULL;
        unsigned int npages;
 
        if (mtk_gem->kvaddr)
-               return mtk_gem->kvaddr;
+               goto out;
 
        sgt = mtk_gem_prime_get_sg_table(obj);
        if (IS_ERR(sgt))
-               return NULL;
+               return PTR_ERR(sgt);
 
        npages = obj->size >> PAGE_SHIFT;
        mtk_gem->pages = kcalloc(npages, sizeof(*mtk_gem->pages), GFP_KERNEL);
-       if (!mtk_gem->pages)
-               goto out;
+       if (!mtk_gem->pages) {
+               kfree(sgt);
+               return -ENOMEM;
+       }
 
        drm_prime_sg_to_page_addr_arrays(sgt, mtk_gem->pages, NULL, npages);
 
@@ -265,13 +267,15 @@ void *mtk_drm_gem_prime_vmap(struct drm_gem_object *obj)
 
 out:
        kfree(sgt);
+       dma_buf_map_set_vaddr(map, mtk_gem->kvaddr);
 
-       return mtk_gem->kvaddr;
+       return 0;
 }
 
-void mtk_drm_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr)
+void mtk_drm_gem_prime_vunmap(struct drm_gem_object *obj, struct dma_buf_map 
*map)
 {
        struct mtk_drm_gem_obj *mtk_gem = to_mtk_gem_obj(obj);
+       void *vaddr = map->vaddr;
 
        if (!mtk_gem->pages)
                return;
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_gem.h 
b/drivers/gpu/drm/mediatek/mtk_drm_gem.h
index ff9f976d9807..6da5ccb4b933 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_gem.h
+++ b/drivers/gpu/drm/mediatek/mtk_drm_gem.h
@@ -45,7 +45,7 @@ int mtk_drm_gem_mmap_buf(struct drm_gem_object *obj,
 struct sg_table *mtk_gem_prime_get_sg_table(struct drm_gem_object *obj);
 struct drm_gem_object *mtk_gem_prime_import_sg_table(struct drm_device *dev,
                        struct dma_buf_attachment *attach, struct sg_table *sg);
-void *mtk_drm_gem_prime_vmap(struct drm_gem_object *obj);
-void mtk_drm_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
+int mtk_drm_gem_prime_vmap(struct drm_gem_object *obj, struct dma_buf_map 
*map);
+void mtk_drm_gem_prime_vunmap(struct drm_gem_object *obj, struct dma_buf_map 
*map);
 
 #endif
-- 
2.29.2

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to