diff options
Diffstat (limited to 'src/nv_accel_common.c')
-rw-r--r-- | src/nv_accel_common.c | 93 |
1 files changed, 44 insertions, 49 deletions
diff --git a/src/nv_accel_common.c b/src/nv_accel_common.c index 640dac6..23fc940 100644 --- a/src/nv_accel_common.c +++ b/src/nv_accel_common.c @@ -82,11 +82,9 @@ NVAccelInitContextSurfaces(ScrnInfoPtr pScrn) have_object = TRUE; } - NVDmaSetObjectOnSubchannel(pNv, NvSubContextSurfaces, - NvContextSurfaces); - NVDmaStart(pNv, NvSubContextSurfaces, NV04_SURFACE_DMA_NOTIFY, 1); + NVDmaStart(pNv, NvContextSurfaces, NV04_SURFACE_DMA_NOTIFY, 1); NVDmaNext (pNv, NvNullObject); - NVDmaStart(pNv, NvSubContextSurfaces, NV04_SURFACE_DMA_IMAGE_SOURCE, 2); + NVDmaStart(pNv, NvContextSurfaces, NV04_SURFACE_DMA_IMAGE_SOURCE, 2); NVDmaNext (pNv, NvDmaFB); NVDmaNext (pNv, NvDmaFB); @@ -145,7 +143,7 @@ NVAccelSetCtxSurf2D(PixmapPtr psPix, PixmapPtr pdPix, int format) ScrnInfoPtr pScrn = xf86Screens[psPix->drawable.pScreen->myNum]; NVPtr pNv = NVPTR(pScrn); - NVDmaStart(pNv, NvSubContextSurfaces, SURFACE_FORMAT, 4); + NVDmaStart(pNv, NvContextSurfaces, SURFACE_FORMAT, 4); NVDmaNext (pNv, format); NVDmaNext (pNv, ((uint32_t)exaGetPixmapPitch(pdPix) << 16) | (uint32_t)exaGetPixmapPitch(psPix)); @@ -171,12 +169,10 @@ NVAccelInitImagePattern(ScrnInfoPtr pScrn) have_object = TRUE; } - NVDmaSetObjectOnSubchannel(pNv, NvSubImagePattern, - NvImagePattern); - NVDmaStart(pNv, NvSubImagePattern, + NVDmaStart(pNv, NvImagePattern, 0x180, /*NV04_IMAGE_PATTERN_SET_DMA_NOTIFY*/ 1); NVDmaNext (pNv, NvNullObject); - NVDmaStart(pNv, NvSubImagePattern, NV04_IMAGE_PATTERN_MONO_FORMAT, 3); + NVDmaStart(pNv, NvImagePattern, NV04_IMAGE_PATTERN_MONO_FORMAT, 3); #if X_BYTE_ORDER == X_BIG_ENDIAN NVDmaNext (pNv, 2 /* NV04_IMAGE_PATTERN_BIGENDIAN/LE_M1 */); #else @@ -204,8 +200,7 @@ NVAccelInitRasterOp(ScrnInfoPtr pScrn) have_object = TRUE; } - NVDmaSetObjectOnSubchannel(pNv, NvSubRop, NvRop); - NVDmaStart(pNv, NvSubRop, NV03_PRIMITIVE_RASTER_OP_DMA_NOTIFY, 1); + NVDmaStart(pNv, NvRop, NV03_PRIMITIVE_RASTER_OP_DMA_NOTIFY, 1); NVDmaNext (pNv, NvNullObject); return TRUE; @@ -227,21 +222,28 @@ NVAccelInitRectangle(ScrnInfoPtr pScrn) have_object = TRUE; } - NVDmaSetObjectOnSubchannel(pNv, NvSubRectangle, NvRectangle); - NVDmaStart(pNv, NvSubRectangle, + NVDmaStart(pNv, NvRectangle, NV04_GDI_RECTANGLE_TEXT_SET_DMA_NOTIFY, 1); NVDmaNext (pNv, NvDmaNotifier0); - NVDmaStart(pNv, NvSubRectangle, + NVDmaStart(pNv, NvRectangle, 0x184 /*NV04_GDI_RECTANGLE_TEXT_SET_DMA_FONTS*/, 1); NVDmaNext (pNv, NvNullObject); - NVDmaStart(pNv, NvSubRectangle, NV04_GDI_RECTANGLE_TEXT_SURFACE, 1); + NVDmaStart(pNv, NvRectangle, NV04_GDI_RECTANGLE_TEXT_SURFACE, 1); NVDmaNext (pNv, NvContextSurfaces); - NVDmaStart(pNv, NvSubRectangle, NV04_GDI_RECTANGLE_TEXT_ROP5, 1); + NVDmaStart(pNv, NvRectangle, NV04_GDI_RECTANGLE_TEXT_ROP5, 1); NVDmaNext (pNv, NvRop); - NVDmaStart(pNv, NvSubRectangle, NV04_GDI_RECTANGLE_TEXT_PATTERN, 1); + NVDmaStart(pNv, NvRectangle, NV04_GDI_RECTANGLE_TEXT_PATTERN, 1); NVDmaNext (pNv, NvImagePattern); - NVDmaStart(pNv, NvSubRectangle, NV04_GDI_RECTANGLE_TEXT_OPERATION, 1); + NVDmaStart(pNv, NvRectangle, NV04_GDI_RECTANGLE_TEXT_OPERATION, 1); NVDmaNext (pNv, 1 /* ROP_AND */); + NVDmaStart(pNv, NvRectangle, + 0x304 /*NV04_GDI_RECTANGLE_TEXT_MONO_FORMAT*/, 1); + /* XXX why putting 1 like renouveau dump, swap the text */ +#if 1 || X_BYTE_ORDER == X_BIG_ENDIAN + NVDmaNext (pNv, 2 /* NV04_GDI_RECTANGLE_BIGENDIAN/LE_M1 */); +#else + NVDmaNext (pNv, 1 /* NV04_GDI_RECTANGLE_LOWENDIAN/CGA6_M1 */); +#endif return TRUE; } @@ -262,18 +264,17 @@ NVAccelInitImageBlit(ScrnInfoPtr pScrn) have_object = TRUE; } - NVDmaSetObjectOnSubchannel(pNv, NvSubImageBlit, NvImageBlit); - NVDmaStart(pNv, NvSubImageBlit, NV_IMAGE_BLIT_DMA_NOTIFY, 1); + NVDmaStart(pNv, NvImageBlit, NV_IMAGE_BLIT_DMA_NOTIFY, 1); NVDmaNext (pNv, NvDmaNotifier0); - NVDmaStart(pNv, NvSubImageBlit, NV_IMAGE_BLIT_COLOR_KEY, 1); + NVDmaStart(pNv, NvImageBlit, NV_IMAGE_BLIT_COLOR_KEY, 1); NVDmaNext (pNv, NvNullObject); - NVDmaStart(pNv, NvSubImageBlit, NV_IMAGE_BLIT_SURFACE, 1); + NVDmaStart(pNv, NvImageBlit, NV_IMAGE_BLIT_SURFACE, 1); NVDmaNext (pNv, NvContextSurfaces); - NVDmaStart(pNv, NvSubImageBlit, NV_IMAGE_BLIT_CLIP_RECTANGLE, 3); + NVDmaStart(pNv, NvImageBlit, NV_IMAGE_BLIT_CLIP_RECTANGLE, 3); NVDmaNext (pNv, NvNullObject); NVDmaNext (pNv, NvImagePattern); NVDmaNext (pNv, NvRop); - NVDmaStart(pNv, NvSubImageBlit, NV_IMAGE_BLIT_OPERATION, 1); + NVDmaStart(pNv, NvImageBlit, NV_IMAGE_BLIT_OPERATION, 1); NVDmaNext (pNv, 1 /* NV_IMAGE_BLIT_OPERATION_ROP_AND */); return TRUE; @@ -308,25 +309,24 @@ NVAccelInitScaledImage(ScrnInfoPtr pScrn) have_object = TRUE; } - NVDmaSetObjectOnSubchannel(pNv, NvSubScaledImage, NvScaledImage); - NVDmaStart(pNv, NvSubScaledImage, + NVDmaStart(pNv, NvScaledImage, NV04_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY, 1); NVDmaNext (pNv, NvDmaNotifier0); - NVDmaStart(pNv, NvSubScaledImage, + NVDmaStart(pNv, NvScaledImage, NV04_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE, 1); NVDmaNext (pNv, NvDmaFB); /* source object */ - NVDmaStart(pNv, NvSubScaledImage, + NVDmaStart(pNv, NvScaledImage, NV04_SCALED_IMAGE_FROM_MEMORY_SURFACE, 1); NVDmaNext (pNv, NvContextSurfaces); - NVDmaStart(pNv, NvSubScaledImage, 0x188, 1); /* PATTERN */ + NVDmaStart(pNv, NvScaledImage, 0x188, 1); /* PATTERN */ NVDmaNext (pNv, NvNullObject); - NVDmaStart(pNv, NvSubScaledImage, 0x18c, 1); /* ROP */ + NVDmaStart(pNv, NvScaledImage, 0x18c, 1); /* ROP */ NVDmaNext (pNv, NvNullObject); - NVDmaStart(pNv, NvSubScaledImage, 0x190, 1); /* BETA1 */ + NVDmaStart(pNv, NvScaledImage, 0x190, 1); /* BETA1 */ NVDmaNext (pNv, NvNullObject); - NVDmaStart(pNv, NvSubScaledImage, 0x194, 1); /* BETA4 */ + NVDmaStart(pNv, NvScaledImage, 0x194, 1); /* BETA4 */ NVDmaNext (pNv, NvNullObject); - NVDmaStart(pNv, NvSubScaledImage, + NVDmaStart(pNv, NvScaledImage, NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION, 1); NVDmaNext (pNv, 3 /* SRCCOPY */); @@ -347,8 +347,7 @@ NVAccelInitClipRectangle(ScrnInfoPtr pScrn) have_object = TRUE; } - NVDmaSetObjectOnSubchannel(pNv, NvSubClipRectangle, NvClipRectangle); - NVDmaStart(pNv, NvSubClipRectangle, 0x180, 1); /* DMA_NOTIFY */ + NVDmaStart(pNv, NvClipRectangle, 0x180, 1); /* DMA_NOTIFY */ NVDmaNext (pNv, NvNullObject); return TRUE; @@ -368,14 +367,13 @@ NVAccelInitSolidLine(ScrnInfoPtr pScrn) have_object = TRUE; } - NVDmaSetObjectOnSubchannel(pNv, NvSubSolidLine, NvSolidLine); - NVDmaStart(pNv, NvSubSolidLine, NV04_SOLID_LINE_CLIP_RECTANGLE, 3); + NVDmaStart(pNv, NvSolidLine, NV04_SOLID_LINE_CLIP_RECTANGLE, 3); NVDmaNext (pNv, NvClipRectangle); NVDmaNext (pNv, NvImagePattern); NVDmaNext (pNv, NvRop); - NVDmaStart(pNv, NvSubSolidLine, NV04_SOLID_LINE_SURFACE, 1); + NVDmaStart(pNv, NvSolidLine, NV04_SOLID_LINE_SURFACE, 1); NVDmaNext (pNv, NvContextSurfaces); - NVDmaStart(pNv, NvSubSolidLine, NV04_SOLID_LINE_OPERATION, 1); + NVDmaStart(pNv, NvSolidLine, NV04_SOLID_LINE_OPERATION, 1); NVDmaNext (pNv, 1); /* ROP_AND */ return TRUE; @@ -400,11 +398,10 @@ NVAccelInitMemFormat(ScrnInfoPtr pScrn) have_object = TRUE; } - NVDmaSetObjectOnSubchannel(pNv, NvSubMemFormat, NvMemFormat); - NVDmaStart(pNv, NvSubMemFormat, + NVDmaStart(pNv, NvMemFormat, NV_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY, 1); NVDmaNext (pNv, NvDmaNotifier0); - NVDmaStart(pNv, NvSubMemFormat, + NVDmaStart(pNv, NvMemFormat, NV_MEMORY_TO_MEMORY_FORMAT_OBJECT_IN, 2); NVDmaNext (pNv, NvDmaFB); NVDmaNext (pNv, NvDmaFB); @@ -425,9 +422,7 @@ NVAccelInit2D_NV50(ScrnInfoPtr pScrn) have_object = TRUE; } - NVDmaSetObjectOnSubchannel(pNv, NvSub2D, Nv2D); - - NVDmaStart(pNv, NvSub2D, 0x180, 3); + NVDmaStart(pNv, Nv2D, 0x180, 3); NVDmaNext (pNv, NvDmaNotifier0); NVDmaNext (pNv, NvDmaFB); NVDmaNext (pNv, NvDmaFB); @@ -435,13 +430,13 @@ NVAccelInit2D_NV50(ScrnInfoPtr pScrn) /* Magics from nv, no clue what they do, but at least some * of them are needed to avoid crashes. */ - NVDmaStart(pNv, NvSub2D, 0x260, 1); + NVDmaStart(pNv, Nv2D, 0x260, 1); NVDmaNext (pNv, 1); - NVDmaStart(pNv, NvSub2D, 0x290, 1); + NVDmaStart(pNv, Nv2D, 0x290, 1); NVDmaNext (pNv, 1); - NVDmaStart(pNv, NvSub2D, 0x29c, 1); + NVDmaStart(pNv, Nv2D, 0x29c, 1); NVDmaNext (pNv, 0); - NVDmaStart(pNv, NvSub2D, 0x58c, 1); + NVDmaStart(pNv, Nv2D, 0x58c, 1); NVDmaNext (pNv, 0x111); pNv->currentRop = 0xfffffffa; |