Hi, Thomas: Thomas Zimmermann <tzimmermann@xxxxxxx> 於 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@xxxxxxxxxx> > > Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx> > Fixes: 49a3f51dfeee ("drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends") > Cc: Thomas Zimmermann <tzimmermann@xxxxxxx> > Cc: Christian König <christian.koenig@xxxxxxx> > Cc: David Airlie <airlied@xxxxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> > Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > Cc: Maxime Ripard <mripard@xxxxxxxxxx> > Cc: Dave Airlie <airlied@xxxxxxxxxx> > Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > Cc: Russell King <linux+etnaviv@xxxxxxxxxxxxxxx> > Cc: Christian Gmeiner <christian.gmeiner@xxxxxxxxx> > Cc: Qiang Yu <yuq825@xxxxxxxxx> > Cc: Ben Skeggs <bskeggs@xxxxxxxxxx> > Cc: Rob Herring <robh@xxxxxxxxxx> > Cc: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx> > Cc: Steven Price <steven.price@xxxxxxx> > Cc: Alyssa Rosenzweig <alyssa.rosenzweig@xxxxxxxxxxxxx> > Cc: Gerd Hoffmann <kraxel@xxxxxxxxxx> > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > Cc: "Christian König" <christian.koenig@xxxxxxx> > Cc: Sandy Huang <hjc@xxxxxxxxxxxxxx> > Cc: "Heiko Stübner" <heiko@xxxxxxxxx> > Cc: Hans de Goede <hdegoede@xxxxxxxxxx> > Cc: Sean Paul <sean@xxxxxxxxxx> > Cc: Eric Anholt <eric@xxxxxxxxxx> > Cc: Rodrigo Siqueira <rodrigosiqueiramelo@xxxxxxxxx> > Cc: Melissa Wen <melissa.srw@xxxxxxxxx> > Cc: Haneen Mohammed <hamohammed.sa@xxxxxxxxx> > Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx> > Cc: Sumit Semwal <sumit.semwal@xxxxxxxxxx> > Cc: Emil Velikov <emil.velikov@xxxxxxxxxxxxx> > Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > Cc: Arunpravin <apaneers@xxxxxxx> > Cc: Huang Rui <ray.huang@xxxxxxx> > Cc: Luben Tuikov <luben.tuikov@xxxxxxx> > Cc: Madhav Chauhan <madhav.chauhan@xxxxxxx> > Cc: Nirmoy Das <Nirmoy.Das@xxxxxxx> > Cc: Jason Gunthorpe <jgg@xxxxxxxx> > Cc: Sam Ravnborg <sam@xxxxxxxxxxxx> > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > Cc: etnaviv@xxxxxxxxxxxxxxxxxxxxx > Cc: lima@xxxxxxxxxxxxxxxxxxxxx > Cc: nouveau@xxxxxxxxxxxxxxxxxxxxx > Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx > Cc: spice-devel@xxxxxxxxxxxxxxxxxxxxx > Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > Cc: linux-rockchip@xxxxxxxxxxxxxxxxxxx > Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx > --- > 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 > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel