[PATCH v2 06/12] drm/panfrost: Expose a helper to trigger a GPU reset
Steven Price
steven.price at arm.com
Mon Jun 21 15:10:42 UTC 2021
On 21/06/2021 14:39, Boris Brezillon wrote:
> Expose a helper to trigger a GPU reset so we can easily trigger reset
> operations outside the job timeout handler.
>
> Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
Reviewed-by: Steven Price <steven.price at arm.com>
> ---
> drivers/gpu/drm/panfrost/panfrost_device.h | 8 ++++++++
> drivers/gpu/drm/panfrost/panfrost_job.c | 4 +---
> 2 files changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/panfrost/panfrost_device.h b/drivers/gpu/drm/panfrost/panfrost_device.h
> index 2fe1550da7f8..1c6a3597eba0 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_device.h
> +++ b/drivers/gpu/drm/panfrost/panfrost_device.h
> @@ -175,4 +175,12 @@ int panfrost_device_suspend(struct device *dev);
>
> const char *panfrost_exception_name(u32 exception_code);
>
> +static inline void
> +panfrost_device_schedule_reset(struct panfrost_device *pfdev)
> +{
> + /* Schedule a reset if there's no reset in progress. */
> + if (!atomic_xchg(&pfdev->reset.pending, 1))
> + schedule_work(&pfdev->reset.work);
> +}
> +
> #endif
> diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
> index 1be80b3dd5d0..be5d3e4a1d0a 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_job.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_job.c
> @@ -458,9 +458,7 @@ static enum drm_gpu_sched_stat panfrost_job_timedout(struct drm_sched_job
> if (!panfrost_scheduler_stop(&pfdev->js->queue[js], sched_job))
> return DRM_GPU_SCHED_STAT_NOMINAL;
>
> - /* Schedule a reset if there's no reset in progress. */
> - if (!atomic_xchg(&pfdev->reset.pending, 1))
> - schedule_work(&pfdev->reset.work);
> + panfrost_device_schedule_reset(pfdev);
>
> return DRM_GPU_SCHED_STAT_NOMINAL;
> }
>
More information about the dri-devel
mailing list