Compare commits

..

16 Commits

Author SHA1 Message Date
Michel Dänzer
436a2c094a Bump to 0.3.1 for release. 2006-12-29 12:57:44 +01:00
Michel Dänzer
5b54cbd70e Use package version definitions from XORG_RELEASE_VERSION macros. 2006-12-29 12:57:23 +01:00
Michel Dänzer
b6fd370824 Don't prefer 24bpp for depth 24. 2006-12-29 12:29:31 +01:00
Michel Dänzer
43236f5bfc Fix shadow framebuffer, and by extension rotation.
Based on Adam Jackson's shadow framebuffer fixes in xf86-video-vesa.
2006-12-27 13:08:02 +01:00
Michel Dänzer
643573a51f Add missing argument to xf86DrvMsg(). 2006-12-27 13:08:02 +01:00
Michel Dänzer
b5b1b7d731 Update my e-mail address. 2006-12-27 13:08:01 +01:00
Michel Dänzer
abfc75fbcd Convert .cvsignore to .gitignore.
Add a couple of items while we're at it.
2006-12-27 13:08:01 +01:00
Adam Jackson
a12d1ce572 Make debug output a run-time option instead of compile-time. 2006-11-08 12:22:53 -05:00
Jeremy C. Reed
6ed2e61542 Replace stub file with real license.
"XFree86 code without an explicit copyright is covered by the
following copyright/license" ....

Discussed on xorg list.
2006-10-18 14:56:01 -05:00
Adam Jackson
24177f7218 Bump to 0.3.0 2006-05-19 19:17:46 +00:00
Kevin E Martin
c7b9e1a327 Fix ShadowFB support to work with recent miext/shadow changes from bug
#5460 (Kevin Martin), and apply fix for miext/shadow crasher
    https://bugs.freedesktop.org/show_bug.cgi?id=6940 (Kristian Hoegsberg).
2006-05-18 21:15:32 +00:00
Adam Jackson
fe1fa4c016 Unlibcwrap. Bump server version requirement. Bump to 0.2.0. 2006-04-07 19:02:07 +00:00
gravity
41a763816d Convert manpage to utf-8 2006-01-10 03:22:11 +00:00
Kevin E Martin
332464c43f Update package version for X11R7 release. 2005-12-21 02:30:00 +00:00
Adam Jackson
cf1b33cb4d Stub COPYING files 2005-12-19 16:25:53 +00:00
Kevin E Martin
35c09ae4c4 Update package version number for final X11R7 release candidate. 2005-12-15 00:24:17 +00:00
8 changed files with 166 additions and 74 deletions

View File

@@ -1,5 +1,8 @@
.deps
.libs
Makefile
Makefile.in
*~
*.la
*.lo
aclocal.m4
@@ -12,6 +15,7 @@ config.status
config.sub
configure
depcomp
fbdev.4
install-sh
libtool
ltmain.sh

23
COPYING Normal file
View File

@@ -0,0 +1,23 @@
Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is fur-
nished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of the XFree86 Project shall not
be used in advertising or otherwise to promote the sale, use or other deal-
ings in this Software without prior written authorization from the XFree86
Project.

View File

@@ -1,3 +1,40 @@
2006-05-19 Adam Jackson <ajax@freedesktop.org>
* configure.ac:
* src/fbdev.c:
Bump to 0.3.0
2006-05-18 Kevin E. Martin <kem-at-freedesktop-dot-org>
* src/fbdev.c: (FBDevShadowInit), (FBDevScreenInit),
(FBDevCloseScreen):
Fix ShadowFB support to work with recent miext/shadow changes from
bug #5460 (Kevin Martin), and apply fix for miext/shadow crasher
https://bugs.freedesktop.org/show_bug.cgi?id=6940 (Kristian
Hoegsberg).
2006-04-06 Adam Jackson <ajax@freedesktop.org>
* configure.ac:
* src/fbdev.c:
Unlibcwrap. Bump server version requirement. Bump to 0.2.0.
2006-01-09 David Nusinow <gravity-at-freedesktop-dot-org>
* man/fbdev.man:
Convert manpage to utf-8
Bugzilla #1925 <https://bugs.freedesktop.org/show_bug.cgi?id=1925>
2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org>
* configure.ac:
Update package version for X11R7 release.
2005-12-14 Kevin E. Martin <kem-at-freedesktop-dot-org>
* configure.ac:
Update package version number for final X11R7 release candidate.
2005-12-06 Kevin E. Martin <kem-at-freedesktop-dot-org>
* man/Makefile.am:

