OSDN Git Service

drm/ttm: make some inline helper functions for cleanup paths. (v2)
authorDave Airlie <airlied@redhat.com>
Tue, 4 Aug 2020 02:55:58 +0000 (12:55 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 6 Aug 2020 02:32:03 +0000 (12:32 +1000)
The disable path is just temporary for now, it will be dropped once has_type
is gone in a later patch.

v2: add docs.
rename to ttm_mem_type_manager namespace

Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200804025632.3868079-26-airlied@gmail.com
drivers/gpu/drm/ttm/ttm_bo.c
include/drm/ttm/ttm_bo_driver.h

index 53017cf..be0c0a0 100644 (file)
@@ -1466,8 +1466,7 @@ int ttm_bo_clean_mm(struct ttm_bo_device *bdev, unsigned mem_type)
                return ret;
        }
 
-       man->use_type = false;
-       man->has_type = false;
+       ttm_mem_type_manager_disable(man);
 
        ret = 0;
        if (mem_type > 0) {
@@ -1480,8 +1479,7 @@ int ttm_bo_clean_mm(struct ttm_bo_device *bdev, unsigned mem_type)
                ret = (*man->func->takedown)(man);
        }
 
-       dma_fence_put(man->move);
-       man->move = NULL;
+       ttm_mem_type_manager_cleanup(man);
 
        return ret;
 }
index 3030142..30dfb9d 100644 (file)
@@ -691,6 +691,32 @@ static inline void ttm_mem_type_manager_set_used(struct ttm_mem_type_manager *ma
        man->use_type = used;
 }
 
+/**
+ * ttm_mem_type_manager_disable.
+ *
+ * @man: A memory manager object.
+ *
+ * Indicate the manager is not to be used and deregistered. (temporary during rework).
+ */
+static inline void ttm_mem_type_manager_disable(struct ttm_mem_type_manager *man)
+{
+       man->has_type = false;
+       man->use_type = false;
+}
+
+/**
+ * ttm_mem_type_manager_cleanup
+ *
+ * @man: A memory manager object.
+ *
+ * Cleanup the move fences from the memory manager object.
+ */
+static inline void ttm_mem_type_manager_cleanup(struct ttm_mem_type_manager *man)
+{
+       dma_fence_put(man->move);
+       man->move = NULL;
+}
+
 /*
  * ttm_bo_util.c
  */