This notifies the driver that a BO is about to be released.
Releasing a BO also invokes the move_notify callback from
ttm_bo_cleanup_memtype_use, but that happens too late for anything
that would add fences to the BO and require a delayed delete.
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
        struct ttm_bo_device *bdev = bo->bdev;
        struct ttm_mem_type_manager *man = &bdev->man[bo->mem.mem_type];
 
+       if (bo->bdev->driver->release_notify)
+               bo->bdev->driver->release_notify(bo);
+
        drm_vma_offset_remove(&bdev->vma_manager, &bo->vma_node);
        ttm_mem_io_lock(man, false);
        ttm_mem_io_free_vm(bo);
 
         * notify driver that a BO was deleted from LRU.
         */
        void (*del_from_lru_notify)(struct ttm_buffer_object *bo);
+
+       /**
+        * Notify the driver that we're about to release a BO
+        *
+        * @bo: BO that is about to be released
+        *
+        * Gives the driver a chance to do any cleanup, including
+        * adding fences that may force a delayed delete
+        */
+       void (*release_notify)(struct ttm_buffer_object *bo);
 };
 
 /**