drm/panthor: Fix the FW reset logic
In the post_reset function, if the fast reset didn't succeed, we are not clearing the fast_reset flag, which prevents firmware sections from being reloaded. While at it, use panthor_fw_stop() instead of manually writing DISABLE to the MCU_CONTROL register. Fixes: 2718d91816ee ("drm/panthor: Add the FW logical block") Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Liviu Dudau <liviu.dudau@arm.com> Reviewed-by: Steven Price <steven.price@arm.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240430113727.493155-1-boris.brezillon@collabora.com
This commit is contained in:
parent
8bdbd8b558
commit
2fa42fd910
@ -1083,10 +1083,11 @@ int panthor_fw_post_reset(struct panthor_device *ptdev)
|
||||
if (!ret)
|
||||
goto out;
|
||||
|
||||
/* Force a disable, so we get a fresh boot on the next
|
||||
* panthor_fw_start() call.
|
||||
/* Forcibly reset the MCU and force a slow reset, so we get a
|
||||
* fresh boot on the next panthor_fw_start() call.
|
||||
*/
|
||||
gpu_write(ptdev, MCU_CONTROL, MCU_CONTROL_DISABLE);
|
||||
panthor_fw_stop(ptdev);
|
||||
ptdev->fw->fast_reset = false;
|
||||
drm_err(&ptdev->base, "FW fast reset failed, trying a slow reset");
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user