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