drm/panthor: Test for imported buffers with drm_gem_is_imported()
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: Boris Brezillon <boris.brezillon@collabora.com> Cc: Steven Price <steven.price@arm.com> Cc: Liviu Dudau <liviu.dudau@arm.com> Reviewed-by: Liviu Dudau <liviu.dudau@arm.com> Reviewed-by: Steven Price <steven.price@arm.com> Link: https://lore.kernel.org/r/20250317131923.238374-10-tzimmermann@suse.de
This commit is contained in:
parent
26d3dbcb51
commit
4d41a1784f
2 changed files with 6 additions and 6 deletions
|
|
@ -155,7 +155,7 @@ static enum drm_gem_object_status panthor_gem_status(struct drm_gem_object *obj)
|
|||
struct panthor_gem_object *bo = to_panthor_bo(obj);
|
||||
enum drm_gem_object_status res = 0;
|
||||
|
||||
if (bo->base.base.import_attach || bo->base.pages)
|
||||
if (drm_gem_is_imported(&bo->base.base) || bo->base.pages)
|
||||
res |= DRM_GEM_OBJECT_RESIDENT;
|
||||
|
||||
return res;
|
||||
|
|
|
|||
|
|
@ -1102,7 +1102,7 @@ static void panthor_vm_bo_put(struct drm_gpuvm_bo *vm_bo)
|
|||
/* If the vm_bo object was destroyed, release the pin reference that
|
||||
* was hold by this object.
|
||||
*/
|
||||
if (unpin && !bo->base.base.import_attach)
|
||||
if (unpin && !drm_gem_is_imported(&bo->base.base))
|
||||
drm_gem_shmem_unpin(&bo->base);
|
||||
|
||||
drm_gpuvm_put(vm);
|
||||
|
|
@ -1233,7 +1233,7 @@ static int panthor_vm_prepare_map_op_ctx(struct panthor_vm_op_ctx *op_ctx,
|
|||
if (ret)
|
||||
goto err_cleanup;
|
||||
|
||||
if (!bo->base.base.import_attach) {
|
||||
if (!drm_gem_is_imported(&bo->base.base)) {
|
||||
/* Pre-reserve the BO pages, so the map operation doesn't have to
|
||||
* allocate.
|
||||
*/
|
||||
|
|
@ -1244,7 +1244,7 @@ static int panthor_vm_prepare_map_op_ctx(struct panthor_vm_op_ctx *op_ctx,
|
|||
|
||||
sgt = drm_gem_shmem_get_pages_sgt(&bo->base);
|
||||
if (IS_ERR(sgt)) {
|
||||
if (!bo->base.base.import_attach)
|
||||
if (!drm_gem_is_imported(&bo->base.base))
|
||||
drm_gem_shmem_unpin(&bo->base);
|
||||
|
||||
ret = PTR_ERR(sgt);
|
||||
|
|
@ -1255,7 +1255,7 @@ static int panthor_vm_prepare_map_op_ctx(struct panthor_vm_op_ctx *op_ctx,
|
|||
|
||||
preallocated_vm_bo = drm_gpuvm_bo_create(&vm->base, &bo->base.base);
|
||||
if (!preallocated_vm_bo) {
|
||||
if (!bo->base.base.import_attach)
|
||||
if (!drm_gem_is_imported(&bo->base.base))
|
||||
drm_gem_shmem_unpin(&bo->base);
|
||||
|
||||
ret = -ENOMEM;
|
||||
|
|
@ -1281,7 +1281,7 @@ static int panthor_vm_prepare_map_op_ctx(struct panthor_vm_op_ctx *op_ctx,
|
|||
* which will be released in panthor_vm_bo_put().
|
||||
*/
|
||||
if (preallocated_vm_bo != op_ctx->map.vm_bo &&
|
||||
!bo->base.base.import_attach)
|
||||
!drm_gem_is_imported(&bo->base.base))
|
||||
drm_gem_shmem_unpin(&bo->base);
|
||||
|
||||
op_ctx->map.bo_offset = offset;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue