]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/imagination: Handle Rogue safety event IRQs
authorAlessio Belle <alessio.belle@imgtec.com>
Thu, 10 Apr 2025 09:55:06 +0000 (10:55 +0100)
committerMatt Coster <matt.coster@imgtec.com>
Tue, 15 Apr 2025 11:21:50 +0000 (12:21 +0100)
commit96822d38ff574433e06a2ec0f88ebc50d44c8eaa
tree972125dec5f17c626dfb2877f444ed0977bc1ce7
parentbdced61365b4eca917b6df37d3d47c2f7d096d87
drm/imagination: Handle Rogue safety event IRQs

Extend interrupt handling logic to check for safety event IRQs, then clear
and handle them in the IRQ handler thread.

Safety events need to be checked and cleared with a different set of GPU
registers than those the IRQ handler has been using so far.

Only two safety events need to be handled on the host: FW fault (ECC error
correction or detection) and device watchdog timeout. Handling right now
simply consists of clearing any error and logging the event. If either of
these events results in an unrecoverable GPU or FW, the driver will
eventually attempt to recover from it e.g. via pvr_power_reset().

Note that Rogue GPUs may send interrupts to the host for all types of
safety events, not just the two above. For events not handled by the host,
clearing the associated interrupt is sufficient.

Signed-off-by: Alessio Belle <alessio.belle@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Link: https://lore.kernel.org/r/20250410-sets-bxs-4-64-patch-v1-v6-7-eda620c5865f@imgtec.com
Signed-off-by: Matt Coster <matt.coster@imgtec.com>
drivers/gpu/drm/imagination/pvr_device.c
drivers/gpu/drm/imagination/pvr_device.h
drivers/gpu/drm/imagination/pvr_fw.c