Provides fine-grained control for drivers over which buffers should be considered when attempting to undo evictions. Signed-off-by: Friedrich Vock <friedrich.vock@xxxxxx> --- include/drm/ttm/ttm_device.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/drm/ttm/ttm_device.h b/include/drm/ttm/ttm_device.h index baa264efe483d..283795d674189 100644 --- a/include/drm/ttm/ttm_device.h +++ b/include/drm/ttm/ttm_device.h @@ -133,6 +133,29 @@ struct ttm_device_funcs { void (*evict_flags)(struct ttm_buffer_object *bo, struct ttm_placement *placement); + /** + * struct ttm_bo_driver member uneviction_valuable + * + * @bo: the buffer object to be unevicted + * + * Check with the driver if it is valuable to unevict a BO, + * that is to move it back to its placecment before it was + * evicted. + */ + bool (*uneviction_valuable)(struct ttm_buffer_object *bo); + /** + * struct ttm_bo_driver member evict_flags: + * + * @bo: the buffer object that can be unevicted + * @dest: The placement for the unevicted buffer + * + * This should not cause multihop evictions, and the core will warn + * if one is proposed. + */ + + void (*unevict_flags)(struct ttm_buffer_object *bo, + struct ttm_placement *dest); + /** * struct ttm_bo_driver member move: * -- 2.44.0