On Monday, July 6, 2026 11:27:50 PM Central European Summer Time Mukul Joshi 
wrote:
> Hi Timur,
> 
> For Navi3x, please make the similar change as I suggested for Navi4x to
> enable the doorbell path along with your
> existing changes and use doorbell to clear the CAM entries.
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c
> b/drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c
> index f89e5f40e1a5..a66e3073aed8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c
> +++ b/drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c
> @@ -199,7 +199,7 @@ static void nbio_v4_3_ih_doorbell_range(struct
> amdgpu_device *adev,
>                  ih_doorbell_range = REG_SET_FIELD(ih_doorbell_range,
> S2A_DOORBELL_ENTRY_1_CTRL,
> S2A_DOORBELL_PORT1_RANGE_SIZE,
> -                                                 2);
> +                                                 8);
>                  ih_doorbell_range = REG_SET_FIELD(ih_doorbell_range,
> 
> Please let us know how it goes.
> 
> Thanks and regards,
> 
> Mukul

Hi Mukul,

Sorry for the late reply.

I've now tested this on Navi 31 and with this change the doorbell works 
correctly for the retry CAM. I will test the same on Navi 48 next week. If it 
works well then I will drop the patches that use the MMIO register and I'm fine 
using the doorbell.

Thanks & best regards,
Timur

> 
> On 7/6/2026 2:04 PM, Joshi, Mukul wrote:
> > AMD General
> > 
> >> -----Original Message-----
> >> From: Timur Kristóf<[email protected]>
> >> Sent: Friday, July 3, 2026 2:47 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 11/14] drm/amdgpu/ih6.0: Use MMIO ACK for retry
> >> CAM on IH 6.0
> >> 
> >> 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.
> > 
> > Hi Timur,
> > 
> >> Can you please be more specific and elaborate on what we need to do on
> >> the
> >> NBIO
> >> ih_doorbell_range() function?
> > 
> > Through NBIO, we route the doorbell to the correct HW block.
> > That is currently not enabled/done for the IH CAM doorbell.
> > So, you basically need to enable it inside ih_doorbell_range() function.
> > 
> >> Also, can you say which NBIO version is used
> >> for for Navi 3 and Navi 4 GPUs?
> > 
> > Navi3 --> NBIO v4.3 (nbio_v4_3.c)
> > Navi4 --> NBIO v6.3.1 (nbif_v6_3_1.c)
> > 
> > I am working on the change that you need to enable the doorbell path for
> > Navi4x first. Once that is working, I can send you a test patch for
> > enabling it on Navi3x.
> > 
> > Regards,
> > Mukul
> > 
> >>> 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