mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
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: 0ad5bc1ce4 ("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>
This commit is contained in:
parent
d0e4c65370
commit
a22e0051f9
|
|
@ -199,12 +199,33 @@ v3d_hub_irq(int irq, void *arg)
|
|||
{0xA0, 0xA1, "TFU"},
|
||||
{0xC0, 0xE0, "MMU"},
|
||||
{0xE0, 0xE1, "GMP"},
|
||||
}, v3d71_axi_ids[] = {
|
||||
{0x00, 0x30, "L2T"},
|
||||
{0x30, 0x38, "CLE"},
|
||||
{0x38, 0x39, "PTB"},
|
||||
{0x39, 0x3A, "PSE"},
|
||||
{0x3A, 0x3B, "CSD"},
|
||||
{0x40, 0x60, "TLB"},
|
||||
{0x60, 0x70, "MMU"},
|
||||
{0x7C, 0x7E, "TFU"},
|
||||
{0x7F, 0x80, "GMP"},
|
||||
};
|
||||
const char *client = "?";
|
||||
|
||||
V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));
|
||||
|
||||
if (v3d->ver >= V3D_GEN_41) {
|
||||
if (v3d->ver >= V3D_GEN_71) {
|
||||
size_t i;
|
||||
|
||||
axi_id = axi_id & 0x7F;
|
||||
for (i = 0; i < ARRAY_SIZE(v3d71_axi_ids); i++) {
|
||||
if (axi_id >= v3d71_axi_ids[i].begin &&
|
||||
axi_id < v3d71_axi_ids[i].end) {
|
||||
client = v3d71_axi_ids[i].client;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (v3d->ver >= V3D_GEN_41) {
|
||||
size_t i;
|
||||
|
||||
axi_id = axi_id & 0xFF;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user