diff options
author | Will Thompson <will@willthompson.co.uk> | 2012-05-01 20:24:15 +0100 |
---|---|---|
committer | Will Thompson <will@willthompson.co.uk> | 2012-05-04 11:44:23 +0100 |
commit | 3e81e6fdc0d2c15d6a45a0e7e4e6668056dd1d79 (patch) | |
tree | 0df400467801cb739ab6de8e6fd163e70a07a4c5 | |
parent | f097f82eae3a93e644ca9570ff97dc7543d16651 (diff) |
Blow away DGA
-rw-r--r-- | src/videocore.c | 161 |
1 files changed, 1 insertions, 160 deletions
diff --git a/src/videocore.c b/src/videocore.c index 40aa5a7..7a8ae57 100644 --- a/src/videocore.c +++ b/src/videocore.c @@ -56,7 +56,6 @@ static Bool FBDevPreInit(ScrnInfoPtr pScrn, int flags); static Bool FBDevScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv); static Bool FBDevCloseScreen(int scrnIndex, ScreenPtr pScreen); -static Bool FBDevDGAInit(ScrnInfoPtr pScrn, ScreenPtr pScreen); static Bool FBDevDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, pointer ptr); @@ -170,13 +169,10 @@ struct _VideoCoreRec { unsigned char* fbstart; unsigned char* fbmem; int fboff; - int lineLength; CloseScreenProcPtr CloseScreen; CreateScreenResourcesProcPtr CreateScreenResources; EntityInfoPtr pEnt; - /* DGA info */ - DGAModePtr pDGAMode; - int nDGAMode; + OptionInfoPtr Options; }; @@ -694,8 +690,6 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Render extension initialisation failed\n"); - FBDevDGAInit(pScrn, pScreen); - xf86SetBlackWhitePixels(pScreen); miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); @@ -773,11 +767,6 @@ FBDevCloseScreen(int scrnIndex, ScreenPtr pScreen) fbdevHWRestore(pScrn); fbdevHWUnmapVidmem(pScrn); - if (fPtr->pDGAMode) { - free(fPtr->pDGAMode); - fPtr->pDGAMode = NULL; - fPtr->nDGAMode = 0; - } pScrn->vtSema = FALSE; pScreen->CreateScreenResources = fPtr->CreateScreenResources; @@ -785,154 +774,6 @@ FBDevCloseScreen(int scrnIndex, ScreenPtr pScreen) return (*pScreen->CloseScreen)(scrnIndex, pScreen); } - -/*********************************************************************** - * DGA stuff - ***********************************************************************/ -static Bool FBDevDGAOpenFramebuffer(ScrnInfoPtr pScrn, char **DeviceName, - unsigned char **ApertureBase, - int *ApertureSize, int *ApertureOffset, - int *flags); -static Bool FBDevDGASetMode(ScrnInfoPtr pScrn, DGAModePtr pDGAMode); -static void FBDevDGASetViewport(ScrnInfoPtr pScrn, int x, int y, int flags); - -static Bool -FBDevDGAOpenFramebuffer(ScrnInfoPtr pScrn, char **DeviceName, - unsigned char **ApertureBase, int *ApertureSize, - int *ApertureOffset, int *flags) -{ - *DeviceName = NULL; /* No special device */ - *ApertureBase = (unsigned char *)(pScrn->memPhysBase); - *ApertureSize = pScrn->videoRam; - *ApertureOffset = pScrn->fbOffset; - *flags = 0; - - return TRUE; -} - -static Bool -FBDevDGASetMode(ScrnInfoPtr pScrn, DGAModePtr pDGAMode) -{ - DisplayModePtr pMode; - int scrnIdx = pScrn->pScreen->myNum; - int frameX0, frameY0; - - if (pDGAMode) { - pMode = pDGAMode->mode; - frameX0 = frameY0 = 0; - } - else { - if (!(pMode = pScrn->currentMode)) - return TRUE; - - frameX0 = pScrn->frameX0; - frameY0 = pScrn->frameY0; - } - - if (!(*pScrn->SwitchMode)(scrnIdx, pMode, 0)) - return FALSE; - (*pScrn->AdjustFrame)(scrnIdx, frameX0, frameY0, 0); - - return TRUE; -} - -static void -FBDevDGASetViewport(ScrnInfoPtr pScrn, int x, int y, int flags) -{ - (*pScrn->AdjustFrame)(pScrn->pScreen->myNum, x, y, flags); -} - -static int -FBDevDGAGetViewport(ScrnInfoPtr pScrn) -{ - return (0); -} - -static DGAFunctionRec FBDevDGAFunctions = -{ - FBDevDGAOpenFramebuffer, - NULL, /* CloseFramebuffer */ - FBDevDGASetMode, - FBDevDGASetViewport, - FBDevDGAGetViewport, - NULL, /* Sync */ - NULL, /* FillRect */ - NULL, /* BlitRect */ - NULL, /* BlitTransRect */ -}; - -static void -FBDevDGAAddModes(ScrnInfoPtr pScrn) -{ - VideoCorePtr fPtr = VIDEOCOREPTR(pScrn); - DisplayModePtr pMode = pScrn->modes; - DGAModePtr pDGAMode; - - do { - pDGAMode = realloc(fPtr->pDGAMode, - (fPtr->nDGAMode + 1) * sizeof(DGAModeRec)); - if (!pDGAMode) - break; - - fPtr->pDGAMode = pDGAMode; - pDGAMode += fPtr->nDGAMode; - (void)memset(pDGAMode, 0, sizeof(DGAModeRec)); - - ++fPtr->nDGAMode; - pDGAMode->mode = pMode; - pDGAMode->flags = DGA_CONCURRENT_ACCESS | DGA_PIXMAP_AVAILABLE; - pDGAMode->byteOrder = pScrn->imageByteOrder; - pDGAMode->depth = pScrn->depth; - pDGAMode->bitsPerPixel = pScrn->bitsPerPixel; - pDGAMode->red_mask = pScrn->mask.red; - pDGAMode->green_mask = pScrn->mask.green; - pDGAMode->blue_mask = pScrn->mask.blue; - pDGAMode->visualClass = pScrn->bitsPerPixel > 8 ? - TrueColor : PseudoColor; - pDGAMode->xViewportStep = 1; - pDGAMode->yViewportStep = 1; - pDGAMode->viewportWidth = pMode->HDisplay; - pDGAMode->viewportHeight = pMode->VDisplay; - - if (fPtr->lineLength) - pDGAMode->bytesPerScanline = fPtr->lineLength; - else - pDGAMode->bytesPerScanline = fPtr->lineLength = fbdevHWGetLineLength(pScrn); - - pDGAMode->imageWidth = pMode->HDisplay; - pDGAMode->imageHeight = pMode->VDisplay; - pDGAMode->pixmapWidth = pDGAMode->imageWidth; - pDGAMode->pixmapHeight = pDGAMode->imageHeight; - pDGAMode->maxViewportX = pScrn->virtualX - - pDGAMode->viewportWidth; - pDGAMode->maxViewportY = pScrn->virtualY - - pDGAMode->viewportHeight; - - pDGAMode->address = fPtr->fbstart; - - pMode = pMode->next; - } while (pMode != pScrn->modes); -} - -static Bool -FBDevDGAInit(ScrnInfoPtr pScrn, ScreenPtr pScreen) -{ -#ifdef XFreeXDGA - VideoCorePtr fPtr = VIDEOCOREPTR(pScrn); - - if (pScrn->depth < 8) - return FALSE; - - if (!fPtr->nDGAMode) - FBDevDGAAddModes(pScrn); - - return (DGAInit(pScreen, &FBDevDGAFunctions, - fPtr->pDGAMode, fPtr->nDGAMode)); -#else - return TRUE; -#endif -} - static Bool FBDevDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, pointer ptr) { |