aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1970-drm-amdgpu-add-helper-to-convert-a-ttm-bo-to-amdgpu_.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1970-drm-amdgpu-add-helper-to-convert-a-ttm-bo-to-amdgpu_.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1970-drm-amdgpu-add-helper-to-convert-a-ttm-bo-to-amdgpu_.patch123
1 files changed, 123 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1970-drm-amdgpu-add-helper-to-convert-a-ttm-bo-to-amdgpu_.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1970-drm-amdgpu-add-helper-to-convert-a-ttm-bo-to-amdgpu_.patch
new file mode 100644
index 00000000..66b235bc
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1970-drm-amdgpu-add-helper-to-convert-a-ttm-bo-to-amdgpu_.patch
@@ -0,0 +1,123 @@
+From 35b9a53bcdb68d2c610c2275c2631783e04dd9fd Mon Sep 17 00:00:00 2001
+From: Andres Rodriguez <andresx7@gmail.com>
+Date: Fri, 15 Sep 2017 21:05:19 -0400
+Subject: [PATCH 1970/4131] drm/amdgpu: add helper to convert a ttm bo to
+ amdgpu_bo
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Reviewed-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+
+ Conflicts:
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+
+Change-Id: I69d5823d50e1cc855ebb7bc82d9dfb746ae8fccf
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 8 +++-----
+ drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 5 +++++
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 9 +++++----
+ 3 files changed, 13 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+index c560f1b..458e0d8 100755
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+@@ -41,9 +41,7 @@
+ static void amdgpu_ttm_bo_destroy(struct ttm_buffer_object *tbo)
+ {
+ struct amdgpu_device *adev = amdgpu_ttm_adev(tbo->bdev);
+- struct amdgpu_bo *bo;
+-
+- bo = container_of(tbo, struct amdgpu_bo, tbo);
++ struct amdgpu_bo *bo = ttm_to_amdgpu_bo(tbo);
+
+ if (bo->tbo.mem.mem_type == AMDGPU_PL_DGMA_IMPORT)
+ kfree(tbo->mem.bus.addr);
+@@ -927,7 +925,7 @@ void amdgpu_bo_move_notify(struct ttm_buffer_object *bo,
+ if (!amdgpu_ttm_bo_is_amdgpu_bo(bo))
+ return;
+
+- abo = container_of(bo, struct amdgpu_bo, tbo);
++ abo = ttm_to_amdgpu_bo(bo);
+ amdgpu_vm_bo_invalidate(adev, abo, evict);
+
+ amdgpu_bo_kunmap(abo);
+@@ -954,7 +952,7 @@ int amdgpu_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
+ if (!amdgpu_ttm_bo_is_amdgpu_bo(bo))
+ return 0;
+
+- abo = container_of(bo, struct amdgpu_bo, tbo);
++ abo = ttm_to_amdgpu_bo(bo);
+
+ /* Remember that this BO was accessed by the CPU */
+ abo->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
+index abf207e..1f59c71 100755
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
+@@ -97,6 +97,11 @@ struct amdgpu_bo {
+ };
+ };
+
++static inline struct amdgpu_bo *ttm_to_amdgpu_bo(struct ttm_buffer_object *tbo)
++{
++ return container_of(tbo, struct amdgpu_bo, tbo);
++}
++
+ /**
+ * amdgpu_mem_type_to_domain - return domain corresponding to mem_type
+ * @mem_type: ttm memory type
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+index 857a3ca..598c940 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+@@ -44,6 +44,7 @@
+ #include <linux/debugfs.h>
+ #include <linux/iommu.h>
+ #include "amdgpu.h"
++#include "amdgpu_object.h"
+ #include "amdgpu_trace.h"
+ #include "bif/bif_4_1_d.h"
+ #include "amdgpu_amdkfd.h"
+@@ -227,7 +228,7 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo,
+ placement->num_busy_placement = 1;
+ return;
+ }
+- abo = container_of(bo, struct amdgpu_bo, tbo);
++ abo = ttm_to_amdgpu_bo(bo);
+ switch (bo->mem.mem_type) {
+ case TTM_PL_VRAM:
+ case AMDGPU_PL_DGMA:
+@@ -282,7 +283,7 @@ static int amdgpu_verify_access(struct ttm_buffer_object *bo, struct file *filp)
+ struct amdgpu_gem_object *gobj;
+
+
+- abo = container_of(bo, struct amdgpu_bo, tbo);
++ abo = ttm_to_amdgpu_bo(bo);
+ /*
+ * Don't verify access for KFD BO as it doesn't necessary has
+ * KGD file pointer
+@@ -527,7 +528,7 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo,
+ int r;
+
+ /* Can't move a pinned BO */
+- abo = container_of(bo, struct amdgpu_bo, tbo);
++ abo = ttm_to_amdgpu_bo(bo);
+ if (WARN_ON_ONCE(abo->pin_count > 0))
+ return -EINVAL;
+
+@@ -1219,7 +1220,7 @@ static int amdgpu_ttm_access_memory(struct ttm_buffer_object *bo,
+ unsigned long offset,
+ void *buf, int len, int write)
+ {
+- struct amdgpu_bo *abo = container_of(bo, struct amdgpu_bo, tbo);
++ struct amdgpu_bo *abo = ttm_to_amdgpu_bo(bo);
+ struct amdgpu_device *adev = amdgpu_ttm_adev(abo->tbo.bdev);
+ struct drm_mm_node *nodes = abo->tbo.mem.mm_node;
+ uint32_t value = 0;
+--
+2.7.4
+