nouveau: update for drm interface changes (0.0.5)
authorBen Skeggs <skeggsb@gmail.com>
Wed, 21 Mar 2007 06:54:57 +0000 (17:54 +1100)
committerBen Skeggs <skeggsb@gmail.com>
Wed, 21 Mar 2007 06:54:57 +0000 (17:54 +1100)
src/mesa/drivers/dri/nouveau/nouveau_context.h
src/mesa/drivers/dri/nouveau/nouveau_fifo.c
src/mesa/drivers/dri/nouveau/nouveau_object.c
src/mesa/drivers/dri/nouveau/nouveau_screen.c

index f79a8675f44a3a43f195dc1b1fdca57b99d070c9..87e4479da341092a3bf853ecc776ba6e399cc5d6 100644 (file)
@@ -45,6 +45,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "xmlconfig.h"
 
 typedef struct nouveau_fifo_t{
+       int channel;
        u_int32_t* buffer;
        u_int32_t* mmio;
        u_int32_t put_base;
index 67b5aa4f8a8c5654c7751ef6b0cf4667c0ef1c9d..bd2b2eddd0842a668c5692ea16e2c49676a7c5a5 100644 (file)
@@ -124,6 +124,7 @@ GLboolean nouveauFifoInit(nouveauContextPtr nmesa)
        }
 
        /* Setup our initial FIFO tracking params */
+       nmesa->fifo.channel  = fifo_init.channel;
        nmesa->fifo.put_base = fifo_init.put_base;
        nmesa->fifo.current  = 0;
        nmesa->fifo.put      = 0;
index 468b18e6d9056d76eddec46e0541df2b24c72640..b71acff4301fa32257101a4b5cbb85f66ef12a5a 100644 (file)
@@ -10,8 +10,9 @@ GLboolean nouveauCreateContextObject(nouveauContextPtr nmesa,
        drm_nouveau_object_init_t cto;
        int ret;
 
-       cto.handle = handle;
-       cto.class  = class;
+       cto.channel = nmesa->fifo.channel;
+       cto.handle  = handle;
+       cto.class   = class;
        ret = drmCommandWrite(nmesa->driFd, DRM_NOUVEAU_OBJECT_INIT, &cto, sizeof(cto));
 
        return ret == 0;
@@ -28,12 +29,13 @@ GLboolean nouveauCreateDmaObject(nouveauContextPtr nmesa,
        drm_nouveau_dma_object_init_t dma;
        int ret;
 
-       dma.class  = class;
-       dma.handle = handle;
-       dma.target = target;
-       dma.access = access;
-       dma.offset = offset;
-       dma.size   = size;
+       dma.channel = nmesa->fifo.channel;
+       dma.class   = class;
+       dma.handle  = handle;
+       dma.target  = target;
+       dma.access  = access;
+       dma.offset  = offset;
+       dma.size    = size;
        ret = drmCommandWriteRead(nmesa->driFd, DRM_NOUVEAU_DMA_OBJECT_INIT,
                                  &dma, sizeof(dma));
        return ret == 0;
index e00080fce1e03e8a25e19bd7fd61e01885e729d5..65bde99671d1ae23ac7c9e5052cf12a9d1571f99 100644 (file)
@@ -328,7 +328,7 @@ void * __driCreateNewScreen_20050727( __DRInativeDisplay *dpy, int scrn, __DRIsc
        static const __DRIversion ddx_expected = { 1, 2, 0 };
        static const __DRIversion dri_expected = { 4, 0, 0 };
        static const __DRIversion drm_expected = { 0, 0, NOUVEAU_DRM_HEADER_PATCHLEVEL };
-#if NOUVEAU_DRM_HEADER_PATCHLEVEL != 4
+#if NOUVEAU_DRM_HEADER_PATCHLEVEL != 5
 #error nouveau_drm.h version doesn't match expected version
 #endif
        dri_interface = interface;