Message ID | 20250317131923.238374-14-tzimmermann@suse.de (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | drm: Do not use import_attach in drivers | expand |
On Mon, Mar 17, 2025 at 9:22 AM Thomas Zimmermann <tzimmermann@suse.de> wrote: > > Instead of testing import_attach for imported GEM buffers, invoke > drm_gem_is_imported() to do the test. The helper tests the dma_buf > itself while import_attach is just an artifact of the import. Prepares > to make import_attach optional. > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Zack Rusin <zack.rusin@broadcom.com> > Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com> > --- > drivers/gpu/drm/vmwgfx/vmwgfx_blit.c | 4 ++-- > drivers/gpu/drm/vmwgfx/vmwgfx_gem.c | 6 +++--- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c > index 64bd7d74854e..fa5841fda659 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c > @@ -429,7 +429,7 @@ static void *map_external(struct vmw_bo *bo, struct iosys_map *map) > void *ptr = NULL; > int ret; > > - if (bo->tbo.base.import_attach) { > + if (drm_gem_is_imported(&bo->tbo.base)) { > ret = dma_buf_vmap(bo->tbo.base.dma_buf, map); > if (ret) { > drm_dbg_driver(&vmw->drm, > @@ -447,7 +447,7 @@ static void *map_external(struct vmw_bo *bo, struct iosys_map *map) > > static void unmap_external(struct vmw_bo *bo, struct iosys_map *map) > { > - if (bo->tbo.base.import_attach) > + if (drm_gem_is_imported(&bo->tbo.base)) > dma_buf_vunmap(bo->tbo.base.dma_buf, map); > else > vmw_bo_unmap(bo); > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c > index ed5015ced392..200240fecf7d 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c > @@ -84,7 +84,7 @@ static int vmw_gem_vmap(struct drm_gem_object *obj, struct iosys_map *map) > struct ttm_buffer_object *bo = drm_gem_ttm_of_gem(obj); > int ret; > > - if (obj->import_attach) { > + if (drm_gem_is_imported(obj)) { > ret = dma_buf_vmap(obj->import_attach->dmabuf, map); > if (!ret) { > if (drm_WARN_ON(obj->dev, map->is_iomem)) { > @@ -101,7 +101,7 @@ static int vmw_gem_vmap(struct drm_gem_object *obj, struct iosys_map *map) > > static void vmw_gem_vunmap(struct drm_gem_object *obj, struct iosys_map *map) > { > - if (obj->import_attach) > + if (drm_gem_is_imported(obj)) > dma_buf_vunmap(obj->import_attach->dmabuf, map); > else > drm_gem_ttm_vunmap(obj, map); > @@ -111,7 +111,7 @@ static int vmw_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) > { > int ret; > > - if (obj->import_attach) { > + if (drm_gem_is_imported(obj)) { > /* > * Reset both vm_ops and vm_private_data, so we don't end up with > * vm_ops pointing to our implementation if the dma-buf backend > -- > 2.48.1 > Another great cleanup! Thanks. Reviewed-by: Zack Rusin <zack.rusin@broadcom.com> z
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c index 64bd7d74854e..fa5841fda659 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c @@ -429,7 +429,7 @@ static void *map_external(struct vmw_bo *bo, struct iosys_map *map) void *ptr = NULL; int ret; - if (bo->tbo.base.import_attach) { + if (drm_gem_is_imported(&bo->tbo.base)) { ret = dma_buf_vmap(bo->tbo.base.dma_buf, map); if (ret) { drm_dbg_driver(&vmw->drm, @@ -447,7 +447,7 @@ static void *map_external(struct vmw_bo *bo, struct iosys_map *map) static void unmap_external(struct vmw_bo *bo, struct iosys_map *map) { - if (bo->tbo.base.import_attach) + if (drm_gem_is_imported(&bo->tbo.base)) dma_buf_vunmap(bo->tbo.base.dma_buf, map); else vmw_bo_unmap(bo); diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c index ed5015ced392..200240fecf7d 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c @@ -84,7 +84,7 @@ static int vmw_gem_vmap(struct drm_gem_object *obj, struct iosys_map *map) struct ttm_buffer_object *bo = drm_gem_ttm_of_gem(obj); int ret; - if (obj->import_attach) { + if (drm_gem_is_imported(obj)) { ret = dma_buf_vmap(obj->import_attach->dmabuf, map); if (!ret) { if (drm_WARN_ON(obj->dev, map->is_iomem)) { @@ -101,7 +101,7 @@ static int vmw_gem_vmap(struct drm_gem_object *obj, struct iosys_map *map) static void vmw_gem_vunmap(struct drm_gem_object *obj, struct iosys_map *map) { - if (obj->import_attach) + if (drm_gem_is_imported(obj)) dma_buf_vunmap(obj->import_attach->dmabuf, map); else drm_gem_ttm_vunmap(obj, map); @@ -111,7 +111,7 @@ static int vmw_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) { int ret; - if (obj->import_attach) { + if (drm_gem_is_imported(obj)) { /* * Reset both vm_ops and vm_private_data, so we don't end up with * vm_ops pointing to our implementation if the dma-buf backend
Instead of testing import_attach for imported GEM buffers, invoke drm_gem_is_imported() to do the test. The helper tests the dma_buf itself while import_attach is just an artifact of the import. Prepares to make import_attach optional. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Cc: Zack Rusin <zack.rusin@broadcom.com> Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com> --- drivers/gpu/drm/vmwgfx/vmwgfx_blit.c | 4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_gem.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-)