On 2026. július 3., péntek 18:31:12 közép-európai nyári idő Joshi, Mukul wrote: > AMD General > > > > -----Original Message----- > > From: amd-gfx <[email protected]> On Behalf Of Timur > > Kristóf > > Sent: Wednesday, July 1, 2026 12:17 PM > > To: [email protected]; Deucher, Alexander > > <[email protected]>; Koenig, Christian > > <[email protected]>; Natalie Vock <[email protected]>; Shetaia, > > Amir <[email protected]>; Marek Olšák <[email protected]>; > > Limonciello, Mario <[email protected]>; Tvrtko Ursulin > > <[email protected]>; Kuehling, Felix <[email protected]>; Lazar, > > Lijo <[email protected]>; He, Siwei <[email protected]>; Yang, Philip > > <[email protected]>; Joshi, Mukul <[email protected]> > > Cc: Timur Kristóf <[email protected]> > > Subject: [PATCH 12/14] drm/amdgpu/ih7.0: Use MMIO ACK instead of > > doorbell for retry CAM on IH 7.0 > > > > > > > > The doorbell is not working on Navi 48. > > Use the IH_RETRY_CAM_ACK register just like on Navi 3x. > > > > > > > > Signed-off-by: Timur Kristóf <[email protected]> > > --- > > > > drivers/gpu/drm/amd/amdgpu/ih_v7_0.c | 17 +---------------- > > 1 file changed, 1 insertion(+), 16 deletions(-) > > > > > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/ih_v7_0.c > > b/drivers/gpu/drm/amd/amdgpu/ih_v7_0.c > > index f1de6450a31d..291326d2ee8b 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/ih_v7_0.c > > +++ b/drivers/gpu/drm/amd/amdgpu/ih_v7_0.c > > @@ -279,19 +279,9 @@ static int ih_v7_0_enable_ring(struct amdgpu_device > > *adev, > > > > return 0; > > > > } > > > > > > > > -static uint32_t ih_v7_0_setup_retry_doorbell(u32 doorbell_index) -{ > > - u32 val = 0; > > - > > - val = REG_SET_FIELD(val, IH_DOORBELL_RPTR, OFFSET, > > doorbell_index); > > - val = REG_SET_FIELD(val, IH_DOORBELL_RPTR, ENABLE, 1); > > - > > - return val; > > -} > > - > > > > static void ih_v7_0_retry_cam_ack(struct amdgpu_device *adev, u32 > > > > cam_index) { > > - WDOORBELL32(adev->irq.retry_cam_doorbell_index, cam_index); > > + WREG32_SOC15(OSSSYS, 0, regIH_RETRY_CAM_ACK, cam_index); > > > > } > > > > > > > > #define regIH_RING1_CLIENT_CFG_INDEX_V7_1 0x122 > > > > @@ -401,11 +391,6 @@ static int ih_v7_0_irq_init(struct amdgpu_device > > *adev) > > > > pci_set_master(adev->pdev); > > > > > > > > if (amdgpu_ip_version(adev, OSSSYS_HWIP, 0) == IP_VERSION(7, 1, 0)) > > > > { > > > We are re-purposing the IH 7.0 file for IH v7.1 since most of it is same. > The code being removed below is for IH 7.1 and not 7.0. > Using doorbells for acking INT CAM works completely fine for GFX 12.1 and IH > 7.1. > I would recommend to drop this patch. >
Hello Mukul, Unfortunately I couldn't figure out how to get the doorbell working on Navi 48 and in the previous thread Amir said that it also didn't work for him, and that's why I decided to try the MMIO register. If you have an idea how to get the doorbell to work on Navi 48, I'm happy to try your suggestion. Ideally I'd prefer a solution here that works on both Navi 48 and GFX12.1 to keep the code maintainable. If it's not possible then we can also have a slightly different code path for the two different IH versions here. Thanks & best regards, Timur > > > > - /* Allocate the doorbell for IH Retry CAM */ > > - adev->irq.retry_cam_doorbell_index = (adev- > > > > >doorbell_index.ih + 2) << 1; > > > > - WREG32_SOC15(OSSSYS, 0, regIH_DOORBELL_RETRY_CAM, > > - ih_v7_0_setup_retry_doorbell(adev- > > > > >irq.retry_cam_doorbell_index)); > > > > - > > > > /* Enable IH Retry CAM */ > > tmp = RREG32_SOC15(OSSSYS, 0, > > > > regIH_RETRY_INT_CAM_CNTL); > > > > tmp = REG_SET_FIELD(tmp, IH_RETRY_INT_CAM_CNTL, > > > > ENABLE, 1); > > -- > > 2.54.0 > >
