On 7/1/26 18:17, Timur Kristóf wrote:
> The doorbell is not working on Navi 31.
> Use the IH_RETRY_CAM_ACK register.
> 
> Signed-off-by: Timur Kristóf <[email protected]>

Acked-by: Christian König <[email protected]>

I still haven't found any explanation why we use a doorbell for the CAM in the 
first place? Lijo, Alex, Felix does anybody know that?

Thanks,
Christian.

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

Reply via email to