Commit 9d7175c8 authored by Martin Peres's avatar Martin Peres Committed by Ben Skeggs
Browse files

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: default avatarMartin Peres <martin.peres@labri.fr>
parent 382b5bbb
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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);
	}
+7 −1
Original line number Diff line number Diff line
@@ -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);
	}