mirror of
https://github.com/X11Libre/xf86-video-fbdev.git
synced 2026-03-24 09:34:57 +00:00
Compare commits
15 Commits
XPRINT_BAS
...
XORG-6_8_0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2327cdd208 | ||
|
|
bd1e31bdb5 | ||
|
|
1d3246ca0d | ||
|
|
ce86e2a272 | ||
|
|
4c1492ac6d | ||
|
|
64ef1f4af1 | ||
|
|
db6514cea0 | ||
|
|
1e80fe1bf9 | ||
|
|
5d8a0a2e47 | ||
|
|
69d61895f3 | ||
|
|
806863c5f6 | ||
|
|
595a614cd9 | ||
|
|
62bec818a1 | ||
|
|
48e31aaed2 | ||
|
|
3a00d91359 |
66
src/fbdev.c
66
src/fbdev.c
@@ -1,4 +1,4 @@
|
||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c,v 1.42 2002/10/10 01:35:20 dawes Exp $ */
|
||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c,v 1.44 2003/09/24 02:43:21 dawes Exp $ */
|
||||
|
||||
/*
|
||||
* Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
|
||||
@@ -29,9 +29,7 @@
|
||||
|
||||
#include "fbdevhw.h"
|
||||
|
||||
#ifdef XvExtension
|
||||
#include "xf86xv.h"
|
||||
#endif
|
||||
|
||||
#define DEBUG 0
|
||||
|
||||
@@ -139,7 +137,9 @@ static const char *shadowSymbols[] = {
|
||||
"shadowInit",
|
||||
"shadowSetup",
|
||||
"shadowUpdatePacked",
|
||||
"shadowUpdatePackedWeak",
|
||||
"shadowUpdateRotatePacked",
|
||||
"shadowUpdateRotatePackedWeak",
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -160,20 +160,23 @@ static const char *fbdevHWSymbols[] = {
|
||||
"fbdevHWUnmapVidmem",
|
||||
|
||||
/* colormap */
|
||||
"fbdevHWLoadpalette",
|
||||
"fbdevHWLoadPalette",
|
||||
"fbdevHWLoadPaletteWeak",
|
||||
|
||||
/* ScrnInfo hooks */
|
||||
"fbdevHWAdjustFrame",
|
||||
"fbdevHWEnterVT",
|
||||
"fbdevHWLeaveVT",
|
||||
"fbdevHWAdjustFrameWeak",
|
||||
"fbdevHWEnterVTWeak",
|
||||
"fbdevHWLeaveVTWeak",
|
||||
"fbdevHWModeInit",
|
||||
"fbdevHWRestore",
|
||||
"fbdevHWSave",
|
||||
"fbdevHWSaveScreen",
|
||||
"fbdevHWSwitchMode",
|
||||
"fbdevHWValidMode",
|
||||
"fbdevHWSaveScreenWeak",
|
||||
"fbdevHWSwitchModeWeak",
|
||||
"fbdevHWValidModeWeak",
|
||||
|
||||
"fbdevHWDPMSSet",
|
||||
"fbdevHWDPMSSetWeak",
|
||||
|
||||
NULL
|
||||
};
|
||||
@@ -188,7 +191,7 @@ static XF86ModuleVersionInfo FBDevVersRec =
|
||||
MODULEVENDORSTRING,
|
||||
MODINFOSTRING1,
|
||||
MODINFOSTRING2,
|
||||
XF86_VERSION_CURRENT,
|
||||
XORG_VERSION_CURRENT,
|
||||
FBDEV_MAJOR_VERSION, FBDEV_MINOR_VERSION, 0,
|
||||
ABI_CLASS_VIDEODRV,
|
||||
ABI_VIDEODRV_VERSION,
|
||||
@@ -356,11 +359,11 @@ FBDevProbe(DriverPtr drv, int flags)
|
||||
pScrn->Probe = FBDevProbe;
|
||||
pScrn->PreInit = FBDevPreInit;
|
||||
pScrn->ScreenInit = FBDevScreenInit;
|
||||
pScrn->SwitchMode = fbdevHWSwitchMode;
|
||||
pScrn->AdjustFrame = fbdevHWAdjustFrame;
|
||||
pScrn->EnterVT = fbdevHWEnterVT;
|
||||
pScrn->LeaveVT = fbdevHWLeaveVT;
|
||||
pScrn->ValidMode = fbdevHWValidMode;
|
||||
pScrn->SwitchMode = fbdevHWSwitchModeWeak();
|
||||
pScrn->AdjustFrame = fbdevHWAdjustFrameWeak();
|
||||
pScrn->EnterVT = fbdevHWEnterVTWeak();
|
||||
pScrn->LeaveVT = fbdevHWLeaveVTWeak();
|
||||
pScrn->ValidMode = fbdevHWValidModeWeak();
|
||||
|
||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
||||
"using %s\n", dev ? dev : "default device");
|
||||
@@ -379,6 +382,7 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
|
||||
int default_depth, fbbpp;
|
||||
const char *mod = NULL, *s;
|
||||
const char **syms = NULL;
|
||||
int type;
|
||||
|
||||
if (flags & PROBE_DETECT) return FALSE;
|
||||
|
||||
@@ -410,7 +414,8 @@ 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,0))
|
||||
if (!xf86SetDepthBpp(pScrn, default_depth, default_depth, fbbpp,
|
||||
Support24bppFb | Support32bppFb | SupportConvert32to24 | PreferConvert32to24))
|
||||
return FALSE;
|
||||
xf86PrintDepthBpp(pScrn);
|
||||
|
||||
@@ -534,7 +539,7 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
|
||||
xf86SetDpi(pScrn, 0, 0);
|
||||
|
||||
/* Load bpp-specific modules */
|
||||
switch (fbdevHWGetType(pScrn))
|
||||
switch ((type = fbdevHWGetType(pScrn)))
|
||||
{
|
||||
case FBDEVHW_PLANES:
|
||||
mod = "afb";
|
||||
@@ -575,7 +580,7 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
|
||||
return FALSE;
|
||||
default:
|
||||
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
||||
"Fbdev type (%d) not supported yet.");
|
||||
"Fbdev type (%d) not supported yet.", type);
|
||||
return FALSE;
|
||||
}
|
||||
if (mod && xf86LoadSubModule(pScrn, mod) == NULL) {
|
||||
@@ -608,6 +613,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
VisualPtr visual;
|
||||
int init_picture = 0;
|
||||
int ret,flags,width,height;
|
||||
int type;
|
||||
|
||||
TRACE_ENTER("FBDevScreenInit");
|
||||
|
||||
@@ -685,7 +691,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
fPtr->fbstart = fPtr->fbmem + fPtr->fboff;
|
||||
}
|
||||
|
||||
switch (fbdevHWGetType(pScrn))
|
||||
switch ((type = fbdevHWGetType(pScrn)))
|
||||
{
|
||||
#ifdef USE_AFB
|
||||
case FBDEVHW_PLANES:
|
||||
@@ -752,7 +758,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
default:
|
||||
xf86DrvMsg(scrnIndex, X_ERROR,
|
||||
"Internal error: fbdev type (%d) unsupported in"
|
||||
" FBDevScreenInit\n");
|
||||
" FBDevScreenInit\n", type);
|
||||
ret = FALSE;
|
||||
break;
|
||||
}
|
||||
@@ -781,7 +787,8 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
|
||||
if (fPtr->shadowFB &&
|
||||
(!shadowSetup(pScreen) || !shadowAdd(pScreen, NULL,
|
||||
fPtr->rotate ? shadowUpdateRotatePacked : shadowUpdatePacked,
|
||||
fPtr->rotate ? shadowUpdateRotatePackedWeak()
|
||||
: shadowUpdatePackedWeak(),
|
||||
FBDevWindowLinear, fPtr->rotate, NULL)) ) {
|
||||
xf86DrvMsg(scrnIndex, X_ERROR,
|
||||
"Shadow framebuffer initialization failed.\n");
|
||||
@@ -792,7 +799,8 @@ 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");
|
||||
}
|
||||
@@ -805,7 +813,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
|
||||
|
||||
/* colormap */
|
||||
switch (fbdevHWGetType(pScrn))
|
||||
switch ((type = fbdevHWGetType(pScrn)))
|
||||
{
|
||||
/* XXX It would be simpler to use miCreateDefColormap() in all cases. */
|
||||
#ifdef USE_AFB
|
||||
@@ -835,22 +843,23 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
return FALSE;
|
||||
default:
|
||||
xf86DrvMsg(scrnIndex, X_ERROR,
|
||||
"Internal error: invalid fbdev type (%d) in FBDevScreenInit\n");
|
||||
"Internal error: invalid fbdev type (%d) in FBDevScreenInit\n",
|
||||
type);
|
||||
return FALSE;
|
||||
}
|
||||
flags = CMAP_PALETTED_TRUECOLOR;
|
||||
if(!xf86HandleColormaps(pScreen, 256, 8, fbdevHWLoadPalette, NULL, flags))
|
||||
if(!xf86HandleColormaps(pScreen, 256, 8, fbdevHWLoadPaletteWeak(),
|
||||
NULL, flags))
|
||||
return FALSE;
|
||||
|
||||
xf86DPMSInit(pScreen, fbdevHWDPMSSet, 0);
|
||||
xf86DPMSInit(pScreen, fbdevHWDPMSSetWeak(), 0);
|
||||
|
||||
pScreen->SaveScreen = fbdevHWSaveScreen;
|
||||
pScreen->SaveScreen = fbdevHWSaveScreenWeak();
|
||||
|
||||
/* Wrap the current CloseScreen function */
|
||||
fPtr->CloseScreen = pScreen->CloseScreen;
|
||||
pScreen->CloseScreen = FBDevCloseScreen;
|
||||
|
||||
#ifdef XvExtension
|
||||
{
|
||||
XF86VideoAdaptorPtr *ptr;
|
||||
|
||||
@@ -859,7 +868,6 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
xf86XVScreenInit(pScreen,ptr,n);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
TRACE_EXIT("FBDevScreenInit");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user