mirror of
https://github.com/X11Libre/xf86-video-fbdev.git
synced 2026-03-28 11:19:23 +00:00
Compare commits
4 Commits
master
...
XPRINT_BEG
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f361e1c61 | ||
|
|
010b0aa643 | ||
|
|
b058394c8c | ||
|
|
bacb9bacd1 |
@@ -1,4 +1,4 @@
|
|||||||
.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.man,v 1.3 2001/10/02 15:57:32 alanh Exp $
|
.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.man,v 1.2 2001/01/27 18:20:47 dawes Exp $
|
||||||
.\" shorthand for double quote that works everywhere.
|
.\" shorthand for double quote that works everywhere.
|
||||||
.ds q \N'34'
|
.ds q \N'34'
|
||||||
.TH FBDEV __drivermansuffix__ __vendorversion__
|
.TH FBDEV __drivermansuffix__ __vendorversion__
|
||||||
@@ -15,7 +15,7 @@ fbdev \- video driver for framebuffer device
|
|||||||
.fi
|
.fi
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.B fbdev
|
.B fbdev
|
||||||
is an XFree86 driver for framebuffer devices. This is a non-accelerated
|
is an __xservername__ driver for framebuffer devices. This is a non-accelerated
|
||||||
driver, the following framebuffer depths are supported: 8, 15, 16, 24.
|
driver, the following framebuffer depths are supported: 8, 15, 16, 24.
|
||||||
All visual types are supported for depth 8, and TrueColor visual is
|
All visual types are supported for depth 8, and TrueColor visual is
|
||||||
supported for the other depths. Multi-head configurations are supported.
|
supported for the other depths. Multi-head configurations are supported.
|
||||||
@@ -27,7 +27,7 @@ fbdev uses the os-specific submodule fbdevhw(__drivermansuffix__) to talk
|
|||||||
to the kernel
|
to the kernel
|
||||||
device driver. Currently a fbdevhw module is available for linux.
|
device driver. Currently a fbdevhw module is available for linux.
|
||||||
.SH CONFIGURATION DETAILS
|
.SH CONFIGURATION DETAILS
|
||||||
Please refer to XF86Config(__filemansuffix__) for general configuration
|
Please refer to __xconfigfile__(__filemansuffix__) for general configuration
|
||||||
details. This section only covers configuration details specific to
|
details. This section only covers configuration details specific to
|
||||||
this driver.
|
this driver.
|
||||||
.PP
|
.PP
|
||||||
@@ -38,7 +38,8 @@ driver can pick up the currently used video mode from the framebuffer
|
|||||||
driver and will use it if there are no video modes configured.
|
driver and will use it if there are no video modes configured.
|
||||||
.PP
|
.PP
|
||||||
For PCI boards you might have to add a BusID line to the Device
|
For PCI boards you might have to add a BusID line to the Device
|
||||||
section. See above for a sample line. You can use "XFree86 -scanpci"
|
section. See above for a sample line. You can use \*q\__xservername__
|
||||||
|
-scanpci\*q
|
||||||
to figure out the correct values.
|
to figure out the correct values.
|
||||||
.PP
|
.PP
|
||||||
The following driver
|
The following driver
|
||||||
@@ -56,7 +57,7 @@ Enable rotation of the display. The supported values are "CW" (clockwise,
|
|||||||
90 degrees), "UD" (upside down, 180 degrees) and "CCW" (counter clockwise,
|
90 degrees), "UD" (upside down, 180 degrees) and "CCW" (counter clockwise,
|
||||||
270 degrees). Implies use of the shadow framebuffer layer. Default: off.
|
270 degrees). Implies use of the shadow framebuffer layer. Default: off.
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1),
|
__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__),
|
||||||
X(__miscmansuffix__), fbdevhw(__drivermansuffix__)
|
X(__miscmansuffix__), fbdevhw(__drivermansuffix__)
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
Authors include: Gerd Knorr, Michel Dänzer, Geert Uytterhoeven
|
Authors include: Gerd Knorr, Michel Dänzer, Geert Uytterhoeven
|
||||||
|
|||||||
29
src/fbdev.c
29
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>
|
* Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
|
||||||
@@ -29,9 +29,7 @@
|
|||||||
|
|
||||||
#include "fbdevhw.h"
|
#include "fbdevhw.h"
|
||||||
|
|
||||||
#ifdef XvExtension
|
|
||||||
#include "xf86xv.h"
|
#include "xf86xv.h"
|
||||||
#endif
|
|
||||||
|
|
||||||
#define DEBUG 0
|
#define DEBUG 0
|
||||||
|
|
||||||
@@ -188,7 +186,7 @@ static XF86ModuleVersionInfo FBDevVersRec =
|
|||||||
MODULEVENDORSTRING,
|
MODULEVENDORSTRING,
|
||||||
MODINFOSTRING1,
|
MODINFOSTRING1,
|
||||||
MODINFOSTRING2,
|
MODINFOSTRING2,
|
||||||
XF86_VERSION_CURRENT,
|
XORG_VERSION_CURRENT,
|
||||||
FBDEV_MAJOR_VERSION, FBDEV_MINOR_VERSION, 0,
|
FBDEV_MAJOR_VERSION, FBDEV_MINOR_VERSION, 0,
|
||||||
ABI_CLASS_VIDEODRV,
|
ABI_CLASS_VIDEODRV,
|
||||||
ABI_VIDEODRV_VERSION,
|
ABI_VIDEODRV_VERSION,
|
||||||
@@ -379,6 +377,7 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
|
|||||||
int default_depth, fbbpp;
|
int default_depth, fbbpp;
|
||||||
const char *mod = NULL, *s;
|
const char *mod = NULL, *s;
|
||||||
const char **syms = NULL;
|
const char **syms = NULL;
|
||||||
|
int type;
|
||||||
|
|
||||||
if (flags & PROBE_DETECT) return FALSE;
|
if (flags & PROBE_DETECT) return FALSE;
|
||||||
|
|
||||||
@@ -410,7 +409,8 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
|
|||||||
if (!fbdevHWInit(pScrn,NULL,xf86FindOptionValue(fPtr->pEnt->device->options,"fbdev")))
|
if (!fbdevHWInit(pScrn,NULL,xf86FindOptionValue(fPtr->pEnt->device->options,"fbdev")))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
default_depth = fbdevHWGetDepth(pScrn,&fbbpp);
|
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;
|
return FALSE;
|
||||||
xf86PrintDepthBpp(pScrn);
|
xf86PrintDepthBpp(pScrn);
|
||||||
|
|
||||||
@@ -534,7 +534,7 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
|
|||||||
xf86SetDpi(pScrn, 0, 0);
|
xf86SetDpi(pScrn, 0, 0);
|
||||||
|
|
||||||
/* Load bpp-specific modules */
|
/* Load bpp-specific modules */
|
||||||
switch (fbdevHWGetType(pScrn))
|
switch ((type = fbdevHWGetType(pScrn)))
|
||||||
{
|
{
|
||||||
case FBDEVHW_PLANES:
|
case FBDEVHW_PLANES:
|
||||||
mod = "afb";
|
mod = "afb";
|
||||||
@@ -575,7 +575,7 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
default:
|
default:
|
||||||
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
||||||
"Fbdev type (%d) not supported yet.");
|
"Fbdev type (%d) not supported yet.", type);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if (mod && xf86LoadSubModule(pScrn, mod) == NULL) {
|
if (mod && xf86LoadSubModule(pScrn, mod) == NULL) {
|
||||||
@@ -608,6 +608,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|||||||
VisualPtr visual;
|
VisualPtr visual;
|
||||||
int init_picture = 0;
|
int init_picture = 0;
|
||||||
int ret,flags,width,height;
|
int ret,flags,width,height;
|
||||||
|
int type;
|
||||||
|
|
||||||
TRACE_ENTER("FBDevScreenInit");
|
TRACE_ENTER("FBDevScreenInit");
|
||||||
|
|
||||||
@@ -685,7 +686,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|||||||
fPtr->fbstart = fPtr->fbmem + fPtr->fboff;
|
fPtr->fbstart = fPtr->fbmem + fPtr->fboff;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (fbdevHWGetType(pScrn))
|
switch ((type = fbdevHWGetType(pScrn)))
|
||||||
{
|
{
|
||||||
#ifdef USE_AFB
|
#ifdef USE_AFB
|
||||||
case FBDEVHW_PLANES:
|
case FBDEVHW_PLANES:
|
||||||
@@ -752,7 +753,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|||||||
default:
|
default:
|
||||||
xf86DrvMsg(scrnIndex, X_ERROR,
|
xf86DrvMsg(scrnIndex, X_ERROR,
|
||||||
"Internal error: fbdev type (%d) unsupported in"
|
"Internal error: fbdev type (%d) unsupported in"
|
||||||
" FBDevScreenInit\n");
|
" FBDevScreenInit\n", type);
|
||||||
ret = FALSE;
|
ret = FALSE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -792,7 +793,8 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|||||||
FBDevDGAInit(pScrn, pScreen);
|
FBDevDGAInit(pScrn, pScreen);
|
||||||
else {
|
else {
|
||||||
xf86DrvMsg(scrnIndex, X_INFO, "Rotated display, disabling DGA\n");
|
xf86DrvMsg(scrnIndex, X_INFO, "Rotated display, disabling DGA\n");
|
||||||
|
xf86DrvMsg(scrnIndex, X_INFO, "Enabling Driver rotation, disabling RandR\n");
|
||||||
|
xf86DisableRandR();
|
||||||
if (pScrn->bitsPerPixel == 24)
|
if (pScrn->bitsPerPixel == 24)
|
||||||
xf86DrvMsg(scrnIndex, X_WARNING, "Rotation might be broken in 24 bpp\n");
|
xf86DrvMsg(scrnIndex, X_WARNING, "Rotation might be broken in 24 bpp\n");
|
||||||
}
|
}
|
||||||
@@ -805,7 +807,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|||||||
miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
|
miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
|
||||||
|
|
||||||
/* colormap */
|
/* colormap */
|
||||||
switch (fbdevHWGetType(pScrn))
|
switch ((type = fbdevHWGetType(pScrn)))
|
||||||
{
|
{
|
||||||
/* XXX It would be simpler to use miCreateDefColormap() in all cases. */
|
/* XXX It would be simpler to use miCreateDefColormap() in all cases. */
|
||||||
#ifdef USE_AFB
|
#ifdef USE_AFB
|
||||||
@@ -835,7 +837,8 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
default:
|
default:
|
||||||
xf86DrvMsg(scrnIndex, X_ERROR,
|
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;
|
return FALSE;
|
||||||
}
|
}
|
||||||
flags = CMAP_PALETTED_TRUECOLOR;
|
flags = CMAP_PALETTED_TRUECOLOR;
|
||||||
@@ -850,7 +853,6 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|||||||
fPtr->CloseScreen = pScreen->CloseScreen;
|
fPtr->CloseScreen = pScreen->CloseScreen;
|
||||||
pScreen->CloseScreen = FBDevCloseScreen;
|
pScreen->CloseScreen = FBDevCloseScreen;
|
||||||
|
|
||||||
#ifdef XvExtension
|
|
||||||
{
|
{
|
||||||
XF86VideoAdaptorPtr *ptr;
|
XF86VideoAdaptorPtr *ptr;
|
||||||
|
|
||||||
@@ -859,7 +861,6 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|||||||
xf86XVScreenInit(pScreen,ptr,n);
|
xf86XVScreenInit(pScreen,ptr,n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
TRACE_EXIT("FBDevScreenInit");
|
TRACE_EXIT("FBDevScreenInit");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user