aboutsummaryrefslogtreecommitdiffstats
path: root/meta-steppeeagle/recipes-kernel/linux/linux-yocto/0016-yocto-amd-drm-radeon-add-radeon_vm_bo_update-trace-point.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-steppeeagle/recipes-kernel/linux/linux-yocto/0016-yocto-amd-drm-radeon-add-radeon_vm_bo_update-trace-point.patch')
-rw-r--r--meta-steppeeagle/recipes-kernel/linux/linux-yocto/0016-yocto-amd-drm-radeon-add-radeon_vm_bo_update-trace-point.patch138
1 files changed, 138 insertions, 0 deletions
diff --git a/meta-steppeeagle/recipes-kernel/linux/linux-yocto/0016-yocto-amd-drm-radeon-add-radeon_vm_bo_update-trace-point.patch b/meta-steppeeagle/recipes-kernel/linux/linux-yocto/0016-yocto-amd-drm-radeon-add-radeon_vm_bo_update-trace-point.patch
new file mode 100644
index 00000000..190b7b16
--- /dev/null
+++ b/meta-steppeeagle/recipes-kernel/linux/linux-yocto/0016-yocto-amd-drm-radeon-add-radeon_vm_bo_update-trace-point.patch
@@ -0,0 +1,138 @@
+From b72be939a9ff7a33b0aa3ff3bd196ea016b8dce1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Mon, 25 Nov 2013 15:42:11 +0100
+Subject: [PATCH 16/44] drm/radeon: add radeon_vm_bo_update trace point
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Also rename the function to better reflect what it is doing.
+
+agd5f: fix argument size warning
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/radeon/radeon.h | 8 ++++----
+ drivers/gpu/drm/radeon/radeon_cs.c | 4 ++--
+ drivers/gpu/drm/radeon/radeon_gart.c | 14 ++++++++------
+ drivers/gpu/drm/radeon/radeon_trace.h | 18 ++++++++++++++++++
+ 4 files changed, 32 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
+index b212569..37e619c 100644
+--- a/drivers/gpu/drm/radeon/radeon.h
++++ b/drivers/gpu/drm/radeon/radeon.h
+@@ -2705,10 +2705,10 @@ void radeon_vm_fence(struct radeon_device *rdev,
+ struct radeon_vm *vm,
+ struct radeon_fence *fence);
+ uint64_t radeon_vm_map_gart(struct radeon_device *rdev, uint64_t addr);
+-int radeon_vm_bo_update_pte(struct radeon_device *rdev,
+- struct radeon_vm *vm,
+- struct radeon_bo *bo,
+- struct ttm_mem_reg *mem);
++int radeon_vm_bo_update(struct radeon_device *rdev,
++ struct radeon_vm *vm,
++ struct radeon_bo *bo,
++ struct ttm_mem_reg *mem);
+ void radeon_vm_bo_invalidate(struct radeon_device *rdev,
+ struct radeon_bo *bo);
+ struct radeon_bo_va *radeon_vm_bo_find(struct radeon_vm *vm,
+diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
+index eb5cd94..83731ff 100644
+--- a/drivers/gpu/drm/radeon/radeon_cs.c
++++ b/drivers/gpu/drm/radeon/radeon_cs.c
+@@ -407,13 +407,13 @@ static int radeon_bo_vm_update_pte(struct radeon_cs_parser *parser,
+ struct radeon_bo *bo;
+ int r;
+
+- r = radeon_vm_bo_update_pte(rdev, vm, rdev->ring_tmp_bo.bo, &rdev->ring_tmp_bo.bo->tbo.mem);
++ r = radeon_vm_bo_update(rdev, vm, rdev->ring_tmp_bo.bo, &rdev->ring_tmp_bo.bo->tbo.mem);
+ if (r) {
+ return r;
+ }
+ list_for_each_entry(lobj, &parser->validated, tv.head) {
+ bo = lobj->bo;
+- r = radeon_vm_bo_update_pte(parser->rdev, vm, bo, &bo->tbo.mem);
++ r = radeon_vm_bo_update(parser->rdev, vm, bo, &bo->tbo.mem);
+ if (r) {
+ return r;
+ }
+diff --git a/drivers/gpu/drm/radeon/radeon_gart.c b/drivers/gpu/drm/radeon/radeon_gart.c
+index f7c0b64..33bd02e 100644
+--- a/drivers/gpu/drm/radeon/radeon_gart.c
++++ b/drivers/gpu/drm/radeon/radeon_gart.c
+@@ -1071,7 +1071,7 @@ static void radeon_vm_update_ptes(struct radeon_device *rdev,
+ }
+
+ /**
+- * radeon_vm_bo_update_pte - map a bo into the vm page table
++ * radeon_vm_bo_update - map a bo into the vm page table
+ *
+ * @rdev: radeon_device pointer
+ * @vm: requested vm
+@@ -1083,10 +1083,10 @@ static void radeon_vm_update_ptes(struct radeon_device *rdev,
+ *
+ * Object have to be reserved & global and local mutex must be locked!
+ */
+-int radeon_vm_bo_update_pte(struct radeon_device *rdev,
+- struct radeon_vm *vm,
+- struct radeon_bo *bo,
+- struct ttm_mem_reg *mem)
++int radeon_vm_bo_update(struct radeon_device *rdev,
++ struct radeon_vm *vm,
++ struct radeon_bo *bo,
++ struct ttm_mem_reg *mem)
+ {
+ unsigned ridx = rdev->asic->vm.pt_ring_index;
+ struct radeon_ib ib;
+@@ -1132,6 +1132,8 @@ int radeon_vm_bo_update_pte(struct radeon_device *rdev,
+ bo_va->valid = false;
+ }
+
++ trace_radeon_vm_bo_update(bo_va);
++
+ nptes = radeon_bo_ngpu_pages(bo);
+
+ /* assume two extra pdes in case the mapping overlaps the borders */
+@@ -1210,7 +1212,7 @@ int radeon_vm_bo_rmv(struct radeon_device *rdev,
+ mutex_lock(&rdev->vm_manager.lock);
+ mutex_lock(&bo_va->vm->mutex);
+ if (bo_va->soffset) {
+- r = radeon_vm_bo_update_pte(rdev, bo_va->vm, bo_va->bo, NULL);
++ r = radeon_vm_bo_update(rdev, bo_va->vm, bo_va->bo, NULL);
+ }
+ mutex_unlock(&rdev->vm_manager.lock);
+ list_del(&bo_va->vm_list);
+diff --git a/drivers/gpu/drm/radeon/radeon_trace.h b/drivers/gpu/drm/radeon/radeon_trace.h
+index 8c13aec..0473257 100644
+--- a/drivers/gpu/drm/radeon/radeon_trace.h
++++ b/drivers/gpu/drm/radeon/radeon_trace.h
+@@ -62,6 +62,24 @@ TRACE_EVENT(radeon_vm_grab_id,
+ TP_printk("vmid=%u, ring=%u", __entry->vmid, __entry->ring)
+ );
+
++TRACE_EVENT(radeon_vm_bo_update,
++ TP_PROTO(struct radeon_bo_va *bo_va),
++ TP_ARGS(bo_va),
++ TP_STRUCT__entry(
++ __field(u64, soffset)
++ __field(u64, eoffset)
++ __field(u32, flags)
++ ),
++
++ TP_fast_assign(
++ __entry->soffset = bo_va->soffset;
++ __entry->eoffset = bo_va->eoffset;
++ __entry->flags = bo_va->flags;
++ ),
++ TP_printk("soffs=%010llx, eoffs=%010llx, flags=%08x",
++ __entry->soffset, __entry->eoffset, __entry->flags)
++);
++
+ TRACE_EVENT(radeon_vm_set_page,
+ TP_PROTO(uint64_t pe, uint64_t addr, unsigned count,
+ uint32_t incr, uint32_t flags),
+--
+1.7.9.5
+