diff mbox series

[2/2] drm/mediatek: Use struct dma_buf_map in GEM vmap ops

Message ID 20201109103242.19544-3-tzimmermann@suse.de
State Accepted
Commit 7e542ff8b463c747a4b9878fc88eebc956cbf072
Headers show
Series drm: Build fixes for msm and mediatek | expand

Commit Message

Thomas Zimmermann Nov. 9, 2020, 10:32 a.m. UTC
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 <tzimmermann@suse.de>
Fixes: 49a3f51dfeee ("drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends")
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Christian König <christian.koenig@amd.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Russell King <linux+etnaviv@armlinux.org.uk>
Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: Qiang Yu <yuq825@gmail.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Cc: Steven Price <steven.price@arm.com>
Cc: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko Stübner" <heiko@sntech.de>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Sean Paul <sean@poorly.run>
Cc: Eric Anholt <eric@anholt.net>
Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
Cc: Melissa Wen <melissa.srw@gmail.com>
Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Emil Velikov <emil.velikov@collabora.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Arunpravin <apaneers@amd.com>
Cc: Huang Rui <ray.huang@amd.com>
Cc: Luben Tuikov <luben.tuikov@amd.com>
Cc: Madhav Chauhan <madhav.chauhan@amd.com>
Cc: Nirmoy Das <Nirmoy.Das@amd.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: dri-devel@lists.freedesktop.org
Cc: etnaviv@lists.freedesktop.org
Cc: lima@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: virtualization@lists.linux-foundation.org
Cc: spice-devel@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: xen-devel@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(-)

Comments

Chun-Kuang Hu Nov. 11, 2020, 2:23 p.m. UTC | #1
Hi, Thomas:

Thomas Zimmermann <tzimmermann@suse.de> 於 2020年11月9日 週一 下午6:32寫道:
>

> 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.


Acked-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>


>

> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>

> Fixes: 49a3f51dfeee ("drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends")

> Cc: Thomas Zimmermann <tzimmermann@suse.de>

> Cc: Christian König <christian.koenig@amd.com>

> Cc: David Airlie <airlied@linux.ie>

> Cc: Daniel Vetter <daniel@ffwll.ch>

> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

> Cc: Maxime Ripard <mripard@kernel.org>

> Cc: Dave Airlie <airlied@redhat.com>

> Cc: Lucas Stach <l.stach@pengutronix.de>

> Cc: Russell King <linux+etnaviv@armlinux.org.uk>

> Cc: Christian Gmeiner <christian.gmeiner@gmail.com>

> Cc: Qiang Yu <yuq825@gmail.com>

> Cc: Ben Skeggs <bskeggs@redhat.com>

> Cc: Rob Herring <robh@kernel.org>

> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>

> Cc: Steven Price <steven.price@arm.com>

> Cc: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>

> Cc: Gerd Hoffmann <kraxel@redhat.com>

> Cc: Alex Deucher <alexander.deucher@amd.com>

> Cc: "Christian König" <christian.koenig@amd.com>

> Cc: Sandy Huang <hjc@rock-chips.com>

> Cc: "Heiko Stübner" <heiko@sntech.de>

> Cc: Hans de Goede <hdegoede@redhat.com>

> Cc: Sean Paul <sean@poorly.run>

> Cc: Eric Anholt <eric@anholt.net>

> Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>

> Cc: Melissa Wen <melissa.srw@gmail.com>

> Cc: Haneen Mohammed <hamohammed.sa@gmail.com>

> Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

> Cc: Sumit Semwal <sumit.semwal@linaro.org>

> Cc: Emil Velikov <emil.velikov@collabora.com>

> Cc: Marek Szyprowski <m.szyprowski@samsung.com>

> Cc: Arunpravin <apaneers@amd.com>

> Cc: Huang Rui <ray.huang@amd.com>

> Cc: Luben Tuikov <luben.tuikov@amd.com>

> Cc: Madhav Chauhan <madhav.chauhan@amd.com>

> Cc: Nirmoy Das <Nirmoy.Das@amd.com>

> Cc: Jason Gunthorpe <jgg@ziepe.ca>

> Cc: Sam Ravnborg <sam@ravnborg.org>

> Cc: Chris Wilson <chris@chris-wilson.co.uk>

> Cc: dri-devel@lists.freedesktop.org

> Cc: etnaviv@lists.freedesktop.org

> Cc: lima@lists.freedesktop.org

> Cc: nouveau@lists.freedesktop.org

> Cc: virtualization@lists.linux-foundation.org

> Cc: spice-devel@lists.freedesktop.org

> Cc: amd-gfx@lists.freedesktop.org

> Cc: linux-arm-kernel@lists.infradead.org

> Cc: linux-rockchip@lists.infradead.org

> Cc: xen-devel@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

>
diff mbox series

Patch

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