Compare commits

..

35 Commits

Author SHA1 Message Date
Kevin E Martin
2e4f3e6a0a Change *man_SOURCES ==> *man_PRE to fix autotools warnings. 2005-12-06 22:48:34 +00:00
Kevin E Martin
8521127ff1 Update package version number for X11R7 RC3 release. 2005-12-03 05:49:33 +00:00
Kevin E Martin
7a37e5db75 Remove extraneous AC_MSG_RESULT. 2005-12-02 02:16:08 +00:00
Adam Jackson
4635b198fb Only build dlloader modules by default. 2005-11-29 23:29:58 +00:00
Alan Coopersmith
91b40b9c63 Change *mandir targets to use new *_MAN_DIR variables set by xorg-macros.m4
update to fix bug #5167 (Linux prefers *.1x man pages in man1 subdir)
2005-11-28 22:04:09 +00:00
Eric Anholt
ff70627427 Add .cvsignores for drivers. 2005-11-21 10:49:12 +00:00
Kevin E Martin
d57ddc84c3 Update package version number for X11R7 RC2 release. 2005-11-09 21:15:15 +00:00
Kevin E Martin
493a1b8b11 Update pkgcheck depedencies to work with separate build roots. 2005-11-01 15:08:52 +00:00
Kevin E Martin
3f11faf88c Update package version number for RC1 release. 2005-10-19 02:48:02 +00:00
Alan Coopersmith
e87f2ee9b1 Use @DRIVER_MAN_SUFFIX@ instead of $(DRIVER_MAN_SUFFIX) in macro
substitutions to work better with BSD make
2005-10-18 00:01:53 +00:00
Adam Jackson
5f77732d9a More 1.7 braindamage: define EXTRA_DIST in terms of @DRIVER_NAME@ instead
of indirectly
2005-10-17 22:57:33 +00:00
Alan Coopersmith
52518e4511 Use sed & cpp to substitute variables in driver man pages 2005-10-17 00:09:02 +00:00
Daniel Stone
a2a75f4dba Numerous spelling and grammar fixes. (Branden Robinson, Debian #099n) 2005-08-26 06:32:45 +00:00
Daniel Stone
28171378a1 Update autogen.sh to one that does objdir != srcdir. 2005-08-18 09:03:46 +00:00
Kevin E Martin
f060ccc1f1 Various changes preparing packages for RC0:
- Verify and update package version numbers as needed
- Implement versioning scheme
- Change bug address to point to bugzilla bug entry form
- Disable loadable i18n in libX11 by default (use --enable-loadable-i18n to
    reenable it)
- Fix makedepend to use pkgconfig and pass distcheck
- Update build script to build macros first
- Update modular Xorg version
2005-07-29 21:22:43 +00:00
Søren Sandmann Pedersen
d0517a40a9 Build system for fbdev driver 2005-07-25 23:50:23 +00:00
Adam Jackson
44d4790006 Prep for modular builds by adding guarded #include "config.h" everywhere. 2005-07-11 02:29:47 +00:00
Adam Jackson
4d18c5309c Bug #3626: _X_EXPORT tags for video and input drivers. 2005-06-25 21:16:54 +00:00
Egbert Eich
82ab7895da Modifying X.Org Xserver DDX to allow to run X with ordinary user
permissions when no access to HW registers is required. For API changes
    which mostly involve the modifications to make the RRFunc (introduced
    with 6.8) more flexible please check Bugzilla #2407. NOTE: This patch
    applies changes to OS specific files for other OSes which I cannot
    test.
2005-01-28 16:12:59 +00:00
Markus Kuhn
077e3dbcf4 Encoding of numerous files changed to UTF-8 2004-12-04 00:43:05 +00:00
Adam Jackson
2327cdd208 Bug #1087: Make sure all the *Weak symbols are documented in the import
list, so the loader knows not to complain about unresolved symbols when
    an optional module isn't loaded. This typically manifests as warnings
    about fbdevHW symbols when the user isn't using the framebuffer
    console.
2004-08-16 09:13:13 +00:00
Adam Jackson
bd1e31bdb5 Bug #962: Remove LoaderSymbol calls introduced by the dlloader work so
DoLoadableServer NO builds work again.
2004-08-03 02:44:20 +00:00
Adam Jackson
1d3246ca0d *really* remove the last call to FillInScreenInfo. i clearly haven't had my
coffee yet this morning...
2004-08-01 18:04:07 +00:00
Adam Jackson
ce86e2a272 Kill off the last fbdevHWFillInScreenInfo user. Noticed by juergbi on IRC. 2004-08-01 16:28:57 +00:00
Adam Jackson
4c1492ac6d Change several LoaderSymbol calls introduced by the bug #400 patch to
*Weak() resolver functions.
2004-07-31 01:21:18 +00:00
Adam Jackson
64ef1f4af1 Bug #400 (partial): Driver fixes for the dlloader. When using dlloader, all
framebuffer formats except cfb and the overlay modes should work, and
    r128 and radeon need to be loaded from the ati driver (both issues to
    be fixed soon). Tested on i740, s3virge, mach64, tdfx, vesa, and vga
    drivers. elfloader users shouldn't be affected.
2004-07-30 20:30:52 +00:00
Eric Anholt
db6514cea0 DRI XFree86-4_3_99_12-merge import 2004-06-16 09:23:04 +00:00
Egbert Eich
1e80fe1bf9 Merging XORG-CURRENT into trunk 2004-04-23 19:31:36 +00:00
Egbert Eich
5d8a0a2e47 Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004 2004-03-14 08:33:20 +00:00
Egbert Eich
69d61895f3 Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004 2004-03-03 12:12:18 +00:00
Egbert Eich
806863c5f6 readding XFree86's cvs IDs 2004-02-26 13:35:52 +00:00
Egbert Eich
595a614cd9 Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004 2004-02-26 09:23:18 +00:00
Egbert Eich
62bec818a1 Importing vendor version xf86-012804-2330 on Thu Jan 29 00:06:33 PST 2004 2004-01-29 08:08:35 +00:00
Kaleb Keithley
48e31aaed2 XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks 2003-11-25 19:28:36 +00:00
Kaleb Keithley
3a00d91359 XFree86 4.3.0.1 2003-11-14 16:48:55 +00:00
10 changed files with 378 additions and 71 deletions

19
.cvsignore Normal file
View File

@@ -0,0 +1,19 @@
Makefile
Makefile.in
*.la
*.lo
aclocal.m4
autom4te.cache
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
depcomp
install-sh
libtool
ltmain.sh
missing
stamp-h1

29
ChangeLog Normal file
View File

@@ -0,0 +1,29 @@
2005-12-06 Kevin E. Martin <kem-at-freedesktop-dot-org>
* man/Makefile.am:
Change *man_SOURCES ==> *man_PRE to fix autotools warnings.
2005-12-03 Kevin E. Martin <kem-at-freedesktop-dot-org>
* configure.ac:
Update package version number for X11R7 RC3 release.
2005-12-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
* configure.ac:
Remove extraneous AC_MSG_RESULT.
2005-11-29 Adam Jackson <ajax@freedesktop.org>
* configure.ac:
Only build dlloader modules by default.
2005-11-09 Kevin E. Martin <kem-at-freedesktop-dot-org>
* configure.ac:
Update package version number for X11R7 RC2 release.
2005-11-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
* configure.ac:
Update pkgcheck dependencies to work with separate build roots.

22
Makefile.am Normal file
View File

@@ -0,0 +1,22 @@
# Copyright 2005 Adam Jackson.
#
# 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
# on the rights to use, copy, modify, merge, publish, distribute, sub
# license, and/or sell copies of the Software, and to permit persons to whom
# the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) 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,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src man

12
autogen.sh Executable file
View File

@@ -0,0 +1,12 @@
#! /bin/sh
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
$srcdir/configure --enable-maintainer-mode "$@"

77
configure.ac Normal file
View File

@@ -0,0 +1,77 @@
# Copyright 2005 Adam Jackson.
#
# 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
# on the rights to use, copy, modify, merge, publish, distribute, sub
# license, and/or sell copies of the Software, and to permit persons to whom
# the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) 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,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Process this file with autoconf to produce a configure script
AC_PREREQ(2.57)
AC_INIT([xf86-video-fbdev],
0.1.0.3,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-fbdev)
AC_CONFIG_SRCDIR([Makefile.am])
AM_CONFIG_HEADER([config.h])
AC_CONFIG_AUX_DIR(.)
AM_INIT_AUTOMAKE([dist-bzip2])
AM_MAINTAINER_MODE
# Checks for programs.
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
AC_PROG_CC
AH_TOP([#include "xorg-server.h"])
AC_ARG_WITH(xorg-module-dir,
AC_HELP_STRING([--with-xorg-module-dir=DIR],
[Default xorg module directory [[default=$libdir/xorg/modules]]]),
[moduledir="$withval"],
[moduledir="$libdir/xorg/modules"])
# Checks for extensions
XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
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])
sdkdir=$(pkg-config --variable=sdkdir xorg-server)
# Checks for libraries.
# Checks for header files.
AC_HEADER_STDC
AC_SUBST([XORG_CFLAGS])
AC_SUBST([moduledir])
DRIVER_NAME=fbdev
AC_SUBST([DRIVER_NAME])
XORG_MANPAGE_SECTIONS
XORG_RELEASE_VERSION
AC_OUTPUT([
Makefile
src/Makefile
man/Makefile
])

2
man/.cvsignore Normal file
View File

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

59
man/Makefile.am Normal file
View File

@@ -0,0 +1,59 @@
# $Id$
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation.
#
# 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, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the copyright holders shall
# not be used in advertising or otherwise to promote the sale, use or
# other dealings in this Software without prior written authorization
# from the copyright holders.
#
drivermandir = $(DRIVER_MAN_DIR)
driverman_PRE = @DRIVER_NAME@.man
driverman_DATA = $(driverman_PRE:man=@DRIVER_MAN_SUFFIX@)
EXTRA_DIST = @DRIVER_NAME@.man
CLEANFILES = $(driverman_DATA)
SED = sed
# Strings to replace in man pages
XORGRELSTRING = @PACKAGE_STRING@
XORGMANNAME = X Version 11
MAN_SUBSTS = \
-e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
-e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
-e 's|__xservername__|Xorg|g' \
-e 's|__xconfigfile__|xorg.conf|g' \
-e 's|__projectroot__|$(prefix)|g' \
-e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \
-e 's|__drivermansuffix__|$(DRIVER_MAN_SUFFIX)|g' \
-e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \
-e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
-e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
.man.$(DRIVER_MAN_SUFFIX):
sed $(MAN_SUBSTS) < $< > $@

6
src/.cvsignore Normal file
View File

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

32
src/Makefile.am Normal file
View File

@@ -0,0 +1,32 @@
# Copyright 2005 Adam Jackson.
#
# 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
# on the rights to use, copy, modify, merge, publish, distribute, sub
# license, and/or sell copies of the Software, and to permit persons to whom
# the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) 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,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# this is obnoxious:
# -module lets us name the module exactly how we want
# -avoid-version prevents gratuitous .0.0.0 version numbers on the end
# _ladir passes a dummy rpath to libtool so the thing will actually link
# TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
AM_CFLAGS = @XORG_CFLAGS@
fbdev_drv_la_LTLIBRARIES = fbdev_drv.la
fbdev_drv_la_LDFLAGS = -module -avoid-version
fbdev_drv_ladir = @moduledir@/drivers
fbdev_drv_la_SOURCES = \
fbdev.c

View File

@@ -1,10 +1,14 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c,v 1.45 2004/01/11 18:42:59 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>
* Michel Dänzer, <michdaen@iiic.ethz.ch>
* Michel Dänzer, <michdaen@iiic.ethz.ch>
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/* all driver need this */
#include "xf86.h"
#include "xf86_OSproc.h"
@@ -57,6 +61,8 @@ 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 };
@@ -81,7 +87,7 @@ static int pix24bpp = 0;
#define FBDEV_MAJOR_VERSION 0
#define FBDEV_MINOR_VERSION 1
DriverRec FBDEV = {
_X_EXPORT DriverRec FBDEV = {
VERSION,
FBDEV_DRIVER_NAME,
#if 0
@@ -91,7 +97,8 @@ DriverRec FBDEV = {
FBDevProbe,
FBDevAvailableOptions,
NULL,
0
0,
FBDevDriverFunc
};
/* Supported "chipsets" */
@@ -137,7 +144,9 @@ static const char *shadowSymbols[] = {
"shadowInit",
"shadowSetup",
"shadowUpdatePacked",
"shadowUpdatePackedWeak",
"shadowUpdateRotatePacked",
"shadowUpdateRotatePackedWeak",
NULL
};
@@ -158,20 +167,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
};
@@ -186,7 +198,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,
@@ -194,7 +206,7 @@ static XF86ModuleVersionInfo FBDevVersRec =
{0,0,0,0}
};
XF86ModuleData fbdevModuleData = { &FBDevVersRec, FBDevSetup, NULL };
_X_EXPORT XF86ModuleData fbdevModuleData = { &FBDevVersRec, FBDevSetup, NULL };
pointer
FBDevSetup(pointer module, pointer opts, int *errmaj, int *errmin)
@@ -203,7 +215,7 @@ FBDevSetup(pointer module, pointer opts, int *errmaj, int *errmin)
if (!setupDone) {
setupDone = TRUE;
xf86AddDriver(&FBDEV, module, 0);
xf86AddDriver(&FBDEV, module, HaveDriverFuncs);
LoaderRefSymLists(afbSymbols, fbSymbols,
shadowSymbols, fbdevHWSymbols, NULL);
return (pointer)1;
@@ -354,11 +366,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");
@@ -431,7 +443,7 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
/* We don't currently support DirectColor at > 8bpp */
if (pScrn->depth > 8 && pScrn->defaultVisual != TrueColor) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Given default visual"
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "requested default visual"
" (%s) is not supported at depth %d\n",
xf86GetVisualName(pScrn->defaultVisual), pScrn->depth);
return FALSE;
@@ -450,8 +462,8 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
pScrn->chipset = "fbdev";
pScrn->videoRam = fbdevHWGetVidmem(pScrn);
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Hardware: %s (vidmem: %dk)\n",
fbdevHWGetName(pScrn),pScrn->videoRam/1024);
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "hardware: %s (video memory:"
" %dkB)\n", fbdevHWGetName(pScrn), pScrn->videoRam/1024);
/* handle options */
xf86CollectOptions(pScrn, NULL);
@@ -472,37 +484,37 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
fPtr->shadowFB = TRUE;
fPtr->rotate = FBDEV_ROTATE_CW;
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"Rotating screen clockwise\n");
"rotating screen clockwise\n");
}
else if(!xf86NameCmp(s, "CCW"))
{
fPtr->shadowFB = TRUE;
fPtr->rotate = FBDEV_ROTATE_CCW;
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"Rotating screen counter clockwise\n");
"rotating screen counter-clockwise\n");
}
else if(!xf86NameCmp(s, "UD"))
{
fPtr->shadowFB = TRUE;
fPtr->rotate = FBDEV_ROTATE_UD;
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"Rotating screen upside down\n");
"rotating screen upside-down\n");
}
else
{
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"\"%s\" is not a valid value for Option \"Rotate\"\n", s);
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Valid options are \"CW\", \"CCW\" or \"UD\"\n");
"valid options are \"CW\", \"CCW\" and \"UD\"\n");
}
}
/* select video modes */
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Checking Modes against framebuffer device...\n");
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "checking modes against framebuffer device...\n");
fbdevHWSetVideoModes(pScrn);
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Checking Modes against monitor...\n");
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "checking modes against monitor...\n");
{
DisplayModePtr mode, first = mode = pScrn->modes;
@@ -552,30 +564,32 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
break;
default:
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Unsupported bpp: %d", pScrn->bitsPerPixel);
"unsupported number of bits per pixel: %d",
pScrn->bitsPerPixel);
return FALSE;
}
break;
case FBDEVHW_INTERLEAVED_PLANES:
/* Not supported yet, don't know what to do with this */
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Interleaved Planes are not supported yet by drivers/fbdev.");
"interleaved planes are not yet supported by the "
"fbdev driver\n");
return FALSE;
case FBDEVHW_TEXT:
/* This should never happen ...
* we should check for this much much earlier ... */
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Text mode is not supprted by drivers/fbdev.\n"
"Why do you want to run the X in TEXT mode anyway ?");
"text mode is not supported by the fbdev driver\n");
return FALSE;
case FBDEVHW_VGA_PLANES:
/* Not supported yet */
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"EGA/VGA Planes are not supprted yet by drivers/fbdev.");
"EGA/VGA planes are not yet supported by the fbdev "
"driver\n");
return FALSE;
default:
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Fbdev type (%d) not supported yet.", type);
"unrecognised fbdev hardware type (%d)\n", type);
return FALSE;
}
if (mod && xf86LoadSubModule(pScrn, mod) == NULL) {
@@ -588,7 +602,8 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
/* Load shadow if needed */
if (fPtr->shadowFB) {
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Using \"Shadow Framebuffer\"\n");
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "using shadow"
" framebuffer\n");
if (!xf86LoadSubModule(pScrn, "shadow")) {
FBDevFreeRec(pScrn);
return FALSE;
@@ -623,7 +638,8 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
#endif
if (NULL == (fPtr->fbmem = fbdevHWMapVidmem(pScrn))) {
xf86DrvMsg(scrnIndex,X_ERROR,"Map vid mem failed\n");
xf86DrvMsg(scrnIndex,X_ERROR,"mapping of video memory"
" failed\n");
return FALSE;
}
fPtr->fboff = fbdevHWLinearOffset(pScrn);
@@ -631,7 +647,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
fbdevHWSave(pScrn);
if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) {
xf86DrvMsg(scrnIndex,X_ERROR,"Mode init failed\n");
xf86DrvMsg(scrnIndex,X_ERROR,"mode initialization failed\n");
return FALSE;
}
fbdevHWSaveScreen(pScreen, SCREEN_SAVER_ON);
@@ -641,19 +657,23 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
miClearVisualTypes();
if (pScrn->bitsPerPixel > 8) {
if (!miSetVisualTypes(pScrn->depth, TrueColorMask, pScrn->rgbBits, TrueColor)) {
xf86DrvMsg(scrnIndex,X_ERROR,"Set visual types failed\n");
xf86DrvMsg(scrnIndex,X_ERROR,"visual type setup failed"
" for %d bits per pixel [1]\n",
pScrn->bitsPerPixel);
return FALSE;
}
} else {
if (!miSetVisualTypes(pScrn->depth,
miGetDefaultVisualMask(pScrn->depth),
pScrn->rgbBits, pScrn->defaultVisual)) {
xf86DrvMsg(scrnIndex,X_ERROR,"Set visual types failed\n");
xf86DrvMsg(scrnIndex,X_ERROR,"visual type setup failed"
" for %d bits per pixel [2]\n",
pScrn->bitsPerPixel);
return FALSE;
}
}
if (!miSetPixmapDepths()) {
xf86DrvMsg(scrnIndex,X_ERROR,"Set pixmap depths failed\n");
xf86DrvMsg(scrnIndex,X_ERROR,"pixmap depth setup failed\n");
return FALSE;
}
@@ -676,7 +696,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
if ((fPtr->shadowmem = shadowAlloc(width, height,
pScrn->bitsPerPixel)) == NULL) {
xf86DrvMsg(scrnIndex,X_ERROR,
"Allocation of shadow memory failed\n");
"allocation of shadow framebuffer memory failed\n");
return FALSE;
}
@@ -693,14 +713,15 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
if (fPtr->rotate)
{
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: Rotate not supported for afb\n");
"internal error: rotate not supported for afb\n");
ret = FALSE;
break;
}
if (fPtr->shadowFB)
{
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: Shadow framebuffer not supported for afb\n");
"internal error: shadow framebuffer not supported"
" for afb\n");
ret = FALSE;
break;
}
@@ -721,8 +742,9 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
break;
default:
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: invalid bpp (%d) in FBDevScreenInit\n",
pScrn->bitsPerPixel);
"internal error: invalid number of bits per"
" pixel (%d) encountered in"
" FBDevScreenInit()\n", pScrn->bitsPerPixel);
ret = FALSE;
break;
}
@@ -731,29 +753,29 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* This should never happen ...
* we should check for this much much earlier ... */
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: Text mode is not supprted by drivers/fbdev.\n"
"Comment: Why do you want to run the X in TEXT mode anyway ?");
"internal error: interleaved planes are not yet "
"supported by the fbdev driver\n");
ret = FALSE;
break;
case FBDEVHW_TEXT:
/* This should never happen ...
* we should check for this much much earlier ... */
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: Text mode is not supprted by drivers/fbdev.\n"
"Comment: Why do you want to run the X in TEXT mode anyway ?");
"internal error: text mode is not supported by the "
"fbdev driver\n");
ret = FALSE;
break;
case FBDEVHW_VGA_PLANES:
/* Not supported yet */
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: EGA/VGA Planes are not supprted"
" yet by drivers/fbdev.");
"internal error: EGA/VGA Planes are not yet "
"supported by the fbdev driver\n");
ret = FALSE;
break;
default:
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: fbdev type (%d) unsupported in"
" FBDevScreenInit\n", type);
"internal error: unrecognised hardware type (%d) "
"encountered in FBDevScreenInit()\n");
ret = FALSE;
break;
}
@@ -778,25 +800,28 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* must be after RGB ordering fixed */
if (init_picture && !fbPictureInit(pScreen, NULL, 0))
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"RENDER extension initialisation failed.\n");
"Render extension initialisation failed\n");
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");
"shadow framebuffer initialization failed\n");
return FALSE;
}
if (!fPtr->rotate)
FBDevDGAInit(pScrn, pScreen);
else {
xf86DrvMsg(scrnIndex, X_INFO, "Rotated display, disabling DGA\n");
xf86DrvMsg(scrnIndex, X_INFO, "Enabling Driver rotation, disabling RandR\n");
xf86DrvMsg(scrnIndex, X_INFO, "display rotated; disabling DGA\n");
xf86DrvMsg(scrnIndex, X_INFO, "using driver rotation; disabling "
"XRandR\n");
xf86DisableRandR();
if (pScrn->bitsPerPixel == 24)
xf86DrvMsg(scrnIndex, X_WARNING, "Rotation might be broken in 24 bpp\n");
xf86DrvMsg(scrnIndex, X_WARNING, "rotation might be broken at 24 "
"bits per pixel\n");
}
xf86SetBlackWhitePixels(pScreen);
@@ -812,42 +837,51 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* XXX It would be simpler to use miCreateDefColormap() in all cases. */
#ifdef USE_AFB
case FBDEVHW_PLANES:
if (!afbCreateDefColormap(pScreen))
if (!afbCreateDefColormap(pScreen)) {
xf86DrvMsg(scrnIndex, X_ERROR,
"internal error: afbCreateDefColormap "
"failed in FBDevScreenInit()\n");
return FALSE;
}
break;
#endif
case FBDEVHW_PACKED_PIXELS:
if (!miCreateDefColormap(pScreen))
if (!miCreateDefColormap(pScreen)) {
xf86DrvMsg(scrnIndex, X_ERROR,
"internal error: miCreateDefColormap failed "
"in FBDevScreenInit()\n");
return FALSE;
}
break;
case FBDEVHW_INTERLEAVED_PLANES:
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: invalid fbdev type (interleaved planes)"
" in FBDevScreenInit\n");
"internal error: interleaved planes are not yet "
"supported by the fbdev driver\n");
return FALSE;
case FBDEVHW_TEXT:
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: invalid fbdev type (text)"
" in FBDevScreenInit\n");
"internal error: text mode is not supported by "
"the fbdev driver\n");
return FALSE;
case FBDEVHW_VGA_PLANES:
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: invalid fbdev type (ega/vga planes)"
" in FBDevScreenInit\n");
"internal error: EGA/VGA planes are not yet "
"supported by the fbdev driver\n");
return FALSE;
default:
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: invalid fbdev type (%d) in FBDevScreenInit\n",
type);
"internal error: unrecognised fbdev hardware type "
"(%d) encountered 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;
@@ -1093,3 +1127,18 @@ 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;
}
}