summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/stackcollapse.py
diff options
context:
space:
mode:
authorMaíra Canal <mcanal@igalia.com>2026-09-15 17:51:26 -0300
committerMaíra Canal <mcanal@igalia.com>2026-09-18 15:23:28 -0300
commitb4448823f151d0b4a3f3f4c5622c6ade51422c4e (patch)
treeaa144efb4a4ed0a1539167db5968c4e45be2b393 /tools/perf/scripts/python/stackcollapse.py
parent6ab4aad3481903ac3743513517c290a3ebd39232 (diff)
downloadlinux-b4448823f151d0b4a3f3f4c5622c6ade51422c4e.tar.gz
linux-b4448823f151d0b4a3f3f4c5622c6ade51422c4e.zip
drm/vc4: Use the reset controller to recover from a GPU hang
vc4_reset() recovers a hung GPU by dropping the runtime PM usage count to zero so that the power domain goes down, and then taking it again. Such an unconventional approach only works if the driver knows exactly how many references it holds, which is why vc4 wrapped every pm_runtime_get_sync() call in a private refcount and mutex. Commit 670c672608a1 ("soc: bcm: bcm2835-pm: Add support for power domains under a new binding.") exposed a V3D reset line for exactly this reason, so that the block can be reset without power-cycling its domain, but the vc4 driver never picked it up. Use it now, which removes the need for the private refcount and leaves vc4_v3d_pm_get/put() as plain runtime PM wrappers. The reset line is optional, to accommodate older device trees. Device trees that do not describe one still get the driver-side recovery in vc4_irq_reset(), but the hardware is left untouched. Two in-tree platforms use the VC4 V3D block: BCM2835 gains the resets property in the next commit, and Cygnus is no worse off than it was, as its V3D node has no power domain and the power-cycle only ever gated its clock. Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Link: https://patch.msgid.link/20260915-vc4-reset-control-v2-3-cb3a25b07822@igalia.com Signed-off-by: Maíra Canal <mcanal@igalia.com>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions