Hi, Thomas: Thomas Zimmermann <tzimmerm...@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...@kernel.org> > > 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: nouv...@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 > _______________________________________________ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno