Re: [PATCH v1 2/6] drm/lima: reset async_reset on pp hard reset

From: Vasily Khoruzhick
Date: Wed Jan 17 2024 - 13:18:01 EST


On Tue, Jan 16, 2024 at 7:12 PM Erico Nunes <nunes.erico@xxxxxxxxx> wrote:
>
> Lima pp jobs use an async reset to avoid having to wait for the soft
> reset right after a job. The soft reset is done at the end of a job and
> a reset_complete flag is expected to be set at the next job.
> However, in case the user runs into a job timeout from any application,
> a hard reset is issued to the hardware. This hard reset clears the
> reset_complete flag, which causes an error message to show up before the
> next job.
> This is probably harmless for the execution but can be very confusing to
> debug, as it blames a reset timeout on the next application to submit a
> job.
> Reset the async_reset flag when doing the hard reset so that we don't
> get that message.
>
> Signed-off-by: Erico Nunes <nunes.erico@xxxxxxxxx>
Reviewed-by: Vasily Khoruzhick <anarsoul@xxxxxxxxx>

> ---
> drivers/gpu/drm/lima/lima_pp.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/lima/lima_pp.c b/drivers/gpu/drm/lima/lima_pp.c
> index a5c95bed08c0..a8f8f63b8295 100644
> --- a/drivers/gpu/drm/lima/lima_pp.c
> +++ b/drivers/gpu/drm/lima/lima_pp.c
> @@ -191,6 +191,13 @@ static int lima_pp_hard_reset(struct lima_ip *ip)
> pp_write(LIMA_PP_PERF_CNT_0_LIMIT, 0);
> pp_write(LIMA_PP_INT_CLEAR, LIMA_PP_IRQ_MASK_ALL);
> pp_write(LIMA_PP_INT_MASK, LIMA_PP_IRQ_MASK_USED);
> +
> + /*
> + * if there was an async soft reset queued,
> + * don't wait for it in the next job
> + */
> + ip->data.async_reset = false;
> +
> return 0;
> }
>
> --
> 2.43.0
>