Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu/tonga_ih: Enable soft IRQ handler ring

We are going to use the soft IRQ handler ring on GMC v8
to process interrupts from VM faults.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Timur Kristóf and committed by
Alex Deucher
f8085859 f4fa4c9e

+10
+10
drivers/gpu/drm/amd/amdgpu/tonga_ih.c
··· 159 159 /* enable interrupts */ 160 160 tonga_ih_enable_interrupts(adev); 161 161 162 + if (adev->irq.ih_soft.ring_size) 163 + adev->irq.ih_soft.enabled = true; 164 + 162 165 return 0; 163 166 } 164 167 ··· 198 195 u32 wptr, tmp; 199 196 200 197 wptr = le32_to_cpu(*ih->wptr_cpu); 198 + 199 + if (ih == &adev->irq.ih_soft) 200 + goto out; 201 201 202 202 if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) 203 203 goto out; ··· 309 303 struct amdgpu_device *adev = ip_block->adev; 310 304 311 305 r = amdgpu_ih_ring_init(adev, &adev->irq.ih, 64 * 1024, true); 306 + if (r) 307 + return r; 308 + 309 + r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft, IH_SW_RING_SIZE, true); 312 310 if (r) 313 311 return r; 314 312