* [PATCH v2 0/2] Add VCN and JPEG poison consumption event handling
@ 2022-05-10 4:10 Mohammad Zafar Ziya
2022-05-10 4:10 ` [PATCH v2 1/2] drm/amdgpu/jpeg: add jpeg ras poison consumption handling Mohammad Zafar Ziya
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Mohammad Zafar Ziya @ 2022-05-10 4:10 UTC (permalink / raw)
To: Hawking.Zhang, lijo.lazar, Tao.Zhou1; +Cc: Mohammad Zafar Ziya, amd-gfx
Add VCN and JPEG poison consumption event handling
Mohammad Zafar Ziya (2):
drm/amdgpu/jpeg: add jpeg ras poison consumption handling
drm/amdgpu/vcn: Add vcn ras poison consumption event handling
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c | 18 ++++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h | 4 ++++
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 18 ++++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 5 +++++
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 16 ++++++++++++++++
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 9 +++++++++
.../amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h | 4 ++++
7 files changed, 74 insertions(+)
--
2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 1/2] drm/amdgpu/jpeg: add jpeg ras poison consumption handling
2022-05-10 4:10 [PATCH v2 0/2] Add VCN and JPEG poison consumption event handling Mohammad Zafar Ziya
@ 2022-05-10 4:10 ` Mohammad Zafar Ziya
2022-05-10 4:10 ` [PATCH v2 2/2] drm/amdgpu/vcn: Add vcn ras poison consumption event handling Mohammad Zafar Ziya
2022-05-10 5:36 ` [PATCH v2 0/2] Add VCN and JPEG " Zhang, Hawking
2 siblings, 0 replies; 4+ messages in thread
From: Mohammad Zafar Ziya @ 2022-05-10 4:10 UTC (permalink / raw)
To: Hawking.Zhang, lijo.lazar, Tao.Zhou1
Cc: Tao Zhou, Mohammad Zafar Ziya, amd-gfx
Add jpeg ras poison event callback and consumption handling
V2: Removed the default poison consumption cb handle
Signed-off-by: Mohammad Zafar Ziya <Mohammadzafar.ziya@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Tao Zhou <tao.zhou1@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c | 18 ++++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h | 4 ++++
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 16 ++++++++++++++++
.../amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h | 3 +++
4 files changed, 41 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
index 9342aa23ebd2..518eb0e40d32 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
@@ -216,3 +216,21 @@ int amdgpu_jpeg_dec_ring_test_ib(struct amdgpu_ring *ring, long timeout)
error:
return r;
}
+
+int amdgpu_jpeg_process_poison_irq(struct amdgpu_device *adev,
+ struct amdgpu_irq_src *source,
+ struct amdgpu_iv_entry *entry)
+{
+ struct ras_common_if *ras_if = adev->jpeg.ras_if;
+ struct ras_dispatch_if ih_data = {
+ .entry = entry,
+ };
+
+ if (!ras_if)
+ return 0;
+
+ ih_data.head = *ras_if;
+ amdgpu_ras_interrupt_dispatch(adev, &ih_data);
+
+ return 0;
+}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h
index b6c7fb00e05a..635dca59a70a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h
@@ -69,4 +69,8 @@ void amdgpu_jpeg_ring_end_use(struct amdgpu_ring *ring);
int amdgpu_jpeg_dec_ring_test_ring(struct amdgpu_ring *ring);
int amdgpu_jpeg_dec_ring_test_ib(struct amdgpu_ring *ring, long timeout);
+int amdgpu_jpeg_process_poison_irq(struct amdgpu_device *adev,
+ struct amdgpu_irq_src *source,
+ struct amdgpu_iv_entry *entry);
+
#endif /*__AMDGPU_JPEG_H__*/
diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
index c2bf036a7330..f87d0f6ffc93 100644
--- a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
+++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
@@ -99,6 +99,18 @@ static int jpeg_v2_5_sw_init(void *handle)
VCN_2_0__SRCID__JPEG_DECODE, &adev->jpeg.inst[i].irq);
if (r)
return r;
+
+ /* JPEG DJPEG POISON EVENT */
+ r = amdgpu_irq_add_id(adev, amdgpu_ih_clientid_jpeg[i],
+ VCN_2_6__SRCID_DJPEG0_POISON, &adev->jpeg.inst[i].irq);
+ if (r)
+ return r;
+
+ /* JPEG EJPEG POISON EVENT */
+ r = amdgpu_irq_add_id(adev, amdgpu_ih_clientid_jpeg[i],
+ VCN_2_6__SRCID_EJPEG0_POISON, &adev->jpeg.inst[i].irq);
+ if (r)
+ return r;
}
r = amdgpu_jpeg_sw_init(adev);
@@ -573,6 +585,10 @@ static int jpeg_v2_5_process_interrupt(struct amdgpu_device *adev,
case VCN_2_0__SRCID__JPEG_DECODE:
amdgpu_fence_process(&adev->jpeg.inst[ip_instance].ring_dec);
break;
+ case VCN_2_6__SRCID_DJPEG0_POISON:
+ case VCN_2_6__SRCID_EJPEG0_POISON:
+ amdgpu_jpeg_process_poison_irq(adev, source, entry);
+ break;
default:
DRM_ERROR("Unhandled interrupt: %d %d\n",
entry->src_id, entry->src_data[0]);
diff --git a/drivers/gpu/drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h b/drivers/gpu/drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h
index 17acac147013..f842eb0d65bb 100644
--- a/drivers/gpu/drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h
+++ b/drivers/gpu/drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h
@@ -29,4 +29,7 @@
#define VCN_2_0__SRCID__JPEG_ENCODE 151 // 0x97 JRBC Encode interrupt
#define VCN_2_0__SRCID__JPEG_DECODE 153 // 0x99 JRBC Decode interrupt
+#define VCN_2_6__SRCID_DJPEG0_POISON 161
+#define VCN_2_6__SRCID_EJPEG0_POISON 162
+
#endif
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] drm/amdgpu/vcn: Add vcn ras poison consumption event handling
2022-05-10 4:10 [PATCH v2 0/2] Add VCN and JPEG poison consumption event handling Mohammad Zafar Ziya
2022-05-10 4:10 ` [PATCH v2 1/2] drm/amdgpu/jpeg: add jpeg ras poison consumption handling Mohammad Zafar Ziya
@ 2022-05-10 4:10 ` Mohammad Zafar Ziya
2022-05-10 5:36 ` [PATCH v2 0/2] Add VCN and JPEG " Zhang, Hawking
2 siblings, 0 replies; 4+ messages in thread
From: Mohammad Zafar Ziya @ 2022-05-10 4:10 UTC (permalink / raw)
To: Hawking.Zhang, lijo.lazar, Tao.Zhou1
Cc: Tao Zhou, Mohammad Zafar Ziya, amd-gfx
Add vcn ras poison consumption event handling
V2: Removed default poison consumption handling function cb
Signed-off-by: Mohammad Zafar Ziya <Mohammadzafar.ziya@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Tao Zhou <tao.zhou1@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 18 ++++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 5 +++++
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 9 +++++++++
.../amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h | 1 +
4 files changed, 33 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
index 0974ebf9a9a4..aa7acfabf360 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
@@ -1126,3 +1126,21 @@ void amdgpu_vcn_fwlog_init(struct amdgpu_vcn_inst *vcn)
log_buf->wrapped = 0;
#endif
}
+
+int amdgpu_vcn_process_poison_irq(struct amdgpu_device *adev,
+ struct amdgpu_irq_src *source,
+ struct amdgpu_iv_entry *entry)
+{
+ struct ras_common_if *ras_if = adev->vcn.ras_if;
+ struct ras_dispatch_if ih_data = {
+ .entry = entry,
+ };
+
+ if (!ras_if)
+ return 0;
+
+ ih_data.head = *ras_if;
+ amdgpu_ras_interrupt_dispatch(adev, &ih_data);
+
+ return 0;
+}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h
index 8e7aec822a1a..6f90fcee0f9c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h
@@ -375,4 +375,9 @@ void amdgpu_vcn_setup_ucode(struct amdgpu_device *adev);
void amdgpu_vcn_fwlog_init(struct amdgpu_vcn_inst *vcn);
void amdgpu_debugfs_vcn_fwlog_init(struct amdgpu_device *adev,
uint8_t i, struct amdgpu_vcn_inst *vcn);
+
+int amdgpu_vcn_process_poison_irq(struct amdgpu_device *adev,
+ struct amdgpu_irq_src *source,
+ struct amdgpu_iv_entry *entry);
+
#endif
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
index abf5ea238962..8a7006d62a87 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
@@ -139,6 +139,12 @@ static int vcn_v2_5_sw_init(void *handle)
if (r)
return r;
}
+
+ /* VCN POISON TRAP */
+ r = amdgpu_irq_add_id(adev, amdgpu_ih_clientid_vcns[j],
+ VCN_2_6__SRCID_UVD_POISON, &adev->vcn.inst[j].irq);
+ if (r)
+ return r;
}
r = amdgpu_vcn_sw_init(adev);
@@ -1855,6 +1861,9 @@ static int vcn_v2_5_process_interrupt(struct amdgpu_device *adev,
case VCN_2_0__SRCID__UVD_ENC_LOW_LATENCY:
amdgpu_fence_process(&adev->vcn.inst[ip_instance].ring_enc[1]);
break;
+ case VCN_2_6__SRCID_UVD_POISON:
+ amdgpu_vcn_process_poison_irq(adev, source, entry);
+ break;
default:
DRM_ERROR("Unhandled interrupt: %d %d\n",
entry->src_id, entry->src_data[0]);
diff --git a/drivers/gpu/drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h b/drivers/gpu/drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h
index f842eb0d65bb..c817061a000a 100644
--- a/drivers/gpu/drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h
+++ b/drivers/gpu/drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h
@@ -29,6 +29,7 @@
#define VCN_2_0__SRCID__JPEG_ENCODE 151 // 0x97 JRBC Encode interrupt
#define VCN_2_0__SRCID__JPEG_DECODE 153 // 0x99 JRBC Decode interrupt
+#define VCN_2_6__SRCID_UVD_POISON 160
#define VCN_2_6__SRCID_DJPEG0_POISON 161
#define VCN_2_6__SRCID_EJPEG0_POISON 162
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* RE: [PATCH v2 0/2] Add VCN and JPEG poison consumption event handling
2022-05-10 4:10 [PATCH v2 0/2] Add VCN and JPEG poison consumption event handling Mohammad Zafar Ziya
2022-05-10 4:10 ` [PATCH v2 1/2] drm/amdgpu/jpeg: add jpeg ras poison consumption handling Mohammad Zafar Ziya
2022-05-10 4:10 ` [PATCH v2 2/2] drm/amdgpu/vcn: Add vcn ras poison consumption event handling Mohammad Zafar Ziya
@ 2022-05-10 5:36 ` Zhang, Hawking
2 siblings, 0 replies; 4+ messages in thread
From: Zhang, Hawking @ 2022-05-10 5:36 UTC (permalink / raw)
To: Ziya, Mohammad zafar, Lazar, Lijo, Zhou1, Tao; +Cc: amd-gfx
[AMD Official Use Only - General]
Series is
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Regards,
Hawking
-----Original Message-----
From: Ziya, Mohammad zafar <Mohammadzafar.Ziya@amd.com>
Sent: Tuesday, May 10, 2022 12:11
To: Zhang, Hawking <Hawking.Zhang@amd.com>; Lazar, Lijo <Lijo.Lazar@amd.com>; Zhou1, Tao <Tao.Zhou1@amd.com>
Cc: amd-gfx@lists.freedesktop.org; Ziya, Mohammad zafar <Mohammadzafar.Ziya@amd.com>
Subject: [PATCH v2 0/2] Add VCN and JPEG poison consumption event handling
Add VCN and JPEG poison consumption event handling
Mohammad Zafar Ziya (2):
drm/amdgpu/jpeg: add jpeg ras poison consumption handling
drm/amdgpu/vcn: Add vcn ras poison consumption event handling
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c | 18 ++++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h | 4 ++++
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 18 ++++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 5 +++++
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 16 ++++++++++++++++
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 9 +++++++++
.../amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h | 4 ++++
7 files changed, 74 insertions(+)
--
2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-05-10 5:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-10 4:10 [PATCH v2 0/2] Add VCN and JPEG poison consumption event handling Mohammad Zafar Ziya
2022-05-10 4:10 ` [PATCH v2 1/2] drm/amdgpu/jpeg: add jpeg ras poison consumption handling Mohammad Zafar Ziya
2022-05-10 4:10 ` [PATCH v2 2/2] drm/amdgpu/vcn: Add vcn ras poison consumption event handling Mohammad Zafar Ziya
2022-05-10 5:36 ` [PATCH v2 0/2] Add VCN and JPEG " Zhang, Hawking
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).