From b526b32675f956e0a9fdce963874446100221c44 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Thu, 6 Sep 2012 20:26:38 -0400 Subject: [PATCH] --- yaml --- r: 329671 b: refs/heads/master c: b3ccd34ded3e730bba33cd4bd4b7ab78b4a0bb03 h: refs/heads/master i: 329669: 2121ec8fbed1c5373facdeb0c8a3b58fc1c35145 329667: 370969eff744732027f0f9e823e5f1c6ad7bda01 329663: 8b192b0f6978b71f40ffcd7bcc2ddb8e89443d3d v: v3 --- [refs] | 2 +- .../gpu/drm/nouveau/core/engine/fifo/nvc0.c | 22 +++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 5b11faf5f659..dcfd0dd41073 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f73221e4aa766a58b784729968159013cc73459d +refs/heads/master: b3ccd34ded3e730bba33cd4bd4b7ab78b4a0bb03 diff --git a/trunk/drivers/gpu/drm/nouveau/core/engine/fifo/nvc0.c b/trunk/drivers/gpu/drm/nouveau/core/engine/fifo/nvc0.c index 2dd68126f845..6f21be600557 100644 --- a/trunk/drivers/gpu/drm/nouveau/core/engine/fifo/nvc0.c +++ b/trunk/drivers/gpu/drm/nouveau/core/engine/fifo/nvc0.c @@ -389,12 +389,26 @@ static const struct nouveau_bitfield nvc0_fifo_subfifo_intr[] = { static void nvc0_fifo_isr_vm_fault(struct nvc0_fifo_priv *priv, int unit) { - u32 inst = nv_rd32(priv, 0x2800 + (unit * 0x10)); - u32 valo = nv_rd32(priv, 0x2804 + (unit * 0x10)); - u32 vahi = nv_rd32(priv, 0x2808 + (unit * 0x10)); - u32 stat = nv_rd32(priv, 0x280c + (unit * 0x10)); + u32 inst = nv_rd32(priv, 0x002800 + (unit * 0x10)); + u32 valo = nv_rd32(priv, 0x002804 + (unit * 0x10)); + u32 vahi = nv_rd32(priv, 0x002808 + (unit * 0x10)); + u32 stat = nv_rd32(priv, 0x00280c + (unit * 0x10)); u32 client = (stat & 0x00001f00) >> 8; + switch (unit) { + case 3: /* PEEPHOLE */ + nv_mask(priv, 0x001718, 0x00000000, 0x00000000); + break; + case 4: /* BAR1 */ + nv_mask(priv, 0x001704, 0x00000000, 0x00000000); + break; + case 5: /* BAR3 */ + nv_mask(priv, 0x001714, 0x00000000, 0x00000000); + break; + default: + break; + } + nv_error(priv, "%s fault at 0x%010llx [", (stat & 0x00000080) ? "write" : "read", (u64)vahi << 32 | valo); nouveau_enum_print(nvc0_fifo_fault_reason, stat & 0x0000000f);