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.
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. Having said that, we intend to use doorbells on all ASICs to ack IH CAMs that support retry faults. Regards, Mukul > > 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
