From: Christian König Date: Mon, 13 May 2019 13:42:52 +0000 (+0200) Subject: drm/ttm: remove manual placement preference X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=af1dac01a701a7cfc511d28c32ab5159c3c78c78;p=openwrt%2Fstaging%2Fblogic.git drm/ttm: remove manual placement preference 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 Acked-by: Chunming Zhou Tested-by: Pierre-Eric Pelloux-Prayer Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 7b59e5ecde7f..702cd89adbf9 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -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];