[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20251008133235.0407cc9c@fedora>
Date: Wed, 8 Oct 2025 13:32:35 +0200
From: Boris Brezillon <boris.brezillon@...labora.com>
To: Ketil Johnsen <ketil.johnsen@....com>
Cc: Steven Price <steven.price@....com>, Liviu Dudau <liviu.dudau@....com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>, Maxime Ripard
<mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>, David Airlie
<airlied@...il.com>, Simona Vetter <simona@...ll.ch>,
dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] drm/panthor: Ensure MCU is disabled on suspend
On Wed, 8 Oct 2025 12:51:11 +0200
Ketil Johnsen <ketil.johnsen@....com> wrote:
> 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@....com>
> ---
> drivers/gpu/drm/panthor/panthor_fw.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/panthor/panthor_fw.c b/drivers/gpu/drm/panthor/panthor_fw.c
> index 9bf06e55eaee..df767e82148a 100644
> --- a/drivers/gpu/drm/panthor/panthor_fw.c
> +++ b/drivers/gpu/drm/panthor/panthor_fw.c
> @@ -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);
Is this not preventing fast resets? My understanding was that
MCU_CONTROL shouldn't be touched if the MCU was halted from the FW, but
maybe I got that wrong. If it's just for the MCU crash case, we can
have:
if (on_hang)
panthor_fw_stop(ptdev);
> }
>
> /**
Powered by blists - more mailing lists