summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_irq.c
diff options
context:
space:
mode:
authorBen Skeggs2010-09-03 07:56:12 +0200
committerBen Skeggs2010-09-24 08:24:46 +0200
commit1da265662db0306d04efb5f687c2992e40d1b85c (patch)
tree852dbd4a19b7457e32889fece92607c2965f2856 /drivers/gpu/drm/nouveau/nouveau_irq.c
parentdrm/nv50: move vm trap to nv50_fb.c (diff)
downloadkernel-qcow2-linux-1da265662db0306d04efb5f687c2992e40d1b85c.tar.gz
kernel-qcow2-linux-1da265662db0306d04efb5f687c2992e40d1b85c.tar.xz
kernel-qcow2-linux-1da265662db0306d04efb5f687c2992e40d1b85c.zip
drm/nv50: report BAR access faults
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_irq.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_irq.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_irq.c b/drivers/gpu/drm/nouveau/nouveau_irq.c
index 316e0587fb01..a818306781cc 100644
--- a/drivers/gpu/drm/nouveau/nouveau_irq.c
+++ b/drivers/gpu/drm/nouveau/nouveau_irq.c
@@ -228,6 +228,14 @@ nouveau_fifo_irq_handler(struct drm_device *dev)
nv_wr32(dev, NV04_PFIFO_CACHE1_PULL0, 1);
}
+ if (dev_priv->card_type == NV_50) {
+ if (status & 0x00000010) {
+ nv50_fb_vm_trap(dev, 1, "PFIFO_BAR_FAULT");
+ status &= ~0x00000010;
+ nv_wr32(dev, 0x002100, 0x00000010);
+ }
+ }
+
if (status) {
NV_INFO(dev, "PFIFO_INTR 0x%08x - Ch %d\n",
status, chid);