summaryrefslogtreecommitdiff
path: root/src/nv_accel_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nv_accel_common.c')
-rw-r--r--src/nv_accel_common.c93
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;