View File

@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-fbdev],
0.1.0.3,
0.3.1,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-fbdev)
@@ -53,7 +53,7 @@ XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
XORG_DRIVER_CHECK_EXT(XV, videoproto)
# Checks for pkg-config packages
PKG_CHECK_MODULES(XORG, [xorg-server xproto fontsproto $REQUIRED_MODULES])
PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto $REQUIRED_MODULES])
sdkdir=$(pkg-config --variable=sdkdir xorg-server)
# Checks for libraries.

View File

@@ -1,2 +0,0 @@
Makefile
Makefile.in

View File

@@ -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.
.ds q \N'34'
.TH FBDEV __drivermansuffix__ __vendorversion__
@@ -15,7 +15,7 @@ fbdev \- video driver for framebuffer device
.fi
.SH DESCRIPTION
.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.
All visual types are supported for depth 8, and TrueColor visual is
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
device driver. Currently a fbdevhw module is available for linux.
.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
this driver.
.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.
.PP
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.
.PP
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,
270 degrees). Implies use of the shadow framebuffer layer. Default: off.
.SH "SEE ALSO"
XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1),
__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__),
X(__miscmansuffix__), fbdevhw(__drivermansuffix__)
.SH AUTHORS
Authors include: Gerd Knorr, Michel Dänzer, Geert Uytterhoeven
Authors include: Gerd Knorr, Michel Dänzer, Geert Uytterhoeven

View File

@@ -1,6 +0,0 @@
.deps
.libs
Makefile
Makefile.in
*.la
*.lo

View File

