Use DMA_IN_MEMORY for DMA objects. This is needed for a DDX change that will
authorBen Skeggs <darktama@iinet.net.au>
Sat, 2 Sep 2006 12:25:26 +0000 (22:25 +1000)
committerBen Skeggs <darktama@iinet.net.au>
Sat, 2 Sep 2006 12:25:26 +0000 (22:25 +1000)
be committed soon after this.  Without the change, MEMFORMAT_DMA_OUT appears
to have no effect.

shared-core/nouveau_object.c

index fb30d52..f5c16c5 100644 (file)
@@ -338,14 +338,17 @@ struct nouveau_object *nouveau_dma_object_create(drm_device_t* dev,
                        | (adjust<<20)
                        | (access<<14)
                        | (target<<16)
-                       | 2)
+                       | 0x3D /* DMA_IN_MEMORY */)
                );
        NV_WRITE(NV_RAMIN + obj->instance +  4,
                        size - 1);
        NV_WRITE(NV_RAMIN + obj->instance +  8,
                        frame | ((access != NV_DMA_ACCESS_RO) ? (1<<1) : 0));
+       /* I don't actually know what this is, the DMA objects I see
+        * in renouveau dumps usually have this as the same as +8
+        */
        NV_WRITE(NV_RAMIN + obj->instance + 12,
-                       0xFFFFFFFF);
+                       frame | ((access != NV_DMA_ACCESS_RO) ? (1<<1) : 0));
 
        return obj;
 }