drm/v3d: Fix and extend MMU error handling.
authorEric Anholt <eric@anholt.net>
Fri, 19 Apr 2019 00:10:14 +0000 (17:10 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 16 May 2019 16:24:52 +0000 (09:24 -0700)
commit38c2c7917adc8fb4ed9114b92923af9abe091af5
tree7d1ef7f05ad02bb7f5c7eaef80f5573ef5f404ee
parent1ba9d7cbc4530ae35eb1ebbd3c5e59d0c587aefa
drm/v3d: Fix and extend MMU error handling.

We were setting the wrong flags to enable PTI errors, so we were
seeing reads to invalid PTEs show up as write errors.  Also, we
weren't turning on the interrupts.  The AXI IDs we were dumping
included the outstanding write number and so they looked basically
random.  And the VIO_ADDR decoding was based on the MMU VA_WIDTH for
the first platform I worked on and was wrong on others.  In short,
this was a thorough mess from early HW enabling.

Tested on V3D 4.1 and 4.2 with intentional L2T, CLE, PTB, and TLB
faults.

Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20190419001014.23579-4-eric@anholt.net
Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
drivers/gpu/drm/v3d/v3d_drv.c
drivers/gpu/drm/v3d/v3d_drv.h
drivers/gpu/drm/v3d/v3d_irq.c
drivers/gpu/drm/v3d/v3d_mmu.c
drivers/gpu/drm/v3d/v3d_regs.h