diff --git a/src/panfrost/lib/pan_bo.c b/src/panfrost/lib/pan_bo.c index 77d59a2719a..ab26b2b5ddc 100644 --- a/src/panfrost/lib/pan_bo.c +++ b/src/panfrost/lib/pan_bo.c @@ -521,3 +521,16 @@ panfrost_bo_export(struct panfrost_bo *bo) return ret; } + +struct panfrost_bo * +panfrost_bo_from_kmod_bo(struct panfrost_device *dev, + struct pan_kmod_bo *kmod_bo) +{ + if (!kmod_bo) + return NULL; + + struct panfrost_bo *bo = pan_lookup_bo(dev, pan_kmod_bo_handle(kmod_bo)); + assert(bo->kmod_bo == kmod_bo); + + return bo; +} diff --git a/src/panfrost/lib/pan_bo.h b/src/panfrost/lib/pan_bo.h index c9e016eeff7..bc738d55138 100644 --- a/src/panfrost/lib/pan_bo.h +++ b/src/panfrost/lib/pan_bo.h @@ -127,6 +127,9 @@ panfrost_bo_handle(struct panfrost_bo *bo) return bo->kmod_bo->handle; } +struct panfrost_bo *panfrost_bo_from_kmod_bo(struct panfrost_device *dev, + struct pan_kmod_bo *kmod_bo); + bool panfrost_bo_wait(struct panfrost_bo *bo, int64_t timeout_ns, bool wait_readers); void panfrost_bo_reference(struct panfrost_bo *bo);