summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
diff options
context:
space:
mode:
authorThomas Hellström <thomas.hellstrom@linux.intel.com>2025-12-04 22:54:56 +0100
committerThomas Hellström <thomas.hellstrom@linux.intel.com>2025-12-04 22:54:56 +0100
commit3f1c07fc21c68bd3bd2df9d2c9441f6485e934d9 (patch)
tree2bbe746323ca53170b1c6f18f67178021d5854f5 /drivers/gpu/drm/amd/amdgpu/iceland_ih.c
parentd72312d730450aab225a80bc84436757b85b08b5 (diff)
parent0692602defb0c273f80dec9c564ca50726404aca (diff)
Merge drm/drm-next into drm-xe-next-fixes
Backmerging to be able do to a clean PR. Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/iceland_ih.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/iceland_ih.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/iceland_ih.c b/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
index 1317ede131b6..01cadf898c00 100644
--- a/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
+++ b/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
@@ -157,6 +157,9 @@ static int iceland_ih_irq_init(struct amdgpu_device *adev)
/* enable interrupts */
iceland_ih_enable_interrupts(adev);
+ if (adev->irq.ih_soft.ring_size)
+ adev->irq.ih_soft.enabled = true;
+
return 0;
}
@@ -194,6 +197,9 @@ static u32 iceland_ih_get_wptr(struct amdgpu_device *adev,
wptr = le32_to_cpu(*ih->wptr_cpu);
+ if (ih == &adev->irq.ih_soft)
+ goto out;
+
if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
goto out;
@@ -296,6 +302,10 @@ static int iceland_ih_sw_init(struct amdgpu_ip_block *ip_block)
if (r)
return r;
+ r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft, IH_SW_RING_SIZE, true);
+ if (r)
+ return r;
+
r = amdgpu_irq_init(adev);
return r;