mirror of
https://github.com/X11Libre/xf86-video-fbdev.git
synced 2026-04-06 15:33:43 +00:00
Compare commits
1 Commits
XORG-6_8_9
...
XEVIE-BASE
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bacb9bacd1 |
69
src/fbdev.c
69
src/fbdev.c
@@ -2,7 +2,7 @@
|
||||
|
||||
/*
|
||||
* Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
|
||||
* Michel Dänzer, <michdaen@iiic.ethz.ch>
|
||||
* Michel Dänzer, <michdaen@iiic.ethz.ch>
|
||||
*/
|
||||
|
||||
/* all driver need this */
|
||||
@@ -57,8 +57,6 @@ static void * FBDevWindowLinear(ScreenPtr pScreen, CARD32 row, CARD32 offset, in
|
||||
CARD32 *size, void *closure);
|
||||
static void FBDevPointerMoved(int index, int x, int y);
|
||||
static Bool FBDevDGAInit(ScrnInfoPtr pScrn, ScreenPtr pScreen);
|
||||
static Bool FBDevDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op,
|
||||
pointer ptr);
|
||||
|
||||
|
||||
enum { FBDEV_ROTATE_NONE=0, FBDEV_ROTATE_CW=270, FBDEV_ROTATE_UD=180, FBDEV_ROTATE_CCW=90 };
|
||||
@@ -93,8 +91,7 @@ DriverRec FBDEV = {
|
||||
FBDevProbe,
|
||||
FBDevAvailableOptions,
|
||||
NULL,
|
||||
0,
|
||||
FBDevDriverFunc
|
||||
0
|
||||
};
|
||||
|
||||
/* Supported "chipsets" */
|
||||
@@ -140,9 +137,7 @@ static const char *shadowSymbols[] = {
|
||||
"shadowInit",
|
||||
"shadowSetup",
|
||||
"shadowUpdatePacked",
|
||||
"shadowUpdatePackedWeak",
|
||||
"shadowUpdateRotatePacked",
|
||||
"shadowUpdateRotatePackedWeak",
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -163,23 +158,20 @@ static const char *fbdevHWSymbols[] = {
|
||||
"fbdevHWUnmapVidmem",
|
||||
|
||||
/* colormap */
|
||||
"fbdevHWLoadPalette",
|
||||
"fbdevHWLoadPaletteWeak",
|
||||
"fbdevHWLoadpalette",
|
||||
|
||||
/* ScrnInfo hooks */
|
||||
"fbdevHWAdjustFrameWeak",
|
||||
"fbdevHWEnterVTWeak",
|
||||
"fbdevHWLeaveVTWeak",
|
||||
"fbdevHWAdjustFrame",
|
||||
"fbdevHWEnterVT",
|
||||
"fbdevHWLeaveVT",
|
||||
"fbdevHWModeInit",
|
||||
"fbdevHWRestore",
|
||||
"fbdevHWSave",
|
||||
"fbdevHWSaveScreen",
|
||||
"fbdevHWSaveScreenWeak",
|
||||
"fbdevHWSwitchModeWeak",
|
||||
"fbdevHWValidModeWeak",
|
||||
"fbdevHWSwitchMode",
|
||||
"fbdevHWValidMode",
|
||||
|
||||
"fbdevHWDPMSSet",
|
||||
"fbdevHWDPMSSetWeak",
|
||||
|
||||
NULL
|
||||
};
|
||||
@@ -194,7 +186,7 @@ static XF86ModuleVersionInfo FBDevVersRec =
|
||||
MODULEVENDORSTRING,
|
||||
MODINFOSTRING1,
|
||||
MODINFOSTRING2,
|
||||
XORG_VERSION_CURRENT,
|
||||
XF86_VERSION_CURRENT,
|
||||
FBDEV_MAJOR_VERSION, FBDEV_MINOR_VERSION, 0,
|
||||
ABI_CLASS_VIDEODRV,
|
||||
ABI_VIDEODRV_VERSION,
|
||||
@@ -211,7 +203,7 @@ FBDevSetup(pointer module, pointer opts, int *errmaj, int *errmin)
|
||||
|
||||
if (!setupDone) {
|
||||
setupDone = TRUE;
|
||||
xf86AddDriver(&FBDEV, module, HaveDriverFuncs);
|
||||
xf86AddDriver(&FBDEV, module, 0);
|
||||
LoaderRefSymLists(afbSymbols, fbSymbols,
|
||||
shadowSymbols, fbdevHWSymbols, NULL);
|
||||
return (pointer)1;
|
||||
@@ -362,11 +354,11 @@ FBDevProbe(DriverPtr drv, int flags)
|
||||
pScrn->Probe = FBDevProbe;
|
||||
pScrn->PreInit = FBDevPreInit;
|
||||
pScrn->ScreenInit = FBDevScreenInit;
|
||||
pScrn->SwitchMode = fbdevHWSwitchModeWeak();
|
||||
pScrn->AdjustFrame = fbdevHWAdjustFrameWeak();
|
||||
pScrn->EnterVT = fbdevHWEnterVTWeak();
|
||||
pScrn->LeaveVT = fbdevHWLeaveVTWeak();
|
||||
pScrn->ValidMode = fbdevHWValidModeWeak();
|
||||
pScrn->SwitchMode = fbdevHWSwitchMode;
|
||||
pScrn->AdjustFrame = fbdevHWAdjustFrame;
|
||||
pScrn->EnterVT = fbdevHWEnterVT;
|
||||
pScrn->LeaveVT = fbdevHWLeaveVT;
|
||||
pScrn->ValidMode = fbdevHWValidMode;
|
||||
|
||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
||||
"using %s\n", dev ? dev : "default device");
|
||||
@@ -417,8 +409,7 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
|
||||
if (!fbdevHWInit(pScrn,NULL,xf86FindOptionValue(fPtr->pEnt->device->options,"fbdev")))
|
||||
return FALSE;
|
||||
default_depth = fbdevHWGetDepth(pScrn,&fbbpp);
|
||||
if (!xf86SetDepthBpp(pScrn, default_depth, default_depth, fbbpp,
|
||||
Support24bppFb | Support32bppFb | SupportConvert32to24 | PreferConvert32to24))
|
||||
if (!xf86SetDepthBpp(pScrn, default_depth, default_depth, fbbpp,0))
|
||||
return FALSE;
|
||||
xf86PrintDepthBpp(pScrn);
|
||||
|
||||
@@ -790,8 +781,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
|
||||
if (fPtr->shadowFB &&
|
||||
(!shadowSetup(pScreen) || !shadowAdd(pScreen, NULL,
|
||||
fPtr->rotate ? shadowUpdateRotatePackedWeak()
|
||||
: shadowUpdatePackedWeak(),
|
||||
fPtr->rotate ? shadowUpdateRotatePacked : shadowUpdatePacked,
|
||||
FBDevWindowLinear, fPtr->rotate, NULL)) ) {
|
||||
xf86DrvMsg(scrnIndex, X_ERROR,
|
||||
"Shadow framebuffer initialization failed.\n");
|
||||
@@ -802,8 +792,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
FBDevDGAInit(pScrn, pScreen);
|
||||
else {
|
||||
xf86DrvMsg(scrnIndex, X_INFO, "Rotated display, disabling DGA\n");
|
||||
xf86DrvMsg(scrnIndex, X_INFO, "Enabling Driver rotation, disabling RandR\n");
|
||||
xf86DisableRandR();
|
||||
|
||||
if (pScrn->bitsPerPixel == 24)
|
||||
xf86DrvMsg(scrnIndex, X_WARNING, "Rotation might be broken in 24 bpp\n");
|
||||
}
|
||||
@@ -851,13 +840,12 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
return FALSE;
|
||||
}
|
||||
flags = CMAP_PALETTED_TRUECOLOR;
|
||||
if(!xf86HandleColormaps(pScreen, 256, 8, fbdevHWLoadPaletteWeak(),
|
||||
NULL, flags))
|
||||
if(!xf86HandleColormaps(pScreen, 256, 8, fbdevHWLoadPalette, NULL, flags))
|
||||
return FALSE;
|
||||
|
||||
xf86DPMSInit(pScreen, fbdevHWDPMSSetWeak(), 0);
|
||||
xf86DPMSInit(pScreen, fbdevHWDPMSSet, 0);
|
||||
|
||||
pScreen->SaveScreen = fbdevHWSaveScreenWeak();
|
||||
pScreen->SaveScreen = fbdevHWSaveScreen;
|
||||
|
||||
/* Wrap the current CloseScreen function */
|
||||
fPtr->CloseScreen = pScreen->CloseScreen;
|
||||
@@ -1103,18 +1091,3 @@ FBDevDGAInit(ScrnInfoPtr pScrn, ScreenPtr pScreen)
|
||||
return (DGAInit(pScreen, &FBDevDGAFunctions,
|
||||
fPtr->pDGAMode, fPtr->nDGAMode));
|
||||
}
|
||||
|
||||
static Bool
|
||||
FBDevDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, pointer ptr)
|
||||
{
|
||||
xorgHWFlags *flag;
|
||||
|
||||
switch (op) {
|
||||
case GET_REQUIRED_HW_INTERFACES:
|
||||
flag = (CARD32*)ptr;
|
||||
(*flag) = 0;
|
||||
return TRUE;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user