[PATCH] drm/panfrost: Enable cycle counting when perfcnt is enabled

From: Boris Brezillon

Date: Wed Jun 17 2026 - 10:29:58 EST


If we don't do that, we end up with invalid timestamps in the
block headers.

Fixes: 7786fd108777 ("drm/panfrost: Expose performance counters through unstable ioctls")
Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx>
---
Found while reworking the userside of the perfcnt logic.
Up until now, we were not using the GPU timestamps in the dumps,
but this is going to change, so we need that fix in, and
backported to all stable releases, ideally.
---
drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
index 7020c0192e18..63861b4c7d95 100644
--- a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
+++ b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
@@ -15,6 +15,7 @@
#include "panfrost_device.h"
#include "panfrost_features.h"
#include "panfrost_gem.h"
+#include "panfrost_gpu.h"
#include "panfrost_issues.h"
#include "panfrost_job.h"
#include "panfrost_mmu.h"
@@ -166,6 +167,7 @@ static int panfrost_perfcnt_enable_locked(struct panfrost_device *pfdev,
/* The BO ref is retained by the mapping. */
drm_gem_object_put(&bo->base);

+ panfrost_cycle_counter_get(pfdev);
perfcnt->user = user;

return 0;
@@ -207,6 +209,7 @@ static int panfrost_perfcnt_disable_locked(struct panfrost_device *pfdev,
panfrost_mmu_as_put(pfdev, perfcnt->mapping->mmu);
panfrost_gem_mapping_put(perfcnt->mapping);
perfcnt->mapping = NULL;
+ panfrost_cycle_counter_put(pfdev);
pm_runtime_put_autosuspend(pfdev->base.dev);

return 0;

---
base-commit: 7caf2a2351d4053075670ff3e26a6815da0a9e1e
change-id: 20260617-panfrost-perfcnt-timestamp-fix-51e04002f494

Best regards,
--
Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx>