drm/nouveau: fix allocation of notifier object
[linux-2.6.git] / drivers / gpu / drm / nouveau / nouveau_dma.c
index 65699bf..568caed 100644 (file)
@@ -83,7 +83,8 @@ nouveau_dma_init(struct nouveau_channel *chan)
                return ret;
 
        /* NV_MEMORY_TO_MEMORY_FORMAT requires a notifier object */
-       ret = nouveau_notifier_alloc(chan, NvNotify0, 32, &chan->m2mf_ntfy);
+       ret = nouveau_notifier_alloc(chan, NvNotify0, 32, 0xfe0, 0x1000,
+                                    &chan->m2mf_ntfy);
        if (ret)
                return ret;
 
@@ -96,13 +97,15 @@ nouveau_dma_init(struct nouveau_channel *chan)
                OUT_RING(chan, 0);
 
        /* Initialise NV_MEMORY_TO_MEMORY_FORMAT */
-       ret = RING_SPACE(chan, 4);
+       ret = RING_SPACE(chan, 6);
        if (ret)
                return ret;
        BEGIN_RING(chan, NvSubM2MF, NV_MEMORY_TO_MEMORY_FORMAT_NAME, 1);
-       OUT_RING(chan, NvM2MF);
-       BEGIN_RING(chan, NvSubM2MF, NV_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY, 1);
-       OUT_RING(chan, NvNotify0);
+       OUT_RING  (chan, NvM2MF);
+       BEGIN_RING(chan, NvSubM2MF, NV_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY, 3);
+       OUT_RING  (chan, NvNotify0);
+       OUT_RING  (chan, chan->vram_handle);
+       OUT_RING  (chan, chan->gart_handle);
 
        /* Sit back and pray the channel works.. */
        FIRE_RING(chan);