]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/gpu/drm/nouveau/nv50_graph.c
drm/nv50: improve evo error handler when more than just channel 0 active
[mv-sheeva.git] / drivers / gpu / drm / nouveau / nv50_graph.c
index a764af52a3ba34378e63e1156f07345845c39de3..d441308a09cf831b8302cbd5be8f1986ccdca0ae 100644 (file)
@@ -384,13 +384,12 @@ nv50_graph_nvsw_vblsem_release(struct nouveau_channel *chan,
        if (!chan->nvsw.vblsem || chan->nvsw.vblsem_offset == ~0 || data > 1)
                return -EINVAL;
 
-       if (!(nv_rd32(dev, NV50_PDISPLAY_INTR_EN) &
-                     NV50_PDISPLAY_INTR_EN_VBLANK_CRTC_(data))) {
+       if (!(nv_rd32(dev, NV50_PDISPLAY_INTR_EN_1) &
+                          NV50_PDISPLAY_INTR_EN_1_VBLANK_CRTC_(data))) {
                nv_wr32(dev, NV50_PDISPLAY_INTR_1,
-                       NV50_PDISPLAY_INTR_1_VBLANK_CRTC_(data));
-               nv_wr32(dev, NV50_PDISPLAY_INTR_EN, nv_rd32(dev,
-                       NV50_PDISPLAY_INTR_EN) |
-                       NV50_PDISPLAY_INTR_EN_VBLANK_CRTC_(data));
+                            NV50_PDISPLAY_INTR_1_VBLANK_CRTC_(data));
+               nv_mask(dev, NV50_PDISPLAY_INTR_EN_1, 0,
+                            NV50_PDISPLAY_INTR_EN_1_VBLANK_CRTC_(data));
        }
 
        list_add(&chan->nvsw.vbl_wait, &dev_priv->vbl_waiting);