diff options
Diffstat (limited to 'src/nv_dma.h')
-rw-r--r-- | src/nv_dma.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/nv_dma.h b/src/nv_dma.h index 3d43fcd..16be1fd 100644 --- a/src/nv_dma.h +++ b/src/nv_dma.h @@ -67,7 +67,7 @@ enum DMAObjects { NvMemFormat = 0x80000018, Nv3D = 0x80000019, NvDmaFB = 0xD8000001, - NvDmaAGP = 0xD8000002, + NvDmaTT = 0xD8000002, NvDmaNotifier0 = 0xD8000003 }; @@ -93,14 +93,18 @@ enum DMASubchannel { (pNv)->dmaBase[(pNv)->dmaCurrent++] = (data); \ } while(0) -#define NVDmaFloat(pNv, data) do { \ - float f = (data); \ - NVDmaNext((pNv), *(CARD32*)&f); \ +#define NVDmaFloat(pNv, data) do { \ + union { \ + float v; \ + uint32_t u; \ + } c; \ + c.v = (data); \ + NVDmaNext((pNv), c.u); \ } while(0) #define NVDmaStart(pNv, subchannel, tag, size) do { \ if((pNv)->dmaFree <= (size)) \ - NVDmaWait(pNv, size); \ + NVDmaWait(pScrn, size); \ NVDEBUG("NVDmaStart: subc=%d, cmd=%x, num=%d\n", (subchannel), (tag), (size)); \ NVDmaNext(pNv, ((size) << 18) | ((subchannel) << 13) | (tag)); \ (pNv)->dmaFree -= ((size) + 1); \ |