@@ -1,18 +1,17 @@
/* $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>
* Michel Dänzer, <michdaen@iiic.ethz.ch>
* Michel Dänzer, <michel@tungstengraphics.com>
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <string.h>
/* all driver need this */
#include "xf86.h"
#include "xf86_OSproc.h"
#include "xf86_ansic.h"
#include "mipointer.h"
#include "mibstore.h"
@@ -35,17 +34,14 @@
#include "xf86xv.h"
#define DEBUG 0
static Bool debug = 0;
#if DEBUG
# define TRACE_ENTER(str) ErrorF("fbdev: " str " %d\n",pScrn->scrnIndex)
# define TRACE_EXIT(str) ErrorF("fbdev: " str " done\n")
# define TRACE(str) ErrorF("fbdev trace: " str "\n")
#else
# define TRACE_ENTER(str)
# define TRACE_EXIT(str)
# define TRACE(str)
#endif
#define TRACE_ENTER(str) \
do { if (debug) ErrorF("fbdev: " str " %d\n",pScrn->scrnIndex); } while (0)
#define TRACE_EXIT(str) \
do { if (debug) ErrorF("fbdev: " str " done\n"); } while (0)
#define TRACE(str) \
do { if (debug) ErrorF("fbdev trace: " str "\n"); } while (0)
/* -------------------------------------------------------------------- */
/* prototypes */
@@ -67,11 +63,6 @@ static Bool FBDevDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op,
enum { FBDEV_ROTATE_NONE=0, FBDEV_ROTATE_CW=270, FBDEV_ROTATE_UD=180, FBDEV_ROTATE_CCW=90 };
/*static ShadowUpdateProc updateFuncs[] =
{ shadowUpdatePacked, shadowUpdateRotate8_270, shadowUpdateRotate8_180, shadowUpdateRotate8_90,
shadowUpdatePacked, shadowUpdateRotate16_270, shadowUpdateRotate16_180, shadowUpdateRotate16_90,
shadowUpdatePacked, shadowUpdateRotate32_270, shadowUpdateRotate32_180, shadowUpdateRotate32_90 }; */
/* -------------------------------------------------------------------- */
@@ -81,14 +72,12 @@ enum { FBDEV_ROTATE_NONE=0, FBDEV_ROTATE_CW=270, FBDEV_ROTATE_UD=180, FBDEV_ROTA
*/
static int pix24bpp = 0;
#define VERSION 4000
#define FBDEV_VERSION 4000
#define FBDEV_NAME "FBDEV"
#define FBDEV_DRIVER_NAME "fbdev"
#define FBDEV_MAJOR_VERSION 0
#define FBDEV_MINOR_VERSION 1
_X_EXPORT DriverRec FBDEV = {
VERSION,
FBDEV_VERSION,
FBDEV_DRIVER_NAME,
#if 0
"driver for linux framebuffer devices",
@@ -114,13 +103,15 @@ static SymTabRec FBDevChipsets[] = {
typedef enum {
OPTION_SHADOW_FB,
OPTION_ROTATE,
OPTION_FBDEV
OPTION_FBDEV,
OPTION_DEBUG
} FBDevOpts;
static const OptionInfoRec FBDevOptions[] = {
{ OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_ROTATE, "Rotate", OPTV_STRING, {0}, FALSE },
{ OPTION_FBDEV, "fbdev", OPTV_STRING, {0}, FALSE },
{ OPTION_DEBUG, "debug", OPTV_BOOLEAN, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -140,7 +131,6 @@ static const char *fbSymbols[] = {
static const char *shadowSymbols[] = {
"shadowAdd",
"shadowAlloc",
"shadowInit",
"shadowSetup",
"shadowUpdatePacked",
@@ -199,7 +189,7 @@ static XF86ModuleVersionInfo FBDevVersRec =
MODINFOSTRING1,
MODINFOSTRING2,
XORG_VERSION_CURRENT,
FBDEV_MAJOR_VERSION, FBDEV_MINOR_VERSION, 0,
PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL,
ABI_CLASS_VIDEODRV,
ABI_VIDEODRV_VERSION,
NULL,
@@ -235,10 +225,11 @@ typedef struct {
unsigned char* fbmem;
int fboff;
int lineLength;
unsigned char* shadowmem;
int rotate;
Bool shadowFB;
void *shadow;
CloseScreenProcPtr CloseScreen;
CreateScreenResourcesProcPtr CreateScreenResources;
void (*PointerMoved)(int index, int x, int y);
EntityInfoPtr pEnt;
/* DGA info */
@@ -360,7 +351,7 @@ FBDevProbe(DriverPtr drv, int flags)
if (pScrn) {
foundScreen = TRUE;
pScrn->driverVersion = VERSION;
pScrn->driverVersion = FBDEV_VERSION;
pScrn->driverName = FBDEV_DRIVER_NAME;
pScrn->name = FBDEV_NAME;
pScrn->Probe = FBDevProbe;
@@ -422,7 +413,7 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
default_depth = fbdevHWGetDepth(pScrn,&fbbpp);
if (!xf86SetDepthBpp(pScrn, default_depth, default_depth, fbbpp,
Support24bppFb | Support32bppFb | SupportConvert32to24 | PreferConvert32to24))
Support24bppFb | Support32bppFb | SupportConvert32to24 | SupportConvert24to32))
return FALSE;
xf86PrintDepthBpp(pScrn);
@@ -475,6 +466,8 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
/* use shadow framebuffer by default */
fPtr->shadowFB = xf86ReturnOptValBool(fPtr->Options, OPTION_SHADOW_FB, TRUE);
debug = xf86ReturnOptValBool(fPtr->Options, OPTION_DEBUG, FALSE);
/* rotation */
fPtr->rotate = FBDEV_ROTATE_NONE;
if ((s = xf86GetOptValString(fPtr->Options, OPTION_ROTATE)))
@@ -615,6 +608,50 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
return TRUE;
}
static Bool
FBDevCreateScreenResources(ScreenPtr pScreen)
{
PixmapPtr pPixmap;
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
FBDevPtr fPtr = FBDEVPTR(pScrn);
Bool ret;
pScreen->CreateScreenResources = fPtr->CreateScreenResources;
ret = pScreen->CreateScreenResources(pScreen);
pScreen->CreateScreenResources = FBDevCreateScreenResources;
if (!ret)
return FALSE;
pPixmap = pScreen->GetScreenPixmap(pScreen);
if (!shadowAdd(pScreen, pPixmap, fPtr->rotate ?
shadowUpdateRotatePackedWeak() : shadowUpdatePackedWeak(),
FBDevWindowLinear, fPtr->rotate, NULL)) {
return FALSE;
}
return TRUE;
}
static Bool
FBDevShadowInit(ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
FBDevPtr fPtr = FBDEVPTR(pScrn);
if (!shadowSetup(pScreen)) {
return FALSE;
}
fPtr->CreateScreenResources = pScreen->CreateScreenResources;
pScreen->CreateScreenResources = FBDevCreateScreenResources;
return TRUE;
}
static Bool
FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
{
@@ -622,7 +659,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
FBDevPtr fPtr = FBDEVPTR(pScrn);
VisualPtr visual;
int init_picture = 0;
int ret,flags,width,height;
int ret, flags;
int type;
TRACE_ENTER("FBDevScreenInit");
@@ -679,11 +716,9 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
if(fPtr->rotate==FBDEV_ROTATE_CW || fPtr->rotate==FBDEV_ROTATE_CCW)
{
height = pScrn->virtualX;
width = pScrn->displayWidth = pScrn->virtualY;
} else {
height = pScrn->virtualY;
width = pScrn->virtualX;
int tmp = pScrn->virtualX;
pScrn->virtualX = pScrn->displayWidth = pScrn->virtualY;
pScrn->virtualY = tmp;
}
if(fPtr->rotate && !fPtr->PointerMoved) {
@@ -691,19 +726,17 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
pScrn->PointerMoved = FBDevPointerMoved;
}
/* shadowfb */
if (fPtr->shadowFB) {
if ((fPtr->shadowmem = shadowAlloc(width, height,
pScrn->bitsPerPixel)) == NULL) {
xf86DrvMsg(scrnIndex,X_ERROR,
"allocation of shadow framebuffer memory failed\n");
return FALSE;
}
fPtr->fbstart = fPtr->fbmem + fPtr->fboff;
fPtr->fbstart = fPtr->shadowmem;
} else {
fPtr->shadowmem = NULL;
fPtr->fbstart = fPtr->fbmem + fPtr->fboff;
if (fPtr->shadowFB) {
fPtr->shadow = xcalloc(1, pScrn->virtualX * pScrn->virtualY *
pScrn->bitsPerPixel);
if (!fPtr->shadow) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Failed to allocate shadow framebuffer\n");
return FALSE;
}
}
switch ((type = fbdevHWGetType(pScrn)))
@@ -736,8 +769,11 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
case 16:
case 24:
case 32:
ret = fbScreenInit(pScreen, fPtr->fbstart, width, height,
pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth, pScrn->bitsPerPixel);
ret = fbScreenInit(pScreen, fPtr->shadowFB ? fPtr->shadow
: fPtr->fbstart, pScrn->virtualX,
pScrn->virtualY, pScrn->xDpi,
pScrn->yDpi, pScrn->displayWidth,
pScrn->bitsPerPixel);
init_picture = 1;
break;
default:
@@ -775,7 +811,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
default:
xf86DrvMsg(scrnIndex, X_ERROR,
"internal error: unrecognised hardware type (%d) "
"encountered in FBDevScreenInit()\n");
"encountered in FBDevScreenInit()\n", type);
ret = FALSE;
break;
}
@@ -802,11 +838,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"Render extension initialisation failed\n");
if (fPtr->shadowFB &&
(!shadowSetup(pScreen) || !shadowAdd(pScreen, NULL,
fPtr->rotate ? shadowUpdateRotatePackedWeak()
: shadowUpdatePackedWeak(),
FBDevWindowLinear, fPtr->rotate, NULL)) ) {
if (fPtr->shadowFB && !FBDevShadowInit(pScreen)) {
xf86DrvMsg(scrnIndex, X_ERROR,
"shadow framebuffer initialization failed\n");
return FALSE;
@@ -909,8 +941,10 @@ FBDevCloseScreen(int scrnIndex, ScreenPtr pScreen)
fbdevHWRestore(pScrn);
fbdevHWUnmapVidmem(pScrn);
if (fPtr->shadowmem)
xfree(fPtr->shadowmem);
if (fPtr->shadow) {
xfree(fPtr->shadow);
fPtr->shadow = NULL;
}
if (fPtr->pDGAMode) {
xfree(fPtr->pDGAMode);
fPtr->pDGAMode = NULL;
@@ -918,6 +952,7 @@ FBDevCloseScreen(int scrnIndex, ScreenPtr pScreen)
}
pScrn->vtSema = FALSE;
pScreen->CreateScreenResources = fPtr->CreateScreenResources;
pScreen->CloseScreen = fPtr->CloseScreen;
return (*pScreen->CloseScreen)(scrnIndex, pScreen);
}
@@ -943,7 +978,7 @@ FBDevWindowLinear(ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode,
else
*size = fPtr->lineLength = fbdevHWGetLineLength(pScrn);
return ((CARD8 *)fPtr->fbmem + fPtr->fboff + row * fPtr->lineLength + offset);
return ((CARD8 *)fPtr->fbstart + row * fPtr->lineLength + offset);
}
static void