Clear RESET_COMPLETED before writing GPU_CMD_SOFT_RESET. This is also used in drivers/gpu/drm/panfrost/panfrost_gpu.c::panfrost_gpu_soft_reset and avoids seeing old reset-complete status from a previous reset.
Tested-by: Deborah Brouwer <[email protected]> Signed-off-by: Onur Özkan <[email protected]> --- drivers/gpu/drm/tyr/driver.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/tyr/driver.rs b/drivers/gpu/drm/tyr/driver.rs index 69eff2a9e116..f7951804e4e0 100644 --- a/drivers/gpu/drm/tyr/driver.rs +++ b/drivers/gpu/drm/tyr/driver.rs @@ -91,6 +91,8 @@ unsafe impl Send for TyrDrmDeviceData {} unsafe impl Sync for TyrDrmDeviceData {} fn issue_soft_reset(dev: &Device<Bound>, iomem: &Devres<IoMem>) -> Result { + // Clear any stale reset-complete IRQ state before issuing a new soft reset. + regs::GPU_IRQ_CLEAR.write(dev, iomem, regs::GPU_IRQ_RAWSTAT_RESET_COMPLETED)?; regs::GPU_CMD.write(dev, iomem, regs::GPU_CMD_SOFT_RESET)?; poll::read_poll_timeout( -- 2.51.2
