88 lines
3.2 KiB
Diff
88 lines
3.2 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Alex Deucher <alexander.deucher@amd.com>
|
||
|
Date: Fri, 9 Sep 2022 11:47:20 -0400
|
||
|
Subject: [PATCH] drm/amdgpu: move nbio ih_doorbell_range() into ih code for
|
||
|
vega
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
commit dc1d85cb790f2091eea074cee24a704b2d6c4a06 upstream.
|
||
|
|
||
|
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: 8795e182b02d ("PCI/portdrv: Don't disable AER reporting in get_port_device_capability()")
|
||
|
|
||
|
Acked-by: Christian König <christian.koenig@amd.com>
|
||
|
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
|
||
|
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
||
|
Cc: stable@vger.kernel.org
|
||
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||
|
---
|
||
|
drivers/gpu/drm/amd/amdgpu/soc15.c | 3 ---
|
||
|
drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 4 ++++
|
||
|
drivers/gpu/drm/amd/amdgpu/vega20_ih.c | 4 ++++
|
||
|
3 files changed, 8 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c
|
||
|
index bdb47ae96ce6..723b088094f2 100644
|
||
|
--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
|
||
|
+++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
|
||
|
@@ -1429,9 +1429,6 @@ static void soc15_doorbell_range_init(struct amdgpu_device *adev)
|
||
|
ring->use_doorbell, ring->doorbell_index,
|
||
|
adev->doorbell_index.sdma_doorbell_range);
|
||
|
}
|
||
|
-
|
||
|
- adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
|
||
|
- adev->irq.ih.doorbell_index);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
|
||
|
index a9ca6988009e..73728fa85997 100644
|
||
|
--- a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
|
||
|
+++ b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
|
||
|
@@ -289,6 +289,10 @@ static int vega10_ih_irq_init(struct amdgpu_device *adev)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+ if (!amdgpu_sriov_vf(adev))
|
||
|
+ adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
|
||
|
+ adev->irq.ih.doorbell_index);
|
||
|
+
|
||
|
pci_set_master(adev->pdev);
|
||
|
|
||
|
/* enable interrupts */
|
||
|
diff --git a/drivers/gpu/drm/amd/amdgpu/vega20_ih.c b/drivers/gpu/drm/amd/amdgpu/vega20_ih.c
|
||
|
index f51dfc38ac65..ac34af4cb178 100644
|
||
|
--- a/drivers/gpu/drm/amd/amdgpu/vega20_ih.c
|
||
|
+++ b/drivers/gpu/drm/amd/amdgpu/vega20_ih.c
|
||
|
@@ -340,6 +340,10 @@ static int vega20_ih_irq_init(struct amdgpu_device *adev)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+ if (!amdgpu_sriov_vf(adev))
|
||
|
+ adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
|
||
|
+ adev->irq.ih.doorbell_index);
|
||
|
+
|
||
|
pci_set_master(adev->pdev);
|
||
|
|
||
|
/* enable interrupts */
|