Hi, Thomas:
Thomas Zimmermann 於 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
>
> Signed-off-by: Thomas Zimmermann
> Fixes: 49a3f51dfeee ("drm/gem: Use struct dma_buf_map in GEM vmap ops and
> convert GEM backends")
> Cc: Thomas Zimmermann
> Cc: Christian König
> Cc: David Airlie
> Cc: Daniel Vetter
> Cc: Maarten Lankhorst
> Cc: Maxime Ripard
> Cc: Dave Airlie
> Cc: Lucas Stach
> Cc: Russell King
> Cc: Christian Gmeiner
> Cc: Qiang Yu
> Cc: Ben Skeggs
> Cc: Rob Herring
> Cc: Tomeu Vizoso
> Cc: Steven Price
> Cc: Alyssa Rosenzweig
> Cc: Gerd Hoffmann
> Cc: Alex Deucher
> Cc: "Christian König"
> Cc: Sandy Huang
> Cc: "Heiko Stübner"
> Cc: Hans de Goede
> Cc: Sean Paul
> Cc: Eric Anholt
> Cc: Rodrigo Siqueira
> Cc: Melissa Wen
> Cc: Haneen Mohammed
> Cc: Oleksandr Andrushchenko
> Cc: Sumit Semwal
> Cc: Emil Velikov
> Cc: Marek Szyprowski
> Cc: Arunpravin
> Cc: Huang Rui
> Cc: Luben Tuikov
> Cc: Madhav Chauhan
> Cc: Nirmoy Das
> Cc: Jason Gunthorpe
> Cc: Sam Ravnborg
> Cc: Chris Wilson
> 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 _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