OSDN Git Service

nv50: enable 0x400500 bit 0 after PGRAPH exception also
authorBen Skeggs <skeggsb@gmail.com>
Thu, 1 May 2008 15:36:30 +0000 (01:36 +1000)
committerBen Skeggs <skeggsb@gmail.com>
Thu, 1 May 2008 15:36:30 +0000 (01:36 +1000)
No solid idea about what these 2 bits do, but nv50 can now survive a few
PGRAPH exceptions just as nv40 does :)

shared-core/nouveau_irq.c

index d002f64..2a3d8a0 100644 (file)
@@ -475,8 +475,12 @@ nv50_pgraph_irq_handler(struct drm_device *dev)
                NV_WRITE(NV03_PGRAPH_INTR, status);
        }
 
-       if ((NV_READ(0x400500) & (1 << 16)) == 0)
-               NV_WRITE(0x400500, NV_READ(0x400500) | (1 << 16));
+       {
+               const int isb = (1 << 16) | (1 << 0);
+
+               if ((NV_READ(0x400500) & isb) != isb)
+                       NV_WRITE(0x400500, NV_READ(0x400500) | isb);
+       }
 
        NV_WRITE(NV03_PMC_INTR_0, NV_PMC_INTR_0_PGRAPH_PENDING);
 }