* [d-kernel] [PATCH 0/2] Fix amdgpu regression for kernel 5.10
@ 2022-10-21 9:48 nickel
2022-10-21 9:48 ` [d-kernel] [PATCH 1/2] Revert "drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega" nickel
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: nickel @ 2022-10-21 9:48 UTC (permalink / raw)
To: devel-kernel
These patches are applicable to kernels starting from 5.10.146.
Should be applied to p10 std-def, p9 un-def, c9f2 std-def.
Revertions are already requested from upstream and may arrive in 5.10.150 or later.
Refer to https://gitlab.freedesktop.org/drm/amd/-/issues/2216#note_1600173
[PATCH 1/2] Revert "drm/amdgpu: move nbio sdma_doorbell_range() into
[PATCH 2/2] Revert "drm/amdgpu: make sure to init common IP before
^ permalink raw reply [flat|nested] 4+ messages in thread
* [d-kernel] [PATCH 1/2] Revert "drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega"
2022-10-21 9:48 [d-kernel] [PATCH 0/2] Fix amdgpu regression for kernel 5.10 nickel
@ 2022-10-21 9:48 ` nickel
2022-10-21 9:48 ` [d-kernel] [PATCH 2/2] Revert "drm/amdgpu: make sure to init common IP before gmc" nickel
2022-10-21 10:13 ` [d-kernel] [PATCH 0/2] Fix amdgpu regression for kernel 5.10 Vitaly Chikunov
2 siblings, 0 replies; 4+ messages in thread
From: nickel @ 2022-10-21 9:48 UTC (permalink / raw)
To: devel-kernel
From: Nikolai Kostrigin <nickel@altlinux.org>
This reverts commit 9f55f36f749a7608eeef57d7d72991a9bd557341.
Fix amdgpu regression for kernel 5.10.
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2216
Signed-off-by: Nikolai Kostrigin <nickel@altlinux.org>
---
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 5 -----
drivers/gpu/drm/amd/amdgpu/soc15.c | 25 +++++++++++++++++++++++++
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
index a1a8e026b9fa6..1f2e2460e121e 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
@@ -1475,11 +1475,6 @@ static int sdma_v4_0_start(struct amdgpu_device *adev)
WREG32_SDMA(i, mmSDMA0_CNTL, temp);
if (!amdgpu_sriov_vf(adev)) {
- ring = &adev->sdma.instance[i].ring;
- adev->nbio.funcs->sdma_doorbell_range(adev, i,
- ring->use_doorbell, ring->doorbell_index,
- adev->doorbell_index.sdma_doorbell_range);
-
/* unhalt engine */
temp = RREG32_SDMA(i, mmSDMA0_F32_CNTL);
temp = REG_SET_FIELD(temp, SDMA0_F32_CNTL, HALT, 0);
diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c
index abd649285a22d..7212b9900e0ab 100644
--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
+++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
@@ -1332,6 +1332,25 @@ static int soc15_common_sw_fini(void *handle)
return 0;
}
+static void soc15_doorbell_range_init(struct amdgpu_device *adev)
+{
+ int i;
+ struct amdgpu_ring *ring;
+
+ /* sdma/ih doorbell range are programed by hypervisor */
+ if (!amdgpu_sriov_vf(adev)) {
+ for (i = 0; i < adev->sdma.num_instances; i++) {
+ ring = &adev->sdma.instance[i].ring;
+ adev->nbio.funcs->sdma_doorbell_range(adev, i,
+ 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);
+ }
+}
+
static int soc15_common_hw_init(void *handle)
{
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
@@ -1351,6 +1370,12 @@ static int soc15_common_hw_init(void *handle)
/* enable the doorbell aperture */
soc15_enable_doorbell_aperture(adev, true);
+ /* HW doorbell routing policy: doorbell writing not
+ * in SDMA/IH/MM/ACV range will be routed to CP. So
+ * we need to init SDMA/IH/MM/ACV doorbell range prior
+ * to CP ip block init and ring test.
+ */
+ soc15_doorbell_range_init(adev);
return 0;
}
--
2.33.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* [d-kernel] [PATCH 2/2] Revert "drm/amdgpu: make sure to init common IP before gmc"
2022-10-21 9:48 [d-kernel] [PATCH 0/2] Fix amdgpu regression for kernel 5.10 nickel
2022-10-21 9:48 ` [d-kernel] [PATCH 1/2] Revert "drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega" nickel
@ 2022-10-21 9:48 ` nickel
2022-10-21 10:13 ` [d-kernel] [PATCH 0/2] Fix amdgpu regression for kernel 5.10 Vitaly Chikunov
2 siblings, 0 replies; 4+ messages in thread
From: nickel @ 2022-10-21 9:48 UTC (permalink / raw)
To: devel-kernel
From: Nikolai Kostrigin <nickel@altlinux.org>
This reverts commit 7b0db849ea030a70b8fb9c9afec67c81f955482e.
Fix amdgpu regression for kernel 5.10.
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2216
Signed-off-by: Nikolai Kostrigin <nickel@altlinux.org>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 881045e600af2..bde0496d2f153 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2179,16 +2179,8 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
}
adev->ip_blocks[i].status.sw = true;
- if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON) {
- /* need to do common hw init early so everything is set up for gmc */
- r = adev->ip_blocks[i].version->funcs->hw_init((void *)adev);
- if (r) {
- DRM_ERROR("hw_init %d failed %d\n", i, r);
- goto init_failed;
- }
- adev->ip_blocks[i].status.hw = true;
- } else if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
- /* need to do gmc hw init early so we can allocate gpu mem */
+ /* need to do gmc hw init early so we can allocate gpu mem */
+ if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
/* Try to reserve bad pages early */
if (amdgpu_sriov_vf(adev))
amdgpu_virt_exchange_data(adev);
@@ -2770,8 +2762,8 @@ static int amdgpu_device_ip_reinit_early_sriov(struct amdgpu_device *adev)
int i, r;
static enum amd_ip_block_type ip_order[] = {
- AMD_IP_BLOCK_TYPE_COMMON,
AMD_IP_BLOCK_TYPE_GMC,
+ AMD_IP_BLOCK_TYPE_COMMON,
AMD_IP_BLOCK_TYPE_PSP,
AMD_IP_BLOCK_TYPE_IH,
};
--
2.33.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [d-kernel] [PATCH 0/2] Fix amdgpu regression for kernel 5.10
2022-10-21 9:48 [d-kernel] [PATCH 0/2] Fix amdgpu regression for kernel 5.10 nickel
2022-10-21 9:48 ` [d-kernel] [PATCH 1/2] Revert "drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega" nickel
2022-10-21 9:48 ` [d-kernel] [PATCH 2/2] Revert "drm/amdgpu: make sure to init common IP before gmc" nickel
@ 2022-10-21 10:13 ` Vitaly Chikunov
2 siblings, 0 replies; 4+ messages in thread
From: Vitaly Chikunov @ 2022-10-21 10:13 UTC (permalink / raw)
To: ALT Linux kernel packages development
On Fri, Oct 21, 2022 at 12:48:23PM +0300, nickel@altlinux.org wrote:
> These patches are applicable to kernels starting from 5.10.146.
>
> Should be applied to p10 std-def, p9 un-def, c9f2 std-def.
> Revertions are already requested from upstream and may arrive in 5.10.150 or later.
> Refer to https://gitlab.freedesktop.org/drm/amd/-/issues/2216#note_1600173
Николай, спасибо за ключевое ужастике в решении этой проблемы!
> [PATCH 1/2] Revert "drm/amdgpu: move nbio sdma_doorbell_range() into
> [PATCH 2/2] Revert "drm/amdgpu: make sure to init common IP before
Видимо, список все таки такой:
[PATCH 2/2] Revert "drm/amdgpu: make sure to init common IP before gmc"
[PATCH 1/2] Revert "drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega"
И да один из них есть в очереди в 5.10.150, а другого нет:
$ git l v5.10.149..stable-rc/queue/5.10 | grep amdgpu
> 7c48c9b9cffe 2022-10-17 Revert "drm/amdgpu: use dirty framebuffer helper" (Shuah Khan)
> 2785681ad0f5 2022-10-17 Revert "drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega" (Shuah Khan)
> 023ec97f57d6 2022-09-20 drm/amdgpu: fix initial connector audio value (hongao)
Thanks,
>
> _______________________________________________
> devel-kernel mailing list
> devel-kernel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-10-21 10:13 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-21 9:48 [d-kernel] [PATCH 0/2] Fix amdgpu regression for kernel 5.10 nickel
2022-10-21 9:48 ` [d-kernel] [PATCH 1/2] Revert "drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega" nickel
2022-10-21 9:48 ` [d-kernel] [PATCH 2/2] Revert "drm/amdgpu: make sure to init common IP before gmc" nickel
2022-10-21 10:13 ` [d-kernel] [PATCH 0/2] Fix amdgpu regression for kernel 5.10 Vitaly Chikunov
ALT Linux kernel packages development
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel-kernel/0 devel-kernel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel-kernel devel-kernel/ http://lore.altlinux.org/devel-kernel \
devel-kernel@altlinux.org devel-kernel@altlinux.ru devel-kernel@altlinux.com
public-inbox-index devel-kernel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel-kernel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git