]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/panthor: Ensure MCU is disabled on suspend
authorKetil Johnsen <ketil.johnsen@arm.com>
Wed, 8 Oct 2025 10:51:11 +0000 (12:51 +0200)
committerSteven Price <steven.price@arm.com>
Thu, 9 Oct 2025 12:52:30 +0000 (13:52 +0100)
Currently the Panthor driver needs the GPU to be powered down
between suspend and resume. If this is not done, then the
MCU_CONTROL register will be preserved as AUTO, which again will
cause a premature FW boot on resume. The FW will go directly into
fatal state in this case.

This case needs to be handled as there is no guarantee that the
GPU will be powered down after the suspend callback on all platforms.

The fix is to call panthor_fw_stop() in "pre-reset" path to ensure
the MCU_CONTROL register is cleared (set DISABLE). This matches
well with the already existing call to panthor_fw_start() from the
"post-reset" path.

Signed-off-by: Ketil Johnsen <ketil.johnsen@arm.com>
Acked-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Fixes: 2718d91816ee ("drm/panthor: Add the FW logical block")
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20251008105112.4077015-1-ketil.johnsen@arm.com
drivers/gpu/drm/panthor/panthor_fw.c

index 36f1034839c273399b4a1b80767269dd2ba6d79c..44a995835188986dd3a999020907eb7d5d9ca441 100644 (file)
@@ -1099,6 +1099,7 @@ void panthor_fw_pre_reset(struct panthor_device *ptdev, bool on_hang)
        }
 
        panthor_job_irq_suspend(&ptdev->fw->irq);
+       panthor_fw_stop(ptdev);
 }
 
 /**