diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0463-drm-amdgpu-remove-GART-page-addr-array.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0463-drm-amdgpu-remove-GART-page-addr-array.patch | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0463-drm-amdgpu-remove-GART-page-addr-array.patch b/common/recipes-kernel/linux/files/0463-drm-amdgpu-remove-GART-page-addr-array.patch new file mode 100644 index 00000000..f94500ca --- /dev/null +++ b/common/recipes-kernel/linux/files/0463-drm-amdgpu-remove-GART-page-addr-array.patch @@ -0,0 +1,102 @@ +From 20b0721a30fa5b190ffa239845f82eaca62163ee Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Wed, 30 Mar 2016 10:54:16 +0200 +Subject: [PATCH 0463/1110] drm/amdgpu: remove GART page addr array +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Not needed any more. + +Signed-off-by: Christian König <christian.koenig@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - + drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 22 ++++------------------ + 2 files changed, 4 insertions(+), 19 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h +index b0aeca5..35e07fb 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h +@@ -613,7 +613,6 @@ struct amdgpu_gart { + unsigned num_cpu_pages; + unsigned table_size; + struct page **pages; +- dma_addr_t *pages_addr; + bool ready; + const struct amdgpu_gart_funcs *gart_funcs; + }; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +index 7312d72..a13603a 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +@@ -240,8 +240,7 @@ void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset, + for (i = 0; i < pages; i++, p++) { + if (adev->gart.pages[p]) { + adev->gart.pages[p] = NULL; +- adev->gart.pages_addr[p] = adev->dummy_page.addr; +- page_base = adev->gart.pages_addr[p]; ++ page_base = adev->dummy_page.addr; + if (!adev->gart.ptr) + continue; + +@@ -287,10 +286,9 @@ int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset, + p = t / (PAGE_SIZE / AMDGPU_GPU_PAGE_SIZE); + + for (i = 0; i < pages; i++, p++) { +- adev->gart.pages_addr[p] = dma_addr[i]; + adev->gart.pages[p] = pagelist[i]; + if (adev->gart.ptr) { +- page_base = adev->gart.pages_addr[p]; ++ page_base = dma_addr[i]; + for (j = 0; j < (PAGE_SIZE / AMDGPU_GPU_PAGE_SIZE); j++, t++) { + amdgpu_gart_set_pte_pde(adev, adev->gart.ptr, t, page_base, flags); + page_base += AMDGPU_GPU_PAGE_SIZE; +@@ -312,7 +310,7 @@ int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset, + */ + int amdgpu_gart_init(struct amdgpu_device *adev) + { +- int r, i; ++ int r; + + if (adev->gart.pages) { + return 0; +@@ -336,16 +334,6 @@ int amdgpu_gart_init(struct amdgpu_device *adev) + amdgpu_gart_fini(adev); + return -ENOMEM; + } +- adev->gart.pages_addr = vzalloc(sizeof(dma_addr_t) * +- adev->gart.num_cpu_pages); +- if (adev->gart.pages_addr == NULL) { +- amdgpu_gart_fini(adev); +- return -ENOMEM; +- } +- /* set GART entry to point to the dummy page by default */ +- for (i = 0; i < adev->gart.num_cpu_pages; i++) { +- adev->gart.pages_addr[i] = adev->dummy_page.addr; +- } + return 0; + } + +@@ -358,15 +346,13 @@ int amdgpu_gart_init(struct amdgpu_device *adev) + */ + void amdgpu_gart_fini(struct amdgpu_device *adev) + { +- if (adev->gart.pages && adev->gart.pages_addr && adev->gart.ready) { ++ if (adev->gart.pages && adev->gart.ready) { + /* unbind pages */ + amdgpu_gart_unbind(adev, 0, adev->gart.num_cpu_pages); + } + adev->gart.ready = false; + vfree(adev->gart.pages); +- vfree(adev->gart.pages_addr); + adev->gart.pages = NULL; +- adev->gart.pages_addr = NULL; + + amdgpu_dummy_page_fini(adev); + } +-- +2.7.4 + |