aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1038-drm-amdgpu-add-the-IH-to-the-IV-trace.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1038-drm-amdgpu-add-the-IH-to-the-IV-trace.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/1038-drm-amdgpu-add-the-IH-to-the-IV-trace.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1038-drm-amdgpu-add-the-IH-to-the-IV-trace.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1038-drm-amdgpu-add-the-IH-to-the-IV-trace.patch
new file mode 100644
index 00000000..aa2c697a
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1038-drm-amdgpu-add-the-IH-to-the-IV-trace.patch
@@ -0,0 +1,80 @@
+From 0c9c2c10dcb1ff01d61da1a97a5e1e7762e33eee Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Wed, 26 Sep 2018 13:37:24 +0200
+Subject: [PATCH 1038/2940] drm/amdgpu: add the IH to the IV trace
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+To distinct on which IH ring an IV was found.
+
+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_irq.c | 4 ++--
+ drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 11 +++++++----
+ 2 files changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
+index 4590c7042ba7..868f23bd3017 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
+@@ -151,6 +151,8 @@ static void amdgpu_irq_callback(struct amdgpu_device *adev,
+ entry.iv_entry = (const uint32_t *)&ih->ring[ring_index];
+ amdgpu_ih_decode_iv(adev, &entry);
+
++ trace_amdgpu_iv(ih - &adev->irq.ih, &entry);
++
+ amdgpu_irq_dispatch(adev, &entry);
+ }
+
+@@ -369,8 +371,6 @@ void amdgpu_irq_dispatch(struct amdgpu_device *adev,
+ struct amdgpu_irq_src *src;
+ int r;
+
+- trace_amdgpu_iv(entry);
+-
+ if (client_id >= AMDGPU_IRQ_CLIENTID_MAX) {
+ DRM_DEBUG("Invalid client_id in IV: %d\n", client_id);
+ return;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+index 626abca770a0..d3ca2424b5fe 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+@@ -76,9 +76,10 @@ TRACE_EVENT(amdgpu_mm_wreg,
+ );
+
+ TRACE_EVENT(amdgpu_iv,
+- TP_PROTO(struct amdgpu_iv_entry *iv),
+- TP_ARGS(iv),
++ TP_PROTO(unsigned ih, struct amdgpu_iv_entry *iv),
++ TP_ARGS(ih, iv),
+ TP_STRUCT__entry(
++ __field(unsigned, ih)
+ __field(unsigned, client_id)
+ __field(unsigned, src_id)
+ __field(unsigned, ring_id)
+@@ -90,6 +91,7 @@ TRACE_EVENT(amdgpu_iv,
+ __array(unsigned, src_data, 4)
+ ),
+ TP_fast_assign(
++ __entry->ih = ih;
+ __entry->client_id = iv->client_id;
+ __entry->src_id = iv->src_id;
+ __entry->ring_id = iv->ring_id;
+@@ -103,8 +105,9 @@ TRACE_EVENT(amdgpu_iv,
+ __entry->src_data[2] = iv->src_data[2];
+ __entry->src_data[3] = iv->src_data[3];
+ ),
+- TP_printk("client_id:%u src_id:%u ring:%u vmid:%u timestamp: %llu pasid:%u src_data: %08x %08x %08x %08x",
+- __entry->client_id, __entry->src_id,
++ TP_printk("ih:%u client_id:%u src_id:%u ring:%u vmid:%u "
++ "timestamp: %llu pasid:%u src_data: %08x %08x %08x %08x",
++ __entry->ih, __entry->client_id, __entry->src_id,
+ __entry->ring_id, __entry->vmid,
+ __entry->timestamp, __entry->pasid,
+ __entry->src_data[0], __entry->src_data[1],
+--
+2.17.1
+