summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2016-12-10 16:42:50 +1000
committerBen Skeggs <bskeggs@redhat.com>2016-12-13 10:26:30 +1000
commit60f322a71b2a2e5a80a49c32523d7ea6ce5a25f4 (patch)
treee9f5ecab662069ea91900e19b8641bce72822e44
parent44cfdb75aa327ab605908cdf75e39cf1ad08877f (diff)
downloadnouveau-60f322a71b2a2e5a80a49c32523d7ea6ce5a25f4.tar.gz
gr/gf100-: handle GPC/TPC/MPC trap
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drm/nouveau/nvkm/engine/gr/gf100.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drm/nouveau/nvkm/engine/gr/gf100.c b/drm/nouveau/nvkm/engine/gr/gf100.c
index b3d00ade7..f65a5b0a1 100644
--- a/drm/nouveau/nvkm/engine/gr/gf100.c
+++ b/drm/nouveau/nvkm/engine/gr/gf100.c
@@ -1041,6 +1041,13 @@ gf100_gr_trap_tpc(struct gf100_gr *gr, int gpc, int tpc)
stat &= ~0x00000008;
}
+ if (stat & 0x00000010) {
+ u32 trap = nvkm_rd32(device, TPC_UNIT(gpc, tpc, 0x0430));
+ nvkm_error(subdev, "GPC%d/TPC%d/MPC: %08x\n", gpc, tpc, trap);
+ nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x0430), 0xc0000000);
+ stat &= ~0x00000010;
+ }
+
if (stat) {
nvkm_error(subdev, "GPC%d/TPC%d/%08x: unknown\n", gpc, tpc, stat);
}