summaryrefslogtreecommitdiff
path: root/src/via_ums.c
diff options
context:
space:
mode:
authorJames Simmons <jsimmons@infradead.org>2011-09-03 12:17:44 +0000
committerJames Simmons <jsimmons@infradead.org>2011-09-03 12:17:44 +0000
commit67053cee4ad4ded444170951394e8691ec9edea1 (patch)
tree219cd1ff0544bea134d11dd0290a524acc21ad1a /src/via_ums.c
parent446760cf318e2bbf2b3ad156b4eb6faace2e7070 (diff)
Move some accel handling code to the UMS section since this will change with TTM handling
Diffstat (limited to 'src/via_ums.c')
-rw-r--r--src/via_ums.c42
1 files changed, 29 insertions, 13 deletions
diff --git a/src/via_ums.c b/src/via_ums.c
index 0b5fd7d..44bce2c 100644
--- a/src/via_ums.c
+++ b/src/via_ums.c
@@ -145,23 +145,39 @@ UMSAccelSetup(ScrnInfoPtr pScrn)
}
#endif
- if (pVia->NoAccel) {
- memset(pVia->FBBase, 0x00, pVia->videoRambytes);
- } else {
- viaFinishInitAccel(pScreen);
+ if (pVia->NoAccel) {
+ memset(pVia->FBBase, 0x00, pVia->videoRambytes);
+
+ /*
+ * This is only for Xv in Noaccel path, and since Xv is in some
+ * sense accelerated, it might be a better idea to disable it
+ * altogether.
+ */
+ BoxRec AvailFBArea;
+
+ AvailFBArea.x1 = 0;
+ AvailFBArea.y1 = 0;
+ AvailFBArea.x2 = pScrn->displayWidth;
+ AvailFBArea.y2 = pScrn->virtualY + 1;
+ pVia->FBFreeStart = (AvailFBArea.y2 + 1) * pVia->Bpl;
+ xf86InitFBManager(pScreen, &AvailFBArea);
+ VIAInitLinear(pScreen);
+ pVia->driSize = (pVia->FBFreeEnd - pVia->FBFreeStart - pVia->Bpl);
+
+ } else {
+ viaFinishInitAccel(pScreen);
#ifdef XF86DRI
- if (pVia->directRenderingType)
- DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
+ if (pVia->directRenderingType)
+ DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
#endif
- viaAccelFillRect(pScrn, pScrn->frameX0, pScrn->frameY0,
- pScrn->displayWidth, pScrn->virtualY, 0x00000000);
- viaAccelSyncMarker(pScrn);
+ viaAccelFillRect(pScrn, pScrn->frameX0, pScrn->frameY0,
+ pScrn->displayWidth, pScrn->virtualY, 0x00000000);
+ viaAccelSyncMarker(pScrn);
#ifdef XF86DRI
- if (pVia->directRenderingType)
- DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
+ if (pVia->directRenderingType)
+ DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
#endif
- }
- vgaHWBlankScreen(pScrn, TRUE);
+ }
}
Bool