drm/nv41/bus: report useful data on mmio fault
Based on Ben Skeggs's nvc0 patch. Tested on my nv4b, 84 and 92. Signed-off-by: Martin Peres <martin.peres@labri.fr>
This commit is contained in:
Родитель
382b5bbb4a
Коммит
9d7175c808
|
@ -42,8 +42,14 @@ nv31_bus_intr(struct nouveau_subdev *subdev)
|
|||
subdev->intr(subdev);
|
||||
}
|
||||
|
||||
if (stat & 0x00000008) {
|
||||
nv_error(pbus, "MMIO FAULT\n"); /* NV41- */
|
||||
if (stat & 0x00000008) { /* NV41- */
|
||||
u32 addr = nv_rd32(pbus, 0x009084);
|
||||
u32 data = nv_rd32(pbus, 0x009088);
|
||||
|
||||
nv_error(pbus, "MMIO %s of 0x%08x FAULT at 0x%06x\n",
|
||||
(addr & 0x00000002) ? "write" : "read", data,
|
||||
(addr & 0x00fffffc));
|
||||
|
||||
stat &= ~0x00000008;
|
||||
nv_wr32(pbus, 0x001100, 0x00000008);
|
||||
}
|
||||
|
|
|
@ -36,7 +36,13 @@ nv50_bus_intr(struct nouveau_subdev *subdev)
|
|||
u32 stat = nv_rd32(pbus, 0x001100) & nv_rd32(pbus, 0x001140);
|
||||
|
||||
if (stat & 0x00000008) {
|
||||
nv_error(pbus, "MMIO FAULT\n");
|
||||
u32 addr = nv_rd32(pbus, 0x009084);
|
||||
u32 data = nv_rd32(pbus, 0x009088);
|
||||
|
||||
nv_error(pbus, "MMIO %s of 0x%08x FAULT at 0x%06x\n",
|
||||
(addr & 0x00000002) ? "write" : "read", data,
|
||||
(addr & 0x00fffffc));
|
||||
|
||||
stat &= ~0x00000008;
|
||||
nv_wr32(pbus, 0x001100, 0x00000008);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче