Skip to content

Commit a22e005

Browse files
txenoomairacanal
authored andcommitted
drm/v3d: client ranges from axi_ids are different with V3D 7.1
The client mask has been reduced from 8 bits on V3D 4.1 to 7 bits on V3D 7.1, so the ranges for each client are not compatible. On V3D 7.1, the CSD client can also report MMU errors. Therefore, add its AXI ID to the IDs list. Fixes: 0ad5bc1 ("drm/v3d: fix up register addresses for V3D 7.x") Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com> Reviewed-by: Maíra Canal <mcanal@igalia.com> Link: https://lore.kernel.org/r/20250425122522.18425-2-jmcasanova@igalia.com Signed-off-by: Maíra Canal <mcanal@igalia.com>
1 parent d0e4c65 commit a22e005

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

drivers/gpu/drm/v3d/v3d_irq.c

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,12 +199,33 @@ v3d_hub_irq(int irq, void *arg)
199199
{0xA0, 0xA1, "TFU"},
200200
{0xC0, 0xE0, "MMU"},
201201
{0xE0, 0xE1, "GMP"},
202+
}, v3d71_axi_ids[] = {
203+
{0x00, 0x30, "L2T"},
204+
{0x30, 0x38, "CLE"},
205+
{0x38, 0x39, "PTB"},
206+
{0x39, 0x3A, "PSE"},
207+
{0x3A, 0x3B, "CSD"},
208+
{0x40, 0x60, "TLB"},
209+
{0x60, 0x70, "MMU"},
210+
{0x7C, 0x7E, "TFU"},
211+
{0x7F, 0x80, "GMP"},
202212
};
203213
const char *client = "?";
204214

205215
V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));
206216

207-
if (v3d->ver >= V3D_GEN_41) {
217+
if (v3d->ver >= V3D_GEN_71) {
218+
size_t i;
219+
220+
axi_id = axi_id & 0x7F;
221+
for (i = 0; i < ARRAY_SIZE(v3d71_axi_ids); i++) {
222+
if (axi_id >= v3d71_axi_ids[i].begin &&
223+
axi_id < v3d71_axi_ids[i].end) {
224+
client = v3d71_axi_ids[i].client;
225+
break;
226+
}
227+
}
228+
} else if (v3d->ver >= V3D_GEN_41) {
208229
size_t i;
209230

210231
axi_id = axi_id & 0xFF;

0 commit comments

Comments
 (0)