On 21/06/2021 14:39, Boris Brezillon wrote: > Things are unlikely to resolve until we reset the GPU. Let's not wait > for other faults/timeout to happen to trigger this reset. > > Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> This one still haunts me... ;) Reviewed-by: Steven Price <steven.price@xxxxxxx> > --- > drivers/gpu/drm/panfrost/panfrost_mmu.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_mmu.c b/drivers/gpu/drm/panfrost/panfrost_mmu.c > index d5c624e776f1..d20bcaecb78f 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_mmu.c > +++ b/drivers/gpu/drm/panfrost/panfrost_mmu.c > @@ -36,8 +36,11 @@ static int wait_ready(struct panfrost_device *pfdev, u32 as_nr) > ret = readl_relaxed_poll_timeout_atomic(pfdev->iomem + AS_STATUS(as_nr), > val, !(val & AS_STATUS_AS_ACTIVE), 10, 1000); > > - if (ret) > + if (ret) { > + /* The GPU hung, let's trigger a reset */ > + panfrost_device_schedule_reset(pfdev); > dev_err(pfdev->dev, "AS_ACTIVE bit stuck\n"); > + } > > return ret; > } >