drm:amdgpu: enable IH RB ring1 for IH v6.0
authorSunil Khatri <sunil.khatri@amd.com>
Fri, 12 Apr 2024 08:49:36 +0000 (14:19 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 19 Apr 2024 03:45:22 +0000 (23:45 -0400)
We need IH ring1 for handling the pagefault
interrupts which are overflowing the default
ring for specific usecases.

Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/ih_v6_0.c

index ad4ad39..26dc992 100644 (file)
@@ -549,8 +549,15 @@ static int ih_v6_0_sw_init(void *handle)
        adev->irq.ih.use_doorbell = true;
        adev->irq.ih.doorbell_index = adev->doorbell_index.ih << 1;
 
-       adev->irq.ih1.ring_size = 0;
-       adev->irq.ih2.ring_size = 0;
+       if (!(adev->flags & AMD_IS_APU)) {
+               r = amdgpu_ih_ring_init(adev, &adev->irq.ih1, IH_RING_SIZE,
+                                       use_bus_addr);
+               if (r)
+                       return r;
+
+               adev->irq.ih1.use_doorbell = true;
+               adev->irq.ih1.doorbell_index = (adev->doorbell_index.ih + 1) << 1;
+       }
 
        /* initialize ih control register offset */
        ih_v6_0_init_register_offset(adev);