Commit 274840e5 authored by Felix Kuehling's avatar Felix Kuehling Committed by Alex Deucher

drm/ttm: Add release_notify callback to ttm_bo_driver

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: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent d9ec5cfd
...@@ -671,6 +671,9 @@ static void ttm_bo_release(struct kref *kref) ...@@ -671,6 +671,9 @@ static void ttm_bo_release(struct kref *kref)
struct ttm_bo_device *bdev = bo->bdev; struct ttm_bo_device *bdev = bo->bdev;
struct ttm_mem_type_manager *man = &bdev->man[bo->mem.mem_type]; 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); drm_vma_offset_remove(&bdev->vma_manager, &bo->vma_node);
ttm_mem_io_lock(man, false); ttm_mem_io_lock(man, false);
ttm_mem_io_free_vm(bo); ttm_mem_io_free_vm(bo);
......
...@@ -390,6 +390,16 @@ struct ttm_bo_driver { ...@@ -390,6 +390,16 @@ struct ttm_bo_driver {
* notify driver that a BO was deleted from LRU. * notify driver that a BO was deleted from LRU.
*/ */
void (*del_from_lru_notify)(struct ttm_buffer_object *bo); 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);
}; };
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment