Etnaviv MMU faults, broken state after recovering hung GPU
Sometimes when playing with OpenGL-heavy applications, I get hung GPU due to MMU faults. The driver thinks that the GPU has been recovered, but it's not true - the screen stays frozen until a reboot. When that happens, the system generally works, but some parts of it are unusable - for instance, phoc doesn't blank the screen anymore and trying to restart it just hangs.
[ 8891.411193] etnaviv-gpu 38000000.gpu: MMU fault status 0x00000002
[ 8891.417307] etnaviv-gpu 38000000.gpu: MMU 0 fault addr 0xfe472000
[ 8892.567778] device: 'devcd1': device_add
[ 8892.567851] PM: Adding info for No Bus:devcd1
[ 8892.567952] etnaviv-gpu 38000000.gpu: recover hung GPU!
Seems like the easiest way to trigger it is to run Pure Maps and just play with it for a few minutes.
Right now I'm seeing this on the 5.6 kernel; I don't remember whether it happened on 5.3 as well or not.
Initially mentioned in https://source.puri.sm/Librem5/linux-next/issues/151#note_94840