Provides fine-grained control for drivers over which buffers should be
considered when attempting to undo evictions.

Signed-off-by: Friedrich Vock <friedrich.v...@gmx.de>
---
 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

Reply via email to