drm/ttm: remove manual placement preference
authorChristian König <christian.koenig@amd.com>
Mon, 13 May 2019 13:42:52 +0000 (15:42 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 31 May 2019 15:39:34 +0000 (10:39 -0500)
If drivers don't prefer a system memory placement
they should not but it into the placement list first.

Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Chunming Zhou <david1.zhou@amd.com>
Tested-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/ttm/ttm_bo.c

index 7b59e5ecde7fea29d504b3d02788a61d8c566b79..702cd89adbf9ff5b771858c0bbd530c20ae97cae 100644 (file)
@@ -1012,8 +1012,12 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
                ttm_flag_masked(&cur_flags, place->flags,
                                ~TTM_PL_MASK_MEMTYPE);
 
-               if (mem_type == TTM_PL_SYSTEM)
-                       break;
+               if (mem_type == TTM_PL_SYSTEM) {
+                       mem->mem_type = mem_type;
+                       mem->placement = cur_flags;
+                       mem->mm_node = NULL;
+                       return 0;
+               }
 
                ret = (*man->func->get_node)(man, bo, place, mem);
                if (unlikely(ret))
@@ -1025,16 +1029,12 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
                                (*man->func->put_node)(man, mem);
                                return ret;
                        }
-                       break;
+                       mem->mem_type = mem_type;
+                       mem->placement = cur_flags;
+                       return 0;
                }
        }
 
-       if ((type_ok && (mem_type == TTM_PL_SYSTEM)) || mem->mm_node) {
-               mem->mem_type = mem_type;
-               mem->placement = cur_flags;
-               return 0;
-       }
-
        for (i = 0; i < placement->num_busy_placement; ++i) {
                const struct ttm_place *place = &placement->busy_placement[i];