drm/v3d: Suppress all but the first MMU error
authorPhil Elwell <phil@raspberrypi.org>
Mon, 11 Nov 2019 20:18:08 +0000 (20:18 +0000)
committerDom Cobley <popcornmix@gmail.com>
Mon, 21 Mar 2022 16:03:57 +0000 (16:03 +0000)
The v3d driver currently encounters a lot of MMU PTE exceptions, so
only log the first to avoid swamping the kernel log.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
drivers/gpu/drm/v3d/v3d_irq.c

index e714d53..0f7a23f 100644 (file)
@@ -177,6 +177,7 @@ v3d_hub_irq(int irq, void *arg)
                        "GMP",
                };
                const char *client = "?";
+               static int logged_error;
 
                V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));
 
@@ -186,6 +187,7 @@ v3d_hub_irq(int irq, void *arg)
                                client = v3d41_axi_ids[axi_id];
                }
 
+               if (!logged_error)
                dev_err(v3d->drm.dev, "MMU error from client %s (%d) at 0x%llx%s%s%s\n",
                        client, axi_id, (long long)vio_addr,
                        ((intsts & V3D_HUB_INT_MMU_WRV) ?
@@ -194,6 +196,7 @@ v3d_hub_irq(int irq, void *arg)
                         ", pte invalid" : ""),
                        ((intsts & V3D_HUB_INT_MMU_CAP) ?
                         ", cap exceeded" : ""));
+               logged_error = 1;
                status = IRQ_HANDLED;
        }