aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0798-drm-amdgpu-fix-direct-gma-failure.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0798-drm-amdgpu-fix-direct-gma-failure.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0798-drm-amdgpu-fix-direct-gma-failure.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0798-drm-amdgpu-fix-direct-gma-failure.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0798-drm-amdgpu-fix-direct-gma-failure.patch
new file mode 100644
index 00000000..03232694
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0798-drm-amdgpu-fix-direct-gma-failure.patch
@@ -0,0 +1,62 @@
+From 2874e02efe84b9cb56d61ac11c584311e53495f9 Mon Sep 17 00:00:00 2001
+From: Flora Cui <Flora.Cui@amd.com>
+Date: Wed, 19 Apr 2017 17:48:45 +0800
+Subject: [PATCH 0798/4131] drm/amdgpu: fix direct gma failure
+
+direct gma is broken on current code base
+
+Change-Id: Ic3f8b3f738b8cce226041bde47212a6043e5451f
+Signed-off-by: Flora Cui <Flora.Cui@amd.com>
+Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
+
+ Conflicts:
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 1 +
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 17 +++++++++++------
+ 2 files changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+index 3ffe412b..20db263 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+@@ -202,6 +202,7 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
+ if (args->in.domains & ~(AMDGPU_GEM_DOMAIN_CPU |
+ AMDGPU_GEM_DOMAIN_GTT |
+ AMDGPU_GEM_DOMAIN_VRAM |
++ AMDGPU_GEM_DOMAIN_DGMA |
+ AMDGPU_GEM_DOMAIN_GDS |
+ AMDGPU_GEM_DOMAIN_GWS |
+ AMDGPU_GEM_DOMAIN_OA))
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+index e150097..42d6512 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+@@ -616,13 +616,18 @@ static void amdgpu_ttm_io_mem_free(struct ttm_bo_device *bdev, struct ttm_mem_re
+ static unsigned long amdgpu_ttm_io_mem_pfn(struct ttm_buffer_object *bo,
+ unsigned long page_offset)
+ {
+- struct drm_mm_node *mm = bo->mem.mm_node;
+- uint64_t size = mm->size;
+- uint64_t offset = page_offset;
++ if (bo->mem.mem_type != AMDGPU_PL_DGMA &&
++ bo->mem.mem_type != AMDGPU_PL_DGMA_IMPORT) {
++ struct drm_mm_node *mm = bo->mem.mm_node;
++ uint64_t size = mm->size;
++ uint64_t offset = page_offset;
++
++ page_offset = do_div(offset, size);
++ mm += offset;
++ return (bo->mem.bus.base >> PAGE_SHIFT) + mm->start + page_offset;
++ }
+
+- page_offset = do_div(offset, size);
+- mm += offset;
+- return (bo->mem.bus.base >> PAGE_SHIFT) + mm->start + page_offset;
++ return ttm_bo_default_io_mem_pfn(bo, page_offset);
+ }
+
+ /*
+--
+2.7.4
+