nouveau: nv10: output a warning if last channel invalid, and switch to next
authorPatrice Mandin <pmandin@caramail.com>
Fri, 24 Aug 2007 22:12:58 +0000 (00:12 +0200)
committerPatrice Mandin <pmandin@caramail.com>
Fri, 24 Aug 2007 22:12:58 +0000 (00:12 +0200)
shared-core/nv10_graph.c

index 567ce6a..18bab7e 100644 (file)
@@ -608,21 +608,23 @@ void nouveau_nv10_context_switch(struct drm_device *dev)
        last = dev_priv->fifos[chid];
 
        if (!last) {
-               DRM_DEBUG("Invalid last channel\n");
-               return;
+               DRM_DEBUG("WARNING: Invalid last channel, switch to %x\n",
+                         next->id);
+       } else {
+               DRM_INFO("NV: PGRAPH context switch interrupt channel %x -> %x\n",
+                        last->id, next->id);
        }
 
-       DRM_INFO("NV: PGRAPH context switch interrupt channel %x -> %x\n",
-                last->id, next->id);
-
        NV_WRITE(NV04_PGRAPH_FIFO,0x0);
 #if 0
        NV_WRITE(NV_PFIFO_CACH1_PUL0, 0x00000000);
        NV_WRITE(NV_PFIFO_CACH1_PUL1, 0x00000000);
        NV_WRITE(NV_PFIFO_CACHES, 0x00000000);
 #endif
-       nv10_graph_save_context(last);
-       
+       if (last) {
+               nv10_graph_save_context(last);
+       }       
+
        nouveau_wait_for_idle(dev);
 
        NV_WRITE(NV10_PGRAPH_CTX_CONTROL, 0x10000000);