Skip to content

Commit dc1d85c

Browse files
committed
drm/amdgpu: move nbio ih_doorbell_range() into ih code for vega
This mirrors what we do for other asics and this way we are sure the ih doorbell range is properly initialized. There is a comment about the way doorbells on gfx9 work that requires that they are initialized for other IPs before GFX is initialized. In this case IH is initialized before GFX, so there should be no issue. This is a prerequisite for fixing the Unsupported Request error reported through AER during driver load. Link: https://bugzilla.kernel.org/show_bug.cgi?id=216373 The error was unnoticed before and got visible because of the commit referenced below. This doesn't fix anything in the commit below, rather fixes the issue in amdgpu exposed by the commit. The reference is only to associate this commit with below one so that both go together. Fixes: 8795e18 ("PCI/portdrv: Don't disable AER reporting in get_port_device_capability()") Acked-by: Christian König <[email protected]> Reviewed-by: Lijo Lazar <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected]
1 parent 41012d7 commit dc1d85c

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

drivers/gpu/drm/amd/amdgpu/soc15.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1224,9 +1224,6 @@ static void soc15_doorbell_range_init(struct amdgpu_device *adev)
12241224
ring->use_doorbell, ring->doorbell_index,
12251225
adev->doorbell_index.sdma_doorbell_range);
12261226
}
1227-
1228-
adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
1229-
adev->irq.ih.doorbell_index);
12301227
}
12311228
}
12321229

drivers/gpu/drm/amd/amdgpu/vega10_ih.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,10 @@ static int vega10_ih_irq_init(struct amdgpu_device *adev)
289289
}
290290
}
291291

292+
if (!amdgpu_sriov_vf(adev))
293+
adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
294+
adev->irq.ih.doorbell_index);
295+
292296
pci_set_master(adev->pdev);
293297

294298
/* enable interrupts */

drivers/gpu/drm/amd/amdgpu/vega20_ih.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,10 @@ static int vega20_ih_irq_init(struct amdgpu_device *adev)
340340
}
341341
}
342342

343+
if (!amdgpu_sriov_vf(adev))
344+
adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
345+
adev->irq.ih.doorbell_index);
346+
343347
pci_set_master(adev->pdev);
344348

345349
/* enable interrupts */

0 commit comments

Comments
 (0)