On Thu, 27 Feb 2025 17:58:06 +0100 Marek Vasut <marex@xxxxxxx> wrote: > This seems necessary on Freescale i.MX95 Mali G310 to reliably resume > from runtime PM suspend. Without this, if only the L2 is powered down > on RPM entry, the GPU gets stuck and does not indicate the firmware is > booted after RPM resume. > > Signed-off-by: Marek Vasut <marex@xxxxxxx> > --- > Cc: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> > Cc: Conor Dooley <conor+dt@xxxxxxxxxx> > Cc: David Airlie <airlied@xxxxxxxxx> > Cc: Fabio Estevam <festevam@xxxxxxxxx> > Cc: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx> > Cc: Liviu Dudau <liviu.dudau@xxxxxxx> > Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > Cc: Maxime Ripard <mripard@xxxxxxxxxx> > Cc: Pengutronix Kernel Team <kernel@xxxxxxxxxxxxxx> > Cc: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> > Cc: Rob Herring <robh@xxxxxxxxxx> > Cc: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > Cc: Sebastian Reichel <sre@xxxxxxxxxx> > Cc: Shawn Guo <shawnguo@xxxxxxxxxx> > Cc: Simona Vetter <simona@xxxxxxxx> > Cc: Steven Price <steven.price@xxxxxxx> > Cc: Thomas Zimmermann <tzimmermann@xxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > Cc: imx@xxxxxxxxxxxxxxx > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > --- > drivers/gpu/drm/panthor/panthor_gpu.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/panthor/panthor_gpu.c b/drivers/gpu/drm/panthor/panthor_gpu.c > index 671049020afaa..0f07ef7d9aea7 100644 > --- a/drivers/gpu/drm/panthor/panthor_gpu.c > +++ b/drivers/gpu/drm/panthor/panthor_gpu.c > @@ -470,11 +470,12 @@ int panthor_gpu_soft_reset(struct panthor_device *ptdev) > */ > void panthor_gpu_suspend(struct panthor_device *ptdev) > { > - /* On a fast reset, simply power down the L2. */ > - if (!ptdev->reset.fast) > - panthor_gpu_soft_reset(ptdev); > - else > - panthor_gpu_power_off(ptdev, L2, 1, 20000); > + /* > + * Power off the L2 and soft reset the GPU, that makes > + * iMX95 Mali G310 resume without firmware boot timeout. > + */ > + panthor_gpu_power_off(ptdev, L2, 1, 20000); > + panthor_gpu_soft_reset(ptdev); Unfortunately, if you do that unconditionally we no longer have a fast-reset. Would be good to figure out why the fast-reset doesn't work on this platform.