On Fri, Jul 3, 2026 at 2:46 PM Timur Kristóf <[email protected]> wrote:
>
> On 2026. július 3., péntek 19:46:03 közép-európai nyári idő Joshi, Mukul
> wrote:
> > AMD General
> >
> >
> > > -----Original Message-----
> > > From: Timur Kristóf <[email protected]>
> > > 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 11/14] drm/amdgpu/ih6.0: Use MMIO ACK for retry CAM on IH
> > > 6.0
> > >
> > >
> > >
> > > The doorbell is not working on Navi 31.
> > > Use the IH_RETRY_CAM_ACK register.
> >
>
> Hi Mukul,
>
> > I think the doorbell path is not enabled for IH CAM so that’s probably the
> > reason its not working.
> > I think we need an update to the NBIO
> > ih_doorbell_range() function to enable the doorbell path.
>
> Can you please be more specific and elaborate on what we need to do on the 
> NBIO
> ih_doorbell_range() function? Also, can you say which NBIO version is used for
> for Navi 3 and Navi 4 GPUs?

navi3 dGPUs use nbio_v4_3.c.  navi3 APUs use nbio_v7_11.c (strix) and
nbio_v7_7.c (phoenix).  navi4 uses nbif_v6_3_1.c.

Alex

>
> > Having said that, we intend to use doorbells on all ASICs to ack IH CAMs
> > that support retry faults.
>
> I'm OK with that, if the doorbell really works on these GPUs.
>
> Thanks & best regards,
> Timur
>
> >
> >
> > >
> > >
> > > Signed-off-by: Timur Kristóf <[email protected]>
> > > ---
> > >
> > >  drivers/gpu/drm/amd/amdgpu/ih_v6_0.c | 8 +++++++-
> > >  1 file changed, 7 insertions(+), 1 deletion(-)
> > >
> > >
> > >
> > > diff --git a/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
> > > b/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
> > > index 65e5d21753f9..a97c85b0cb99 100644
> > > --- a/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
> > > +++ b/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
> > > @@ -307,6 +307,11 @@ static int ih_v6_0_enable_ring(struct amdgpu_device
> > > *adev,
> > >
> > >       return 0;
> > >
> > >  }
> > >
> > >
> > >
> > > +static void ih_v6_0_retry_cam_ack(struct amdgpu_device *adev, u32
> > > +cam_index) {
> > > +     WREG32_SOC15(OSSSYS, 0, regIH_RETRY_CAM_ACK, cam_index); }
> > > +
> > >
> > >  /**
> > >
> > >   * ih_v6_0_irq_init - init and enable the interrupt ring
> > >   *
> > >
> > > @@ -807,7 +812,8 @@ static const struct amdgpu_ih_funcs ih_v6_0_funcs = {
> > >
> > >       .get_wptr = ih_v6_0_get_wptr,
> > >       .decode_iv = amdgpu_ih_decode_iv_helper,
> > >       .decode_iv_ts = amdgpu_ih_decode_iv_ts_helper,
> > >
> > > -     .set_rptr = ih_v6_0_set_rptr
> > > +     .set_rptr = ih_v6_0_set_rptr,
> > > +     .retry_cam_ack = ih_v6_0_retry_cam_ack,
> > >
> > >  };
> > >
> > >
> > >
> > >  static void ih_v6_0_set_interrupt_funcs(struct amdgpu_device *adev)
> > >
> > > --
> > > 2.54.0
> >
> >
>
>
>
>

Reply via email to