aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0463-drm-amdgpu-remove-GART-page-addr-array.patch
diff options
context:
space:
mode:
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.patch102
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
+