drm/nouveau: Ack the context switch interrupt before switching contexts.
authorFrancisco Jerez <currojerez@riseup.net>
Wed, 4 Aug 2010 02:41:55 +0000 (04:41 +0200)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 5 Aug 2010 22:34:50 +0000 (08:34 +1000)
Leaving the IRQ unack'ed while switching contexts makes the switch
fail randomly on some nv1x.

Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_irq.c

index 53360f15606378899d8d814adf03e0809ac07268..0a4a61770df0a6efaecf10d7feaf0c434c3f0989 100644 (file)
@@ -586,11 +586,11 @@ nouveau_pgraph_irq_handler(struct drm_device *dev)
                }
 
                if (status & NV_PGRAPH_INTR_CONTEXT_SWITCH) {
-                       nouveau_pgraph_intr_context_switch(dev);
-
                        status &= ~NV_PGRAPH_INTR_CONTEXT_SWITCH;
                        nv_wr32(dev, NV03_PGRAPH_INTR,
                                 NV_PGRAPH_INTR_CONTEXT_SWITCH);
+
+                       nouveau_pgraph_intr_context_switch(dev);
                }
 
                if (status) {