Skip to content

Commit

Permalink
drm/v3d: Don't clear MMU control bits on exception
Browse files Browse the repository at this point in the history
MMU exception conditions are reported in the V3D_MMU_CTRL register as
write-1-to-clear (W1C) bits. The MMU interrupt handling code clears any
exceptions, but does so by masking out any other bits and writing the
result back. There are some important control bits in that register,
including MMU_ENABLE, so a safer approach is to simply write back the
value just read unaltered.

This patch doesn't remove the cause of the apparent PTE errors, but it
does reduce the impact to just an error in the kernel log.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  • Loading branch information
Phil Elwell authored and popcornmix committed Jul 13, 2020
1 parent 786c135 commit 0fc39c8
Showing 1 changed file with 1 addition and 4 deletions.
5 changes: 1 addition & 4 deletions drivers/gpu/drm/v3d/v3d_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -178,10 +178,7 @@ v3d_hub_irq(int irq, void *arg)
};
const char *client = "?";

V3D_WRITE(V3D_MMU_CTL,
V3D_READ(V3D_MMU_CTL) & (V3D_MMU_CTL_CAP_EXCEEDED |
V3D_MMU_CTL_PT_INVALID |
V3D_MMU_CTL_WRITE_VIOLATION));
V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));

if (v3d->ver >= 41) {
axi_id = axi_id >> 5;
Expand Down

0 comments on commit 0fc39c8

Please sign in to comment.