This patch series comes with some minor fixes for Panfrost. Some of the issues addressed were uncovered by LLM tools, while the one about RPM was traditionally debugged.
The only proper bug fixes are the ones for perfcnt and RPM, and the others are more about ensuring robustness. perfcnt bug was never observed in the open, because no one had faced a HW reset when a perfcnt session was ongoing. RPM fix addresses a well-known issue I had been observing for quite some time, but that I had completely misunderstood. Signed-off-by: Adrián Larumbe <[email protected]> --- Changes in v5: - Addressed more issues uncovered by Sashiko. - Discarded two patches to avoid dealing with too many pre-existing issues at once. - Biggest change is the re-arrangement of the start sequence, made to look like Panthor. - Link to v4: https://patch.msgid.link/[email protected] Changes in v4: - Fixed errors and issues uncovered by Sashiko in the previous revision. - Changed the way RPM checks whether the device is initialised when resuming. - Simplified perfcnt treatment of potential resets. - Link to v3: https://patch.msgid.link/[email protected] Changes in v3: - Applied some minor suggestions for the first couple of patches in the series. - Moved shrinker initialisation into gem initialisation. - Fixed RPM bugs by moving all clock and power initialisation into RPM resume. - Added patch for reset sequence fixes and also a userspace knob to trigger it. - Reworked perfcnt fix by having the reset sequence restore its initial state. - Link to v2: https://patch.msgid.link/[email protected] Changes in v2: - Fixed race conditions introduced by the previous revision, in the RPM and HWPerf commits specifically. These can be consulted at [1] - Don't attempt to suspend the device unconditionally at the end of probe(), and do it through autosuspend instead. - Broke the RPM patch into one that fixes PM refcnt proper and another one for MMU enablement at device init time. - Moved perfcnt GPU disable helper into its own commmit. Same for transplating shrinker initialisation and unplug. - Added 'Fixes' and 'Reported-by' tags to all the relevant commits - [1] https://sashiko.dev/#/patchset/20260526-claude-fixes-v1-0-16e92eaa4949%40collabora.com - Link to v1: https://patch.msgid.link/[email protected] To: Boris Brezillon <[email protected]> To: Rob Herring <[email protected]> To: Steven Price <[email protected]> To: Adrián Larumbe <[email protected]> To: Maarten Lankhorst <[email protected]> To: Maxime Ripard <[email protected]> To: Thomas Zimmermann <[email protected]> To: David Airlie <[email protected]> To: Simona Vetter <[email protected]> To: Faith Ekstrand <[email protected]> To: "Marty E. Plummer" <[email protected]> To: Tomeu Vizoso <[email protected]> To: Eric Anholt <[email protected]> To: Alyssa Rosenzweig <[email protected]> To: Robin Murphy <[email protected]> To: Philipp Zabel <[email protected]> Cc: [email protected] Cc: [email protected] Cc: Neil Armstrong <[email protected]> --- Adrián Larumbe (11): drm/panfrost: Check another bo field for cache option query drm/panfrost: Prevent division by 0 drm/panfrost: Remove unnecessary header file include drm/panfrost: Move shrinker initialization and unplug one level down drm/panfrost: Move all device power up and down into RPM callbacks drm/panfrost: Explicitly enable MMU interrupts at device init drm/panfrost: Add debugfs knob for manually triggering a GPU reset drm/panfrost: Move perfcnt GPU disable sequence into a helper drm/panfrost: Introduce a reset lock drm/panfrost: Fix races between perfcnt and reset sequence drm/panfrost: Bump driver minor to reflect new DUMP IOCTL req field drivers/gpu/drm/panfrost/panfrost_devfreq.c | 2 +- drivers/gpu/drm/panfrost/panfrost_device.c | 412 ++++++++++++++--------- drivers/gpu/drm/panfrost/panfrost_device.h | 12 + drivers/gpu/drm/panfrost/panfrost_drv.c | 32 +- drivers/gpu/drm/panfrost/panfrost_gem.c | 25 +- drivers/gpu/drm/panfrost/panfrost_gem.h | 7 +- drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c | 8 +- drivers/gpu/drm/panfrost/panfrost_gpu.c | 9 +- drivers/gpu/drm/panfrost/panfrost_gpu.h | 1 - drivers/gpu/drm/panfrost/panfrost_job.c | 8 +- drivers/gpu/drm/panfrost/panfrost_mmu.c | 20 +- drivers/gpu/drm/panfrost/panfrost_mmu.h | 1 - drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 249 +++++++++----- drivers/gpu/drm/panfrost/panfrost_perfcnt.h | 2 + include/uapi/drm/panfrost_drm.h | 3 +- 15 files changed, 495 insertions(+), 296 deletions(-) --- base-commit: 671b7825dbfe9ea6e3ad3001003aeee0df48d1b5 change-id: 20260523-claude-fixes-82b03a134a8c Best regards, -- Adrián Larumbe <[email protected]>
