mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] drm/panfrost: reset the Amlogic GXM GPU on runtime resume
@ 2026-09-30 12:56 Christian Hewitt
  2026-10-12 21:25 ` Adrián Larumbe
  0 siblings, 1 reply; 3+ messages in thread
From: Christian Hewitt @ 2026-09-30 12:56 UTC (permalink / raw)
  To: Boris Brezillon, Rob Herring, Steven Price, Adrián Larumbe,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, AngeloGioacchino Del Regno,
	dri-devel, linux-kernel

After its first runtime suspend, every power-off of the Mali-T820 in
Amlogic GXM SoCs times out and floods the log with shader, tiler and L2
power transition timeouts. Following a soft reset the cores report not
ready but PWRTRANS never clears, however long the driver waits.

The transitions complete normally when the GPU comes out of a hardware
reset, as it does at probe. Use runtime PM with reset and clock control
for GXM so the GPU is reset on every resume.

Fixes: 22aa1a209018 ("drm/panfrost: Really power off GPU cores in panfrost_gpu_power_off()")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
 drivers/gpu/drm/panfrost/panfrost_drv.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index 36cc2e67a308..df8a41a9a70f 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -1092,6 +1092,13 @@ static const struct panfrost_compatible amlogic_data = {
 	.vendor_quirk = panfrost_gpu_amlogic_quirk,
 };
 
+static const struct panfrost_compatible amlogic_gxm_data = {
+	.num_supplies = ARRAY_SIZE(default_supplies) - 1,
+	.supply_names = default_supplies,
+	.vendor_quirk = panfrost_gpu_amlogic_quirk,
+	.pm_features = BIT(GPU_PM_RT),
+};
+
 static const char * const mediatek_pm_domains[] = { "core0", "core1", "core2",
 						    "core3", "core4" };
 /*
@@ -1156,7 +1163,7 @@ static const struct panfrost_compatible mediatek_mt8370_data = {
 static const struct of_device_id dt_match[] = {
 	/* Set first to probe before the generic compatibles */
 	{ .compatible = "amlogic,meson-gxm-mali",
-	  .data = &amlogic_data, },
+	  .data = &amlogic_gxm_data, },
 	{ .compatible = "amlogic,meson-g12a-mali",
 	  .data = &amlogic_data, },
 	{ .compatible = "renesas,r9a08g046-mali", .data = &default_pm_rt_data },
-- 
2.43.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/panfrost: reset the Amlogic GXM GPU on runtime resume
  2026-09-30 12:56 [PATCH] drm/panfrost: reset the Amlogic GXM GPU on runtime resume Christian Hewitt
@ 2026-10-12 21:25 ` Adrián Larumbe
  2026-10-13  5:02   ` Christian Hewitt
  0 siblings, 1 reply; 3+ messages in thread
From: Adrián Larumbe @ 2026-10-12 21:25 UTC (permalink / raw)
  To: Christian Hewitt
  Cc: Boris Brezillon, Rob Herring, Steven Price, Adrián Larumbe,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, AngeloGioacchino Del Regno,
	dri-devel, linux-kernel

On Wed, 30 Sep 2026 12:56:29 +0000, Christian Hewitt <christianshewitt@gmail.com> wrote:
> After its first runtime suspend, every power-off of the Mali-T820 in
> Amlogic GXM SoCs times out and floods the log with shader, tiler and L2
> power transition timeouts. Following a soft reset the cores report not
> ready but PWRTRANS never clears, however long the driver waits.

Would you mind building the driver from the latest drm-misc-next and testing
whether this is still the case? Today I merged a patch series with a fix
for a long-standing bug that prevented the device from going into suspension
because of mismanagement of the PM refcount. It might be that what you report
as an issue triggered by power transitions is something altogether different.

> 
> The transitions complete normally when the GPU comes out of a hardware
> reset, as it does at probe. Use runtime PM with reset and clock control

panfrost_device_reset() is always called as part of the PM runtime resume
operation, so I'm assuming what you mean here is that reset control is
deasserted at runtime resume when the SoC supports it

-- 
Adrián Larumbe <adrian.larumbe@collabora.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/panfrost: reset the Amlogic GXM GPU on runtime resume
  2026-10-12 21:25 ` Adrián Larumbe
@ 2026-10-13  5:02   ` Christian Hewitt
  0 siblings, 0 replies; 3+ messages in thread
From: Christian Hewitt @ 2026-10-13  5:02 UTC (permalink / raw)
  To: Adrián Larumbe
  Cc: Boris Brezillon, Rob Herring, Steven Price, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
	AngeloGioacchino Del Regno, dri-devel, linux-kernel

> On 13 Oct 2026, at 1:25 am, Adrián Larumbe <adrian.larumbe@collabora.com> wrote:
> 
> On Wed, 30 Sep 2026 12:56:29 +0000, Christian Hewitt <christianshewitt@gmail.com> wrote:
>> After its first runtime suspend, every power-off of the Mali-T820 in
>> Amlogic GXM SoCs times out and floods the log with shader, tiler and L2
>> power transition timeouts. Following a soft reset the cores report not
>> ready but PWRTRANS never clears, however long the driver waits.
> 
> Would you mind building the driver from the latest drm-misc-next and testing
> whether this is still the case? Today I merged a patch series with a fix
> for a long-standing bug that prevented the device from going into suspension
> because of mismanagement of the PM refcount. It might be that what you report
> as an issue triggered by power transitions is something altogether different.

I’d tested with the v12 iteration of your series in my amlogic-7.3.y [0] tree
before generating the patch I submitted. I’ve now tested with v15 (as merged)
and other recent panfrost patches you submitted (which v15 depends upon) and
with this patch reverted, and the timeout issue with T820 remains. I also saw
a splat that I wasn’t seeing with the v12 iteration [1].

[0] https://github.com/chewitt/linux/commits/amlogic-7.3.y
[1] https://paste.libreelec.tv/desertic-cataleya.log

After reinstating this patch on v15 + dependencies dmesg is clean again [2].

[2] https://paste.libreelec.tv/leptosomatic-cherlyn.log

>> The transitions complete normally when the GPU comes out of a hardware
>> reset, as it does at probe. Use runtime PM with reset and clock control
> 
> panfrost_device_reset() is always called as part of the PM runtime resume
> operation, so I'm assuming what you mean here is that reset control is
> deasserted at runtime resume when the SoC supports it

I’m firmly at the hobbyist end of kernel contributors and I’m not able to
technically explain the patch Claude created. It’s entirely possible that it
pokes around in the right area of code but is not the correct fix, but I lack
the knowledge to dig further without explicit guidance. I can also give you
remote access to a Khadas VIM2 board if that would be easier or useful?

Christian


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-10-13  5:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-30 12:56 [PATCH] drm/panfrost: reset the Amlogic GXM GPU on runtime resume Christian Hewitt
2026-10-12 21:25 ` Adrián Larumbe
2026-10-13  5:02   ` Christian Hewitt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®