Thanks, Iago!

- PATCH 1 was applied to drm-misc-fixes.
- PATCH 2 and 3 were applied to drm-misc-next-fixes.
- PATCH 4 was applied to drm-misc-next.

Best regards,
- Maíra

-------- Forwarded Message --------
Subject: Re: [PATCH 0/4] drm/v3d: Fix RPi 4 system hangs from stale cache and MMU state
Date: Mon, 01 Jun 2026 11:51:52 +0200
From: Iago Toral <[email protected]>
To: Maíra Canal <[email protected]>

Thanks Maíra:

Reviewed-by: Iago Toral Quiroga <[email protected]>

Iago

El sáb, 30-05-2026 a las 15:37 -0300, Maíra Canal escribió:
Some users have reported hard system hangs on the Raspberry Pi 4 (V3D
4.2)
under GPU load [1][2][3]. Investigation had traced these to V3D
caches and
MMU being left in an inconsistent state across PM transitions. This
series
addresses three distinct issues in the cache and MMU maintenance:

  1. PATCH 1: Addresses an issue on pre-V3D 7.1 hardware, in which
     starting a clean while an L2T flush is still pending can clobber
bits
     in L2TCACTL and leave the caches inconsistent. This issue
existed
     before the runtime PM series.

  2. PATCH 2: Fixes the MMU TLB/cache flush in
v3d_mmu_set_page_table()
     being silently skipped during runtime resume. Directly addresses
     the system hangs reported by the users.

  3. PATCH 3: Cleans the V3D caches on runtime suspend, so all dirty
lines
     are written back to memory before the power domain is shut down.
     Directly addresses the error `v3d fec00000.v3d: MMU error from
     client L2T (7) at 0xff877600, pte invalid` reported during the
     hangs.

Together these restore correct cache/MMU coherency around runtime PM,
addressing the reported hangs. Moreover, with this fixes, it was
possible
to reduce the autosuspend delay, which was increased as the shorter
delays
used to cause more frequent runtime suspend/resume cycles, which
exposed
the cache and MMU coherency bugs as random GPU hangs. With those
fixed,
we can reduce the autosuspend delay to a more reasonable value.

[1] https://github.com/raspberrypi/linux/issues/7381
[2] https://github.com/raspberrypi/linux/issues/7396
[3] https://github.com/raspberrypi/linux/issues/7397

Best regards,
- Maíra

---
Maíra Canal (4):
      drm/v3d: Wait for pending L2T flush before cleaning caches
      drm/v3d: Flush MMU TLB and cache during runtime resume
      drm/v3d: Clean caches before runtime suspend
      drm/v3d: Reduce PM runtime autosuspend delay

 drivers/gpu/drm/v3d/v3d_drv.c   |  2 +-
 drivers/gpu/drm/v3d/v3d_gem.c   |  8 ++++++++
 drivers/gpu/drm/v3d/v3d_mmu.c   | 31 ++++++++++++++++++++++---------
 drivers/gpu/drm/v3d/v3d_power.c |  2 ++
 4 files changed, 33 insertions(+), 10 deletions(-)
---
base-commit: 61de054a772a1feda6364931ab1baf9038abf1c8
change-id: 20260528-v3d-fix-rpi4-freezes-8bae519d04ce



Reply via email to