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?

> 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