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