diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0470-drm-amdgpu-don-t-need-to-use-bo_list_clone-any-more.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0470-drm-amdgpu-don-t-need-to-use-bo_list_clone-any-more.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0470-drm-amdgpu-don-t-need-to-use-bo_list_clone-any-more.patch b/common/recipes-kernel/linux/files/0470-drm-amdgpu-don-t-need-to-use-bo_list_clone-any-more.patch new file mode 100644 index 00000000..ef6435b1 --- /dev/null +++ b/common/recipes-kernel/linux/files/0470-drm-amdgpu-don-t-need-to-use-bo_list_clone-any-more.patch @@ -0,0 +1,65 @@ +From a3348bb801bac5c9a81fb3da4b1a2f0479e97923 Mon Sep 17 00:00:00 2001 +From: Chunming Zhou <david1.zhou@amd.com> +Date: Tue, 18 Aug 2015 16:25:46 +0800 +Subject: [PATCH 0470/1050] drm/amdgpu: don't need to use bo_list_clone any + more + +Signed-off-by: Chunming Zhou <david1.zhou@amd.com> +Reviewed-by: Christian K?nig <christian.koenig@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 25 ++++--------------------- + 1 file changed, 4 insertions(+), 21 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +index 77fc7cd..2cf7f52 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +@@ -156,7 +156,6 @@ int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data) + uint64_t *chunk_array_user; + uint64_t *chunk_array = NULL; + struct amdgpu_fpriv *fpriv = p->filp->driver_priv; +- struct amdgpu_bo_list *bo_list = NULL; + unsigned size, i; + int r = 0; + +@@ -168,20 +167,7 @@ int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data) + r = -EINVAL; + goto out; + } +- bo_list = amdgpu_bo_list_get(fpriv, cs->in.bo_list_handle); +- if (!amdgpu_enable_scheduler) +- p->bo_list = bo_list; +- else { +- if (bo_list && !bo_list->has_userptr) { +- p->bo_list = amdgpu_bo_list_clone(bo_list); +- amdgpu_bo_list_put(bo_list); +- if (!p->bo_list) +- return -ENOMEM; +- } else if (bo_list && bo_list->has_userptr) +- p->bo_list = bo_list; +- else +- p->bo_list = NULL; +- } ++ p->bo_list = amdgpu_bo_list_get(fpriv, cs->in.bo_list_handle); + + /* get chunks */ + INIT_LIST_HEAD(&p->validated); +@@ -481,12 +467,9 @@ static void amdgpu_cs_parser_fini_late(struct amdgpu_cs_parser *parser) + unsigned i; + if (parser->ctx) + amdgpu_ctx_put(parser->ctx); +- if (parser->bo_list) { +- if (amdgpu_enable_scheduler && !parser->bo_list->has_userptr) +- amdgpu_bo_list_free(parser->bo_list); +- else +- amdgpu_bo_list_put(parser->bo_list); +- } ++ if (parser->bo_list) ++ amdgpu_bo_list_put(parser->bo_list); ++ + drm_free_large(parser->vm_bos); + for (i = 0; i < parser->nchunks; i++) + drm_free_large(parser->chunks[i].kdata); +-- +1.9.1 + |