AMD General

> -----Original Message-----
> From: Timur Kristóf <[email protected]>
> Sent: Friday, July 3, 2026 2:41 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]>
> Subject: Re: [PATCH 12/14] drm/amdgpu/ih7.0: Use MMIO ACK instead of
> doorbell for retry CAM on IH 7.0
>
> 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.
>

Hi Timur,

As I had mentioned on the other patch, we need to enable the NBIO path to route
the doorbell correctly. That’s the reason wy your doorbells are not working on
Navi3x and Navi4x.

I am working on the change for Navi4x first and will send it out to you soon 
one I have verified it on
my end.

Regards,
Mukul


> 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
> >
> >
>
>
>

Reply via email to