Update to xf86-video-geode 2.11.13

This commit is contained in:
matthieu 2012-02-20 21:43:31 +00:00
parent e46d8ddd0d
commit 40a6c4a96f
21 changed files with 29188 additions and 23615 deletions

View File

@ -2,6 +2,7 @@ Copyright (C) 2003-2008 Advanced Micro Devices, Inc.
Copyright (C) 2007 George Sapountzis
Copyright (C) 2002 David Dawes
Copyright (C) 2001 VA Linux Systems Inc., Fremont, California.
Copyright (C) 2002 Keith Packard, member of The XFree86 Project, Inc.
LICENSE:

View File

@ -1,3 +1,544 @@
commit e420d7956afceeb41f20179cedc28d46aebdb29f
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Mon Dec 26 22:13:22 2011 +0200
Geode 2.11.13
This release mainly features a complete overhaul of the building scripts plus
a cleanup of deprecated macros. The key benefit is that this Geode driver can
finally build on FreeBSD and on other platforms not offering V4L2 support and
that it can also build on a 64-bit host using its 32-bit personality.
Support for the Video Input Port (VIP) feature of the Geode LX found in 'ztv'
is now documented and the source code saw the removal of deprecated Linux 2.4
backward compatibility code. Compiling is skipped on platforms without V4L2.
Configuration for laptops featuring WXGA resolutions is finally documented.
Setting the GEODE_TRACE_FALL macro now enables composite operation tracing on
this driver. This can be used to profile the performance during development.
Fixes to keep this driver compilable on recent X servers are also included.
VALIDATION PLATFORMS
* Debian/stable (X server 1.7.7) on Artec DBE61 and Hercules EC-800.
* Ubuntu/Precise (X server 1.10.4) on FIC ION603A.
Signed-off-by: Martin-Éric Racine <martin-eric.racine@iki.fi>
commit 7e7fe26882dada5878d5450e64c043ba7b0737fd
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sun Dec 25 21:43:40 2011 +0200
Fix lx_display.c:360:9: warning: ISO C90 forbids mixed declarations and code
commit 515d232162c8ea2c5ecabf12b88b0bf4eb5102e7
Author: Adam Jackson <ajax@redhat.com>
Date: Mon Dec 19 17:47:38 2011 -0500
Fix for new vgaHW ABI
Signed-off-by: Adam Jackson <ajax@redhat.com>
commit 78052e0d3e28c7e6e08666d9ed2bcc64f5e93540
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Nov 29 12:02:32 2011 -0500
DCONDPMSSet: handle error return code on "write" to avoid a warning
The author of the write() system call has deemed important for the caller
to check the return code. If not, the compiler issues a warning.
The patch handles a bad return code from write() just in the same way
as the code does for the open() calls.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit db7155395e794eb276f853c7642f62727e29a0b9
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Tue Nov 29 23:49:06 2011 +0200
README: added example of ZTV loading to EC800 xorg.conf sample.
commit d072870e20c360fb0ec1baefc6abcb11a6d4687c
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Nov 29 14:20:17 2011 -0500
README: do not suggest compiling with xserver older than 1.3
This was done at one point in time by some drivers (3 that I remember)
but the workarounds all have been removed since. The tarballs created
by those drivers picked-up whatever code happened to be on the
developer disk and was not in git. The code was not maintained
and in fact did not work thereafter.
http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/configure.ac
?id=84f69081abaeef8b05cafb64d3102eb2abdf9a8e
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 2890f6c431a6de0726c6c53a800074f95d71294e
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Thu Nov 24 21:47:35 2011 +0200
README: added info about how to calculate arbitrary laptop modelines.
commit e520739e9ce18a48df7d873de16022aec21d7d3c
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Mon Nov 21 22:47:23 2011 +0200
README: whitespace cleanup.
commit edb6a6380e0db6be06fe89e7d73dedbca945550f
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Mon Nov 21 22:42:41 2011 +0200
README: harmonize x.org versus freedesktop.org as much as possible.
commit 308430e8898e29ae111bf4f552f4d7554b96fda2
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Mon Nov 21 22:34:26 2011 +0200
README: add info about the Geode mailing list and Bugzilla component.
commit 1108f9cfac5b78fc9660174aa4df592ecd87d287
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Mon Nov 14 14:52:21 2011 -0500
Remove unrequired large file descriptor partial support
The LFS "transitional extension" API is deprecated and is not available on FreeBSD.
Large file support (64 bit) is not required on the geode 32 bit only architecture.
There are some hints that the LFS transional extension API were not used
correclty. The variable holding the value is held in an unsigned long rather
than in off_t. The msr open call did not use the O_LARGEFILE flag and did not
check for EOVERFLOW.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 0daee9eb57c826da120edf35c50e8947a43f19b2
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Mon Nov 21 10:54:10 2011 +0200
README: a little bit of proofreading wouldn't hurt now, would it?
commit d1c40f2d5baa2d964499412c7f1c443c9ee63626
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Mon Nov 21 10:24:29 2011 +0200
README: added a sample xorg.conf for 1024x600 and 800x480 laptops.
commit 8fc372b4e239005dda60f45737468f1e82571457
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Sun Nov 20 15:58:03 2011 -0500
config: fix Autoconf warnings and improve comments
These changes have been done in all other video drivers.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 725d6ddc0b0888af9b033ccb6ce88c9800a791f9
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Sun Nov 20 15:35:29 2011 -0500
config: The compiler version to use is now set in XORG_DEFAULT_OPTIONS
In this case "now" means a couple of years ago. All of Xorg is compiled
with AC_PROG_CC_C99. It shows up in config.log as CC='gcc -std=gnu99'.
The removed statement was resetting the compiler to C89 as it comes
after XORG_DEFAULT_OPTIONS.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 40aae069bb15cda123f5e08b757ca93166e62db8
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Sun Nov 20 15:24:00 2011 -0500
config: remove a few dead/obsolete lines of code
HAVE_XEXTPROTO_71 not used in Makefile.
AC_HEADER_STD is very obsolete.
AC_SUBST([XORG_CFLAGS]) is redundant.
DRIVER_NAME is correctly no longer used.
AC_SUBST([moduledir]) has just been moved up.
Any erroneously removed statements above would result
in a configuration failure.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit fa0e88bfe00baa648ab3b1184b56f7dc5536aa21
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Sat Nov 19 15:33:33 2011 -0500
Move back ztv with geode driver
Now we have a clean separation between CPP flags and C Flags
Only the C Flags apply to both geode and ztv driver, however
it is not worth doing a per target compilation.
Should some flags become mutually exclusive and if we want to have
both target in the same makefile, add the incompatible flag
on the appropriate target, example:
geode_drv_la_CFLAGS = $(AM_CFLAGS) -newCFlag
and/or
geode_drv_la_CPPFLAGS = $(AM_CPPFLAGS) -newCPPFlag
Note that both AM_CFLAGS and AM_CPPFLAGS are picked-up by both
geode and ztv driver target.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 03529b7b35fa8d7b5bac277d6abe1caf0557301a
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Sat Nov 19 13:22:32 2011 -0500
Separate compiler from pre-processor options
Clean-up what goes in AM_CFLAGS and AM_CPPFLAGS
Use more descriptive names such that comments are not needed.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit ac99bf2c5cdf86f039a290397614ca042a56c8db
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Fri Nov 18 16:36:12 2011 -0500
Detect 32bit support on 64bit OS and compile with -m32 if found
For gcc compiler only at the moment.
The configuration reports if support is found or not, e.g.:
checking if gcc supports the -m32 Intel/AMD option... yes
The configuration C test relies on #include unistd.h which includes
features.h which includes gnu/stubs.h which includes gnu/stubs-32.h
which is missing on 64 bit system without the 32 bit library support.
Tested on x86_64 AMD64 CPU with/without libc6-dev-i386 which provides
32 bit support. Remains to be tested on Geode and FreeBSD 32/64 bit.
The configuration does not attempt to decide if building should proceed
or be aborted. If no 32 bit support then the build will die in the
assembly code as it always did before.
The variable M32_CFLAGS provides the flag for the makefiles.
The variable names and organization is subject to change.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 3021c6df08004ec9ed846fec4000d798148eeb0e
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Nov 17 19:47:10 2011 -0500
geode source: streamline whitespace and sort alphabetically
No functional changes.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit c1993fa8e5bf07bbd43b09ae2ec27c287725d81e
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Nov 17 19:21:01 2011 -0500
Remove -I linux_v26 as the directory does not exist
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 4eaba919fccc7618aee0b2f58294e460640bedb9
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Nov 17 12:32:55 2011 -0500
Remove unused and misleading I386ARCH configuration code
The AM_CONDITIONAL I386ARCH is not used.
The AC_CHECK_DECLS is misleading as it suggests there could be some i*86
system with a 64 bit architecture which is incorrect.
It also provides false results on 64 bit computer.
The generated HAVE_DECL_XXX are not used anyway.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 65275e62415ded849f9986a36ad55ca3c96dc331
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Nov 17 12:20:13 2011 -0500
Remove -DPNL_SUP for the ztv driver
Only the gx driver provide such a panel.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 60c3f5f7e9482d29f043504860319aeead7b9a69
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Nov 17 09:32:24 2011 -0500
Remove duplicate warning variable and werror option
Use already existing:
--enable-strict-compilation
Enable all warnings from compiler and make them
errors (default: disabled)
which, byt the way was broken as it was not implemented in geode.
Use already existing CWARNINGFLAGS variable, so there is no need
to define GCC_WARNINGS.
Both come from util-macros version 1.4 or later.
http://cgit.freedesktop.org/xorg/util/macros/tree/xorg-macros.m4.in
?id=03b04a6b5d61aafbd2705f7d29e58e0c92553a4a
If you configure with a later version of util-macros you may see new
warnings appear as additional flags have been added over the years.
You get better support for platforms/compiler differences.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 5f228208cc65348e35aa24b6cddae1df19b67fa5
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Nov 16 20:14:08 2011 -0500
Remove unrequired .s assembly files automake support
Only the suffixes .s, .S, and .sx are recognized by automake
as being files containing assembly code.
http://www.gnu.org/software/automake/manual/automake.html#Assembly-Support
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit fc9957114875edb94cba89a4f4f0e023f2c98bfb
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Nov 16 19:47:08 2011 -0500
Remove ztv LINUX_2_6 switch and dead code
The makefile defines LINUX_2_6 so the "else" code is dead.
The port from kernel 2.4 is complete.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 100576b3a0a38da7a957969745b2cf087929c478
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Nov 16 19:15:17 2011 -0500
Remove broken duplicate visibility configure option
This was added by commit f762b456 in 2007 and has been since implemented
in the server which returns it in XORG_CFLAGS
pkg-config --cflags xorg-server
The server also takes care of platforms and compilers being used.
Currently the visibility is set twice and even if you disable it,
it is still passed through XORG_CFLAGS.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 970d142abe2fa09b294dd2bfa860fe3bbcaa8c68
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Nov 16 17:01:48 2011 -0500
Remove unused LINUX_2_6 macro from geode driver makefile
It is used in ztv but not geode driver.
In the wake of more platforms other than linux, might as well
remove any source of confusion.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 65625eac28af7cf3164e5560478cd18aaa0ac33e
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Nov 16 15:20:07 2011 -0500
Remove HAVE__GX HAVE_LX and OPT_ACCEL from ztv build
These macros are not used in z4l.c.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit dd8eadc53732ed2929e38c565240147165767625
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Nov 16 15:11:18 2011 -0500
Remove no longer used AMD_V4L2_VIDEO from makefiles
This macro has been removed every where from source code.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit fc19e7d2bd256663b4a731661a35abcf435eaf18
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Nov 16 14:07:10 2011 -0500
Add a configure option to enable/disable building the ztv driver
Even when V4L2 is available there are always reasons why distros
may not want to build the driver.
This patch uses a common idiom in xorg.
When no configure option is specified ztv is built iff v4l2 is detected (auto).
When user issues --disable-ztv, the ztv driver is not built (no)
When user issues --enable-ztv, the ztv driver is built (yes) if v4l2 is detected
but the configuration fails if v4l2 is missing. Distros do not want silent
failures when a feature is explicitly requested but cannot be built.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 23b85b3fcd1439561f0693755a31f7fded50741b
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Nov 15 19:36:17 2011 -0500
Add conditional build for ztv
Detect the presence of Video4Linux V2 and do not build if missing.
The geode driver is no longer Linux only.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit e4b771572d7b0797a794340ab8fb8b1db91a5eb1
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Nov 15 18:02:34 2011 -0500
Move ztv driver to it's own directory
The convention is to have the video driver (geode) in the src subdir
and any other targets (utils, apps, other drivers) in their own
directory. It makes it much simpler to right a correct makefile
and to set conditional compile.
This highlighted a few things to fix. For now, the directory includes
have not been copied as they are required. The AM_CCASFLAGS is not required
either as there is no assembler.
Other than that, the gcc command issued has no differences. Other unrequired
defines could be removed later.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 2b3767b9e424ce371c342c9c9a2f2ae1f61df1fd
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sat Nov 19 02:29:20 2011 +0200
README: emphasize that "ztv" is the name of that VIP driver.
commit aa7cd847d821ed639f7d18a5114a13c324f6f227
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sat Nov 19 02:17:22 2011 +0200
README: properly call the LX's video input port feature "VIP"
commit 9bbc7bc49f1d04d41d7e1750b81cfce45e4ddf42
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Thu Nov 17 02:15:27 2011 +0200
Added info about 'ztv' a.k.a. the V4L2 driver for LX in README.
commit 9e8a766cfb458cdc791f4c4a932fe51638a8bc73
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Nov 15 16:55:15 2011 -0500
Add gx_randr.c Copyright statement to COPYING
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit b724ff4045994fff721db4ab67f8aa418cc4f707
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Mon Nov 14 08:44:32 2011 +0200
Revert "Only enable z4l.c on Linux" until we have a consensus.
commit 587d4e40e58e70649968261f73b7fb2078349f4f
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sun Nov 13 15:48:29 2011 +0200
Revised BSD check in geode_msr.c
commit ee52d73fd2c68740b1ff3cdb5b1bf2a6d941090d
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sun Nov 13 03:40:01 2011 +0200
Move the z4l.c test to src/Makefile.am where it should be.
commit d193a42b3596ceb9dfaa66af71edd1f15ecc75bd
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sun Nov 13 03:23:21 2011 +0200
Added two #ifdef to enable building on FreeBSD.
commit ee6296ecb8bf5c9b5e7fa3eade5fa45245b66d62
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sun Nov 13 03:14:51 2011 +0200
Whitespace cleanup.
commit f6745f544feeb7443405f4b87043be9b721236b5
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sun Nov 13 03:10:01 2011 +0200
Only enable z4l.c on Linux.
commit f15f4da59a80533f3864aa6c54b4471e272d5c80
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Wed Apr 6 22:13:09 2011 +0300
Added info about the Geode developers' IRC channel in README.
commit 3c1375afdb9e1be524adae98c3713397d50e3a3e
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sun Mar 13 16:17:06 2011 +0200
Proofread and restructured the README for clarity.
commit 9d0986232cb417f41aee934b655cc0bbbae5f99b
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sun Mar 13 15:21:31 2011 +0200
Added README section about supported resolutions.
Inverted two FAQ sections so as to bring the answer about WXGA
right below this new supported resolutions section.
commit 8eab313cdf0cdc53ea936c7a9dd716d1000e1c56
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sun Mar 13 15:10:28 2011 +0200
Removed README note about minimal version.
b9a5a86a402832fe699e43b3030932b50ae821a0 restored code compatibility
with X server 1.4.
commit c465e19ff53db4be42dabcfafde510f79508c531
Author: Priit Laes <plaes@plaes.org>
Date: Sun Mar 13 03:40:53 2011 +0200
Add optional composite operation fallback tracing
Changing GEODE_TRACE_FALL to 1 allows to easily find the unaccelerated
code paths in a given use case while working on driver performance.
Signed-off-by: Priit Laes <plaes@plaes.org>
Signed-off-by: Mart Raudsepp <leio@gentoo.org>
commit 4fd7500bb16b80ea9aee8dc61c5b11e9deb8281f
Author: Mart Raudsepp <leio@gentoo.org>
Date: Sat Mar 12 22:17:19 2011 +0200
Fix parameter ordering for calloc/xnfcalloc calls
First argument is the number of elements and second the size of one
element, not vice-versa.
Signed-off-by: Mart Raudsepp <leio@gentoo.org>
commit 1a23956758d17a8b4c1d8acebf8acc94358c37b9
Author: Martin-Éric Racine <martin-eric.racine@iki.fi>
Date: Sun Feb 13 21:52:55 2011 +0200

View File

@ -19,6 +19,7 @@
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
SUBDIRS = src
MAINTAINERCLEANFILES = ChangeLog INSTALL
EXTRA_DIST = autogen.sh

View File

@ -96,7 +96,6 @@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMD_CFLAGS = @AMD_CFLAGS@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
@ -106,69 +105,70 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASE_CFLAGS = @BASE_CFLAGS@
BUILD_ZTV_FALSE = @BUILD_ZTV_FALSE@
BUILD_ZTV_TRUE = @BUILD_ZTV_TRUE@
CC = @CC@
CCAS = @CCAS@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@
DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
HAVE_XEXTPROTO_71_FALSE = @HAVE_XEXTPROTO_71_FALSE@
HAVE_XEXTPROTO_71_TRUE = @HAVE_XEXTPROTO_71_TRUE@
I386ARCH_FALSE = @I386ARCH_FALSE@
I386ARCH_TRUE = @I386ARCH_TRUE@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
M32_CFLAGS = @M32_CFLAGS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MAN_SUBSTS = @MAN_SUBSTS@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PANEL_CPPFLAGS = @PANEL_CPPFLAGS@
PATH_SEPARATOR = @PATH_SEPARATOR@
PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@
PCIACCESS_LIBS = @PCIACCESS_LIBS@
@ -185,13 +185,11 @@ XEXT_LIBS = @XEXT_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@

View File

@ -1,28 +1,21 @@
xf86-video-geode -- AMD Geode GX and LX graphics driver for X.org
=================================================================
README last updated: 2009-09-09
README last updated: 2011-11-24
GIT repository:
git://anongit.freedesktop.org/git/xorg/driver/xf86-video-geode
Gitweb browser:
http://cgit.freedesktop.org/xorg/driver/xf86-video-geode
Project homepage:
http://www.x.org/wiki/GeodeDriver
= Introduction =
1.INTRODUCTION
This is the X graphics driver for the AMD Geode GX and LX processors.
The GX driver features XAA and EXA support for graphics acceleration,
and the LX driver supports EXA (including compositing). Both drivers
support dynamic rotation with XRandR, and Xv overlay support.
The GX component supports both XAA and EXA for graphics acceleration.
The LX component supports EXA, including compositing. Both support Xv
overlay and dynamic rotation with XRandR. Additionally, a V4L2 driver
for the LX's video input port (VIP) feature is provided as "ztv".
= Roadmap =
2.DEPENDENCIES
Support for X servers older than 1.4 is expected to be dropped in the
near future. If your distribution still hasn't upgraded, please urge
them to get around it soon.
Since version 2.9.0, this driver depends on X server 1.3 or greater,
because it utilizes the new common DDC probing libraries from X.Org.
3.ROADMAP
Support for old GX1 Geodes by Cyrix and NSC will be reintroduced soon,
at which point xf86-video-cyrix and xf86-video-nsc will be retired.
@ -31,7 +24,7 @@ Until then, the current situation for Geode coverage is as follow:
xf86-video-geode
* Geode LX (a.k.a. GX3) PCI ID 0x1022:0x2081
* Geode GX (a.k.a. GX2) PCI ID 0x100B:0x0030 (rebranded GX2)
* Geode GX (a.k.a. GX2) PCI ID 0x100B:0x0030 (re-branded GX2)
xf86-video-nsc
* Geode GX2 (a.k.a. GX2) PCI ID 0x100B:0x0030 (a.k.a. "Red Cloud")
@ -44,50 +37,122 @@ xf86-video-cyrix
Please note that both NSC and GEODE support GX2. This is indeed correct.
However, only GEODE has up-to-date code, while NSC is deprecated.
= Dependencies =
4.MAXIMUM RESOLUTIONS
As of version 2.11.4, this driver depends upon X server 1.5 or newer,
because the GX Randr code utilizes dixSetPrivate whose API was modified
in a non backward-compatible way.
The driver supports all maximum resolutions advertised by AMD, namely:
#ifdef'ing the changes from f1268f3ba8404129d358db3bb1e66f3841f7018a
and b28abde0276ddd7f687242f3886f98b0e49a7fc2 might make it possible
to build this driver against older X servers. Patches are welcome.
LX: 1920x1440 (CRT) and 1600x1200 (TFT)
GX: 1600x1200 (CRT) and 1280x1024 (TFT)
SC: 1280x1024 (CRT/TFT) *** Currently unsupported by this driver ***
As of version 2.9.0, this driver depends on X server 1.3 or newer,
because it utilizes the new common DDC probing libraries from X.Org.
5.CONFIGURATION OPTIONS
If necessary, it might be possible to create autoconf macros to make
this driver compile against older X servers, following this example:
You can specify driver options in /etc/X11/xorg.conf in the usual fashion:
http://lists.freedesktop.org/archives/xorg-commit/2007-February/010341.html
Section "Device"
Identifier "AMD Geode"
Driver "geode"
Option "OptionName" "value"
...
EndSection
Patches accomplishing the same trick for the Geode driver are welcome.
The following options may be added to such a Device section:
= FAQ =
5.1.COMMON OPTIONS
Q: Why doesn't screen rotation work?
FBSize: Specify the size of the video space (in bytes)
NoAccel: Disable hardware assisted acceleration
NoCompression: Disable video bandwidth compression
NoPanel: Disable panel support
Rotate: Select an initial orientation - LEFT, INVERT, CCW
SWCursor: Enable software cursors (essentially disabling HW cursor support)
A: Make sure that a sufficient amount of video RAM is reserved in the BIOS,
otherwise rotation will fail and this error message appear in Xorg.log:
Couldn't allocate the shadow memory for rotation
You need XX bytes, but only YY bytes are available
5.2.GX-SPECIFIC OPTIONS
Q: Why doesn't this GEODE driver work at WXGA (wide screen) resolutions?
AccelMethod: "XAA" (default) or "EXA"
PanelGeometry: Specify the geometry of the attached panel ("<width>x<height>")
OSMImageBuffers: Set the number of image buffers (XAA only)
OSMColorExpBuffers: Set the number of color expansion buffers (XAA only)
5.3.LX-SPECIFIC OPTIONS
ExaScratch: Specify the amount of extra EXA scratch buffer (in bytes)
6.FREQUENTLY ASKED QUESTIONS (FAQ)
Q: Why doesn't the GEODE driver work at WXGA (wide screen) resolutions?
A: Make sure that TFT Panel support is disabled in the BIOS settings,
otherwise resolutions will be restricted to traditional VGA modes.
The GEODE offers a choice between CRT-only, CRT+TFT, TFT-only for
output device and selecting CRT-only removes the VGA restriction.
Q: How do I produce useful information whenever submiting a bug report?
Q: How can these hardcoded modes be expanded to support a WXGA laptop?
A: By adding the desired modes to /etc/X11/xorg.conf as follow:
1) Use either the "cvt" or "gtf" command to determine the modeline:
cvt 1024 600 60
Where 1024x600 is the resolution and 60 the refresh rate.
The resulting modeline using "gtf" is:
Modeline "1024x600" 48.96 1024 1064 1168 1312 600 601 604 622 -hsync +vsync
2) Add it to the bottom of the "Monitor" section in /etc/X11/xorg.conf.
In this example, we created entries for two modes and configured the
larger resolution to be our preferred choice.
#############################################################
# /etc/X11/xorg.conf for 1024x600 and 800x480 laptop panels #
#############################################################
#### By J.KASPER and B.HIBRY #### for Hercules eCafe 800 ####
#############################################################
Section "Module"
Load "ztv"
EndSection
Section "Device"
Identifier "card0"
Driver "geode"
BusID "PCI:0:1:1"
Option "PanelMode" "33450 800 840 968 1056 480 490 492 525"
EndSection
Section "Monitor"
Identifier "monitor0"
Modeline "1024x768" 64.56 1024 1056 1296 1328 768 783 791 807 -hsync +vsync
Modeline "1024x600" 48.96 1024 1064 1168 1312 600 601 604 622 -hsync +vsync
Modeline "800x480" 33.45 800 840 968 1056 480 490 492 525 -hsync +vsync
Option "dpms"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "monitor0"
Device "card0"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1024x600" "1024x768" "800x480"
EndSubsection
EndSection
### EOF ###
Q: Why doesn't screen rotation work?
A: Make sure that a sufficient amount of video RAM is reserved in the BIOS,
otherwise rotation will fail and this error message appear in Xorg.log:
Couldn't allocate the shadow memory for rotation
You need XX bytes, but only YY bytes are available
Q: How do I produce useful information whenever submitting a bug report?
A: See http://www.x.org/wiki/Development/Documentation/ServerDebugging
and follow the instructions.
and follow the instructions found there.
Q: How do I test development snapshots from the upstream GIT repository?
A: Run the following commands from a command line interpreter shell...
A: Run the following commands from a command line interpreter shell:
1. git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-geode
2. Debian/Ubuntu: apt-get install autoconf automake libtool xutils-dev
apt-get install build-dep xserver-xorg-video-geode
@ -101,40 +166,27 @@ A: Run the following commands from a command line interpreter shell...
Q: What is the preferred method for submitting patches to this driver?
A: See http://www.x.org/wiki/Development/Documentation/SubmittingPatches
and submit the patches as attachments to the Geode X.org mailing list
or to the X.org Bugzilla against component "Driver/geode".
and submit the patches to the Geode X.org mailing list or to Bugzilla
against product "xorg" component "Driver/geode".
= Configuration options =
7.PROJECT CONTACTS
You can specify the Geode driver in the normal fashion:
Project homepage:
http://www.x.org/wiki/GeodeDriver
Section "Device"
Identifier "AMD Geode"
Driver "geode"
Option "blah" "blah"
...
EndSection
Mailing list:
http://lists.freedesktop.org/mailman/listinfo/xorg-driver-geode
The following options may be added to the section:
Bug reports:
https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver%2Fgeode
== Common options ==
Code browser:
http://cgit.freedesktop.org/xorg/driver/xf86-video-geode
FBSize: Specify the size of the video space (in bytes)
NoAccel: Disable hardware assisted acceleration
NoCompression: Disable video bandwidth compression
NoPanel: Disable panel support
Rotate: Select a orientation to start with - LEFT, INVERT, CCW
SWCursor: Enable software cursors (essentially disabling HW cursor support)
Code repository:
git://anongit.freedesktop.org/git/xorg/driver/xf86-video-geode
== GX-specific options ==
IRC channel:
#geode on the Freenode network.
AccelMethod: "XAA" (default) or "EXA"
PanelGeometry: Specify the geometry of the attached panel ("<width>x<height>")
OSMImageBuffers: Set the number of image buffers (XAA only)
OSMColorExpBuffers: Set the number of color expansion buffers (XAA only)
== LX-specific options ==
ExaScratch: Specify the amount of extra EXA scratch buffer (in bytes)
= EOF =
.EOF.

File diff suppressed because it is too large Load Diff

View File

@ -2,24 +2,15 @@
#include "xorg-server.h"
/* Define to 1 if you have the declaration of `amd64', and to 0 if you don't.
*/
#undef HAVE_DECL_AMD64
/* Define to 1 if you have the declaration of `_LP64', and to 0 if you don't.
*/
#undef HAVE_DECL__LP64
/* Define to 1 if you have the declaration of `__amd64__', and to 0 if you
don't. */
#undef HAVE_DECL___AMD64__
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the <linux/videodev2.h> header file. */
#undef HAVE_LINUX_VIDEODEV2_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
@ -47,6 +38,10 @@
/* xextproto 7.1 available */
#undef HAVE_XEXTPROTO_71
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
/* Name of package */
#undef PACKAGE

File diff suppressed because it is too large Load Diff

View File

@ -20,81 +20,115 @@
#
# Process this file with autoconf to produce a configure script
# Initialize Autoconf
AC_PREREQ(2.59)
AC_INIT([xf86-video-geode],
[2.11.12],
[2.11.13],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver%2Fgeode],
[xf86-video-geode],
[http://www.x.org/wiki/GeodeDriver])
AC_CONFIG_SRCDIR([Makefile.am])
AM_CONFIG_HEADER([config.h])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_AUX_DIR(.)
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
# Initialize libtool
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
# Require xorg-macros: XORG_DEFAULT_OPTIONS
m4_ifndef([XORG_MACROS_VERSION],
[m4_fatal([must install xorg-macros 1.4 or later before running autoconf/autogen])])
XORG_MACROS_VERSION(1.4)
XORG_DEFAULT_OPTIONS
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
# Checks for programs.
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
AC_PROG_CC
AM_PROG_AS
AH_TOP([#include "xorg-server.h"])
# -----------------------------------------------------------------------------
# Configuration options
# -----------------------------------------------------------------------------
# Define a configure option for an alternate input module directory
AC_ARG_WITH(xorg-module-dir,
AC_HELP_STRING([--with-xorg-module-dir=DIR],
AS_HELP_STRING([--with-xorg-module-dir=DIR],
[Default xorg module directory [[default=$libdir/xorg/modules]]]),
[moduledir="$withval"],
[moduledir="$libdir/xorg/modules"])
AC_SUBST([moduledir])
# Define a configure option to enable/disable lcd panel support
AC_ARG_ENABLE(geodegx-panel,
AC_HELP_STRING([--disable-geodegx-panel],
AS_HELP_STRING([--disable-geodegx-panel],
[Disable support for flatpanels with the Geode GX]),
[ ],
[ AMD_CFLAGS="-DPNL_SUP $AMD_CFLAGS" ])
[ PANEL_CPPFLAGS=-DPNL_SUP ])
AC_SUBST(PANEL_CPPFLAGS)
AC_ARG_ENABLE(werror, AC_HELP_STRING([--enable-werror],
[Treat warnings as errors (default: disabled)]),
[WERROR=$enableval], [WERROR=no])
AC_ARG_ENABLE(visibility,
AC_HELP_STRING([--enable-visibility],
[Enable GCC visibility optimizations]),
[ AMD_CFLAGS="$AMD_CFLAGS -fvisibility=hidden" ],
[ : ])
# Define a configure option to enable/disable ztv
AC_ARG_ENABLE(ztv,
AS_HELP_STRING([--enable-ztv],
[Enable Video For Linux based ZTV driver (default: auto-detected)]),
[ztv=$enableval],
[ztv=auto])
if test "x$GCC" = "xyes"; then
GCC_WARNINGS1="-Wall -Wpointer-arith -Wstrict-prototypes"
GCC_WARNINGS2="-Wmissing-prototypes -Wmissing-declarations"
GCC_WARNINGS3="-Wnested-externs -fno-strict-aliasing"
GCC_WARNINGS="$GCC_WARNINGS1 $GCC_WARNINGS2 $GCC_WARNINGS3"
if test "x$WERROR" = "xyes"; then
GCC_WARNINGS="${GCC_WARNINGS} -Werror"
fi
AMD_CFLAGS="$GCC_WARNINGS $AMD_CFLAGS"
# Check for Video4Linux Version 2 (V4L2) availability
AC_CHECK_HEADERS([linux/videodev2.h],[v4l2=yes],[v4l2=no])
if test "x$ztv" != "xno" ; then
if test "x$v4l2" = "xno" ; then
if test "x$ztv" = "xyes" ; then
# User really wants ztv but V4L2 is not found
AC_MSG_ERROR([ZTV driver requested, but videodev2.h not found.])
fi
else
BUILD_ZTV=yes
fi
fi
AM_CONDITIONAL(BUILD_ZTV, [test "x$BUILD_ZTV" = xyes])
# Checks for extensions
# Check if GCC supports compiling in 32 bit mode for 64 bit computers
case $host_cpu in
x86_64*|amd64*)
if test "x$GCC" = xyes ; then
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -m32"
AC_MSG_CHECKING([if $CC supports the -m32 Intel/AMD option])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <unistd.h>
int
main ()
{
;
return 0;
}]])],
[m32_support=yes; M32_CFLAGS=-m32],
[m32_support=no])
AC_MSG_RESULT([$m32_support])
CFLAGS="$SAVE_CFLAGS"
fi
;;
esac
AC_SUBST([M32_CFLAGS])
# Store the list of server defined optional extensions in REQUIRED_MODULES
XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
XORG_DRIVER_CHECK_EXT(XV, videoproto)
XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
# Checks for pkg-config packages
# Obtain compiler/linker options for the Geode driver dependencies
PKG_CHECK_MODULES(XORG, [xorg-server xproto fontsproto $REQUIRED_MODULES])
PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]),
HAVE_XEXTPROTO_71="no")
AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ])
# Checks for libraries.
# Checks for libpciaccess support.
SAVE_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
@ -102,37 +136,13 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
[#include "xorg-server.h"])
CPPFLAGS="$SAVE_CPPFLAGS"
# Checks for header files.
AC_HEADER_STDC
if test "x$XSERVER_LIBPCIACCESS" = xyes; then
PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
fi
AC_SUBST([XORG_CFLAGS])
AC_SUBST([moduledir])
AC_SUBST([AMD_CFLAGS])
is386=false
case $host_cpu in
i*86)
is386=true
;;
esac
# Unset is386 if compiling for AMD64/EM64T
if test $is386 = true ; then
AC_CHECK_DECLS([_LP64, __amd64__, amd64], [is386=false])
fi
AM_CONDITIONAL([I386ARCH], [test $is386 = true])
DRIVER_NAME=geode
AC_SUBST([DRIVER_NAME])
AC_OUTPUT([
AC_CONFIG_FILES([
Makefile
src/Makefile
])
AC_OUTPUT

File diff suppressed because it is too large Load Diff

View File

@ -24,123 +24,121 @@
# _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_CPPFLAGS = \
-I$(top_srcdir)/src/cim \
-I$(top_srcdir)/src/gfx \
-I$(top_srcdir)/src/panel \
-I$(top_srcdir)/linux_v26
AM_CPPFLAGS = \
-I$(top_srcdir)/src/cim \
-I$(top_srcdir)/src/gfx \
-I$(top_srcdir)/src/panel \
$(PANEL_CPPFLAGS) \
-DHAVE_GX \
-DHAVE_LX \
-DOPT_ACCEL
# -DPNL_SUP is now provided by AMD_CFLAGS
#
AM_CFLAGS = @XORG_CFLAGS@ \
-DHAVE_GX -DHAVE_LX -DOPT_ACCEL \
-DLINUX_2_6 @AMD_CFLAGS@
AM_CFLAGS = $(XORG_CFLAGS) $(CWARNFLAGS) $(M32_CFLAGS)
AM_CCASFLAGS = @XORG_CFLAGS@
geode_drv_la_LTLIBRARIES = geode_drv.la
geode_drv_la_LDFLAGS = -module -avoid-version
geode_drv_ladir = @moduledir@/drivers
geode_drv_ladir = $(moduledir)/drivers
geode_drv_la_SOURCES = \
geode.h \
geode_blend.h \
geode_fourcc.h \
cim_dev.h \
geode_driver.c \
geode_common.c \
geode_dcon.c \
geode_ddc.c \
geode_msr.c \
gx_driver.c\
gx_accel.c \
gx_cursor.c \
gx_video.c \
gx_regacc.c \
gx_rotate.c \
gx_randr.c \
durango.c \
panel.c \
lx_driver.c \
lx_cursor.c \
lx_memory.c \
lx_panel.c \
lx_output.c \
lx_display.c \
lx_video.c \
lx_exa.c \
cimarron.c \
geode_pcirename.h
geode_drv_la_SOURCES = \
cimarron.c \
cim_dev.h \
durango.c \
geode_blend.h \
geode_common.c \
geode_dcon.c \
geode_ddc.c \
geode_driver.c \
geode_fourcc.h \
geode.h \
geode_msr.c \
geode_pcirename.h \
gx_accel.c \
gx_cursor.c \
gx_driver.c \
gx_randr.c \
gx_regacc.c \
gx_rotate.c \
gx_video.c \
lx_cursor.c \
lx_display.c \
lx_driver.c \
lx_exa.c \
lx_memory.c \
lx_output.c \
lx_panel.c \
lx_video.c \
panel.c
EXTRA_DIST = \
cim/cim_defs.h \
cim/cim_df.c \
cim/cim_filter.c \
cim/cim_gp.c \
cim/cim_init.c \
cim/cim_modes.c \
cim/cim_msr.c \
cim/cim_parm.h \
cim/cim_regs.h \
cim/cim_rtns.h \
cim/cim_version.h \
cim/cim_vg.c \
cim/cim_vip.c \
cim/cim_vop.c \
cim/doc/release.txt \
\
gfx/disp_gu1.c \
gfx/disp_gu2.c \
gfx/gfx_dcdr.c \
gfx/gfx_defs.h \
gfx/gfx_disp.c \
gfx/gfx_i2c.c \
gfx/gfx_init.c \
gfx/gfx_mode.h \
gfx/gfx_msr.c \
gfx/gfx_priv.h \
gfx/gfx_regs.h \
gfx/gfx_rndr.c \
gfx/gfx_rtns.h \
gfx/gfx_tv.c \
gfx/gfx_type.h \
gfx/gfx_vga.c \
gfx/gfx_vid.c \
gfx/gfx_vip.c \
gfx/history.h \
gfx/i2c_acc.c \
gfx/i2c_gpio.c \
gfx/init_gu1.c \
gfx/init_gu2.c \
gfx/msr_rdcl.c \
gfx/release.txt \
gfx/rndr_gu1.c \
gfx/rndr_gu2.c \
gfx/saa7114.c \
gfx/tv_1200.c \
gfx/tv_fs450.c \
gfx/tv_fs450.h \
gfx/vga_gu1.c \
gfx/vid_1200.c \
gfx/vid_5530.c \
gfx/vid_rdcl.c \
gfx/vip_1200.c \
\
panel/92xx.h \
panel/cen9211.c \
panel/cen9211.h \
panel/dora9211.c \
panel/dora9211.h \
panel/drac9210.c \
panel/drac9210.h \
panel/gx2_9211.c \
panel/gx2_9211.h \
panel/panel.c \
panel/panel.h \
panel/platform.c \
panel/pnl_bios.c \
panel/pnl_defs.h \
panel/pnl_init.c \
panel/readme.txt \
\
gx_vga.c \
EXTRA_DIST = \
cim/cim_defs.h \
cim/cim_df.c \
cim/cim_filter.c \
cim/cim_gp.c \
cim/cim_init.c \
cim/cim_modes.c \
cim/cim_msr.c \
cim/cim_parm.h \
cim/cim_regs.h \
cim/cim_rtns.h \
cim/cim_version.h \
cim/cim_vg.c \
cim/cim_vip.c \
cim/cim_vop.c \
cim/doc/release.txt \
\
gfx/disp_gu1.c \
gfx/disp_gu2.c \
gfx/gfx_dcdr.c \
gfx/gfx_defs.h \
gfx/gfx_disp.c \
gfx/gfx_i2c.c \
gfx/gfx_init.c \
gfx/gfx_mode.h \
gfx/gfx_msr.c \
gfx/gfx_priv.h \
gfx/gfx_regs.h \
gfx/gfx_rndr.c \
gfx/gfx_rtns.h \
gfx/gfx_tv.c \
gfx/gfx_type.h \
gfx/gfx_vga.c \
gfx/gfx_vid.c \
gfx/gfx_vip.c \
gfx/history.h \
gfx/i2c_acc.c \
gfx/i2c_gpio.c \
gfx/init_gu1.c \
gfx/init_gu2.c \
gfx/msr_rdcl.c \
gfx/release.txt \
gfx/rndr_gu1.c \
gfx/rndr_gu2.c \
gfx/saa7114.c \
gfx/tv_1200.c \
gfx/tv_fs450.c \
gfx/tv_fs450.h \
gfx/vga_gu1.c \
gfx/vid_1200.c \
gfx/vid_5530.c \
gfx/vid_rdcl.c \
gfx/vip_1200.c \
\
panel/92xx.h \
panel/cen9211.c \
panel/cen9211.h \
panel/dora9211.c \
panel/dora9211.h \
panel/drac9210.c \
panel/drac9210.h \
panel/gx2_9211.c \
panel/gx2_9211.h \
panel/panel.c \
panel/panel.h \
panel/platform.c \
panel/pnl_bios.c \
panel/pnl_defs.h \
panel/pnl_init.c \
panel/readme.txt \
\
gx_vga.c \
lx_vga.c

View File

@ -81,12 +81,12 @@ am__installdirs = "$(DESTDIR)$(geode_drv_ladir)"
geode_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(geode_drv_la_LTLIBRARIES)
geode_drv_la_LIBADD =
am_geode_drv_la_OBJECTS = geode_driver.lo geode_common.lo \
geode_dcon.lo geode_ddc.lo geode_msr.lo gx_driver.lo \
gx_accel.lo gx_cursor.lo gx_video.lo gx_regacc.lo gx_rotate.lo \
gx_randr.lo durango.lo panel.lo lx_driver.lo lx_cursor.lo \
lx_memory.lo lx_panel.lo lx_output.lo lx_display.lo \
lx_video.lo lx_exa.lo cimarron.lo
am_geode_drv_la_OBJECTS = cimarron.lo durango.lo geode_common.lo \
geode_dcon.lo geode_ddc.lo geode_driver.lo geode_msr.lo \
gx_accel.lo gx_cursor.lo gx_driver.lo gx_randr.lo gx_regacc.lo \
gx_rotate.lo gx_video.lo lx_cursor.lo lx_display.lo \
lx_driver.lo lx_exa.lo lx_memory.lo lx_output.lo lx_panel.lo \
lx_video.lo panel.lo
geode_drv_la_OBJECTS = $(am_geode_drv_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@ -109,7 +109,6 @@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMD_CFLAGS = @AMD_CFLAGS@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
@ -119,69 +118,70 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASE_CFLAGS = @BASE_CFLAGS@
BUILD_ZTV_FALSE = @BUILD_ZTV_FALSE@
BUILD_ZTV_TRUE = @BUILD_ZTV_TRUE@
CC = @CC@
CCAS = @CCAS@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@
DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
HAVE_XEXTPROTO_71_FALSE = @HAVE_XEXTPROTO_71_FALSE@
HAVE_XEXTPROTO_71_TRUE = @HAVE_XEXTPROTO_71_TRUE@
I386ARCH_FALSE = @I386ARCH_FALSE@
I386ARCH_TRUE = @I386ARCH_TRUE@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
M32_CFLAGS = @M32_CFLAGS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MAN_SUBSTS = @MAN_SUBSTS@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PANEL_CPPFLAGS = @PANEL_CPPFLAGS@
PATH_SEPARATOR = @PATH_SEPARATOR@
PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@
PCIACCESS_LIBS = @PCIACCESS_LIBS@
@ -198,13 +198,11 @@ XEXT_LIBS = @XEXT_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@ -247,124 +245,120 @@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AM_CPPFLAGS = \
-I$(top_srcdir)/src/cim \
-I$(top_srcdir)/src/gfx \
-I$(top_srcdir)/src/panel \
-I$(top_srcdir)/linux_v26
-I$(top_srcdir)/src/cim \
-I$(top_srcdir)/src/gfx \
-I$(top_srcdir)/src/panel \
$(PANEL_CPPFLAGS) \
-DHAVE_GX \
-DHAVE_LX \
-DOPT_ACCEL
# -DPNL_SUP is now provided by AMD_CFLAGS
#
AM_CFLAGS = @XORG_CFLAGS@ \
-DHAVE_GX -DHAVE_LX -DOPT_ACCEL \
-DLINUX_2_6 @AMD_CFLAGS@
AM_CCASFLAGS = @XORG_CFLAGS@
AM_CFLAGS = $(XORG_CFLAGS) $(CWARNFLAGS) $(M32_CFLAGS)
geode_drv_la_LTLIBRARIES = geode_drv.la
geode_drv_la_LDFLAGS = -module -avoid-version
geode_drv_ladir = @moduledir@/drivers
geode_drv_ladir = $(moduledir)/drivers
geode_drv_la_SOURCES = \
geode.h \
geode_blend.h \
geode_fourcc.h \
cim_dev.h \
geode_driver.c \
geode_common.c \
geode_dcon.c \
geode_ddc.c \
geode_msr.c \
gx_driver.c\
gx_accel.c \
gx_cursor.c \
gx_video.c \
gx_regacc.c \
gx_rotate.c \
gx_randr.c \
durango.c \
panel.c \
lx_driver.c \
lx_cursor.c \
lx_memory.c \
lx_panel.c \
lx_output.c \
lx_display.c \
lx_video.c \
lx_exa.c \
cimarron.c \
geode_pcirename.h
cimarron.c \
cim_dev.h \
durango.c \
geode_blend.h \
geode_common.c \
geode_dcon.c \
geode_ddc.c \
geode_driver.c \
geode_fourcc.h \
geode.h \
geode_msr.c \
geode_pcirename.h \
gx_accel.c \
gx_cursor.c \
gx_driver.c \
gx_randr.c \
gx_regacc.c \
gx_rotate.c \
gx_video.c \
lx_cursor.c \
lx_display.c \
lx_driver.c \
lx_exa.c \
lx_memory.c \
lx_output.c \
lx_panel.c \
lx_video.c \
panel.c
EXTRA_DIST = \
cim/cim_defs.h \
cim/cim_df.c \
cim/cim_filter.c \
cim/cim_gp.c \
cim/cim_init.c \
cim/cim_modes.c \
cim/cim_msr.c \
cim/cim_parm.h \
cim/cim_regs.h \
cim/cim_rtns.h \
cim/cim_version.h \
cim/cim_vg.c \
cim/cim_vip.c \
cim/cim_vop.c \
cim/doc/release.txt \
\
gfx/disp_gu1.c \
gfx/disp_gu2.c \
gfx/gfx_dcdr.c \
gfx/gfx_defs.h \
gfx/gfx_disp.c \
gfx/gfx_i2c.c \
gfx/gfx_init.c \
gfx/gfx_mode.h \
gfx/gfx_msr.c \
gfx/gfx_priv.h \
gfx/gfx_regs.h \
gfx/gfx_rndr.c \
gfx/gfx_rtns.h \
gfx/gfx_tv.c \
gfx/gfx_type.h \
gfx/gfx_vga.c \
gfx/gfx_vid.c \
gfx/gfx_vip.c \
gfx/history.h \
gfx/i2c_acc.c \
gfx/i2c_gpio.c \
gfx/init_gu1.c \
gfx/init_gu2.c \
gfx/msr_rdcl.c \
gfx/release.txt \
gfx/rndr_gu1.c \
gfx/rndr_gu2.c \
gfx/saa7114.c \
gfx/tv_1200.c \
gfx/tv_fs450.c \
gfx/tv_fs450.h \
gfx/vga_gu1.c \
gfx/vid_1200.c \
gfx/vid_5530.c \
gfx/vid_rdcl.c \
gfx/vip_1200.c \
\
panel/92xx.h \
panel/cen9211.c \
panel/cen9211.h \
panel/dora9211.c \
panel/dora9211.h \
panel/drac9210.c \
panel/drac9210.h \
panel/gx2_9211.c \
panel/gx2_9211.h \
panel/panel.c \
panel/panel.h \
panel/platform.c \
panel/pnl_bios.c \
panel/pnl_defs.h \
panel/pnl_init.c \
panel/readme.txt \
\
gx_vga.c \
cim/cim_defs.h \
cim/cim_df.c \
cim/cim_filter.c \
cim/cim_gp.c \
cim/cim_init.c \
cim/cim_modes.c \
cim/cim_msr.c \
cim/cim_parm.h \
cim/cim_regs.h \
cim/cim_rtns.h \
cim/cim_version.h \
cim/cim_vg.c \
cim/cim_vip.c \
cim/cim_vop.c \
cim/doc/release.txt \
\
gfx/disp_gu1.c \
gfx/disp_gu2.c \
gfx/gfx_dcdr.c \
gfx/gfx_defs.h \
gfx/gfx_disp.c \
gfx/gfx_i2c.c \
gfx/gfx_init.c \
gfx/gfx_mode.h \
gfx/gfx_msr.c \
gfx/gfx_priv.h \
gfx/gfx_regs.h \
gfx/gfx_rndr.c \
gfx/gfx_rtns.h \
gfx/gfx_tv.c \
gfx/gfx_type.h \
gfx/gfx_vga.c \
gfx/gfx_vid.c \
gfx/gfx_vip.c \
gfx/history.h \
gfx/i2c_acc.c \
gfx/i2c_gpio.c \
gfx/init_gu1.c \
gfx/init_gu2.c \
gfx/msr_rdcl.c \
gfx/release.txt \
gfx/rndr_gu1.c \
gfx/rndr_gu2.c \
gfx/saa7114.c \
gfx/tv_1200.c \
gfx/tv_fs450.c \
gfx/tv_fs450.h \
gfx/vga_gu1.c \
gfx/vid_1200.c \
gfx/vid_5530.c \
gfx/vid_rdcl.c \
gfx/vip_1200.c \
\
panel/92xx.h \
panel/cen9211.c \
panel/cen9211.h \
panel/dora9211.c \
panel/dora9211.h \
panel/drac9210.c \
panel/drac9210.h \
panel/gx2_9211.c \
panel/gx2_9211.h \
panel/panel.c \
panel/panel.h \
panel/platform.c \
panel/pnl_bios.c \
panel/pnl_defs.h \
panel/pnl_init.c \
panel/readme.txt \
\
gx_vga.c \
lx_vga.c
all: all-am

View File

@ -32,8 +32,6 @@
#include "config.h"
#endif
#define _LARGEFILE64_SOURCE
#include <unistd.h>
#include <errno.h>
#include <compiler.h>

View File

@ -101,9 +101,14 @@ DCONDPMSSet(ScrnInfoPtr pScrni, int mode)
break;
}
write(fd, value, sizeof(value));
ret = write(fd, value, sizeof(value));
close(fd);
if (ret < 0) {
failed = 1;
return 0;
}
return 1;
}

View File

@ -7,7 +7,10 @@
#endif
#include <errno.h>
#include <fcntl.h>
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdio.h>
#include <unistd.h>
@ -65,7 +68,7 @@ GeodeReadMSR(unsigned long addr, unsigned long *lo, unsigned long *hi)
if (fd == -1)
return -1;
ret = lseek64(fd, (off64_t) addr, SEEK_SET);
ret = lseek(fd, (off_t) addr, SEEK_SET);
if (ret == -1)
return -1;
@ -103,7 +106,7 @@ GeodeWriteMSR(unsigned long addr, unsigned long lo, unsigned long hi)
if (fd == -1)
return -1;
if (lseek64(fd, (off64_t) addr, SEEK_SET) == -1)
if (lseek(fd, (off_t) addr, SEEK_SET) == -1)
return -1;
data[0] = lo;

View File

@ -426,7 +426,7 @@ GXPreInit(ScrnInfoPtr pScrni, int flags)
return FALSE;
#endif
pGeode = pScrni->driverPrivate = xnfcalloc(sizeof(GeodeRec), 1);
pGeode = pScrni->driverPrivate = xnfcalloc(1, sizeof(GeodeRec));
if (pGeode == NULL)
return FALSE;
@ -445,9 +445,11 @@ GXPreInit(ScrnInfoPtr pScrni, int flags)
if (pGeode->useVGA) {
if (!xf86LoadSubModule(pScrni, "vgahw") || !vgaHWGetHWRec(pScrni))
pGeode->useVGA = FALSE;
else
vgaHWSetStdFuncs(VGAHWPTR(pScrni));
#if INT10_SUPPORT
pGeode->vesa = calloc(sizeof(VESARec), 1);
pGeode->vesa = calloc(1, sizeof(VESARec));
#endif
}
@ -649,7 +651,7 @@ GXPreInit(ScrnInfoPtr pScrni, int flags)
else
pScrni->videoRam = pGeode->pEnt->device->videoRam;
GeodeClockRange = (ClockRangePtr) xnfcalloc(sizeof(ClockRange), 1);
GeodeClockRange = (ClockRangePtr) xnfcalloc(1, sizeof(ClockRange));
GeodeClockRange->next = NULL;
GeodeClockRange->minClock = 25175;
GeodeClockRange->maxClock = 229500;
@ -1259,11 +1261,11 @@ GXScreenInit(int scrnIndex, ScreenPtr pScrn, int argc, char **argv)
}
} else {
pGeode->AccelImageWriteBuffers =
calloc(sizeof(pGeode->AccelImageWriteBuffers[0]),
pGeode->NoOfImgBuffers);
calloc(pGeode->NoOfImgBuffers,
sizeof(pGeode->AccelImageWriteBuffers[0]));
pGeode->AccelColorExpandBuffers =
calloc(sizeof(pGeode->AccelColorExpandBuffers[0]),
pGeode->NoOfColorExpandLines);
calloc(pGeode->NoOfColorExpandLines,
sizeof(pGeode->AccelColorExpandBuffers[0]));
}
}

View File

@ -353,7 +353,7 @@ GXRandRInit(ScreenPtr pScreen, int rotation)
return FALSE;
#endif
pRandr = calloc(sizeof(XF86RandRInfoRec), 1);
pRandr = calloc(1, sizeof(XF86RandRInfoRec));
if (pRandr == NULL)
return FALSE;

View File

@ -354,10 +354,11 @@ lx_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 * red, CARD16 * green,
*/
for (i = 0; i < 256; i++) {
unsigned int val;
(*red) &= 0xff00;
(*green) &= 0xff00;
(*blue) &= 0xff00;
unsigned int val = (*(red++) << 8) | *(green++) | (*(blue++) >> 8);
val = (*(red++) << 8) | *(green++) | (*(blue++) >> 8);
df_set_video_palette_entry(i, val);
}
@ -577,7 +578,7 @@ LXSetupCrtc(ScrnInfoPtr pScrni)
return;
}
lxpriv = xnfcalloc(sizeof(LXCrtcPrivateRec), 1);
lxpriv = xnfcalloc(1, sizeof(LXCrtcPrivateRec));
if (!lxpriv) {
xf86CrtcDestroy(crtc);

View File

@ -300,7 +300,7 @@ LXPreInit(ScrnInfoPtr pScrni, int flags)
return TRUE;
}
pGeode = pScrni->driverPrivate = xnfcalloc(sizeof(GeodeRec), 1);
pGeode = pScrni->driverPrivate = xnfcalloc(1, sizeof(GeodeRec));
if (pGeode == NULL)
return FALSE;
@ -312,8 +312,10 @@ LXPreInit(ScrnInfoPtr pScrni, int flags)
if (pGeode->useVGA) {
if (!xf86LoadSubModule(pScrni, "vgahw") || !vgaHWGetHWRec(pScrni))
pGeode->useVGA = FALSE;
else
vgaHWSetStdFuncs(VGAHWPTR(pScrni));
pGeode->vesa = calloc(sizeof(VESARec), 1);
pGeode->vesa = calloc(1, sizeof(VESARec));
}
cim_rdmsr = LXReadMSR;

View File

@ -48,6 +48,19 @@
#define F(x) IntToxFixed(x)
#define I(x) xFixedToInt(x)
#define GEODE_TRACE_FALL 0
#if GEODE_TRACE_FALL
#define GEODE_FALLBACK(x) \
do { \
ErrorF("%s: ", __FUNCTION__); \
ErrorF x; \
return FALSE; \
} while (0)
#else
#define GEODE_FALLBACK(x) return FALSE
#endif
static const struct exa_format_t
{
int exa;
@ -532,10 +545,8 @@ lx_check_composite(int op, PicturePtr pSrc, PicturePtr pMsk, PicturePtr pDst)
GeodeRec *pGeode = GEODEPTR_FROM_PICTURE(pDst);
const struct exa_format_t *srcFmt, *dstFmt;
/* Check that the operation is supported */
if (op > PictOpAdd)
return FALSE;
GEODE_FALLBACK(("Operation %d is not supported\n", op));
/* FIXME: Meet this conditions from the debug for PictOpAdd.
* Any Other possibilities? Add a judge for the future supplement */
@ -551,15 +562,13 @@ lx_check_composite(int op, PicturePtr pSrc, PicturePtr pMsk, PicturePtr pDst)
pDst->format == PICT_a8 && !pMsk)
return TRUE;
/* We need the off-screen buffer to do the multipass work */
if (usesPasses(op)) {
if (pGeode->exaBfrOffset == 0 || !pMsk)
return FALSE;
GEODE_FALLBACK(("Multipass operation requires off-screen buffer\n"));
}
if (pMsk && op == PictOpAdd)
return FALSE;
GEODE_FALLBACK(("PictOpAdd with mask is not supported\n"));
/* Check that the filter matches what we support */
@ -571,17 +580,15 @@ lx_check_composite(int op, PicturePtr pSrc, PicturePtr pMsk, PicturePtr pDst)
break;
default:
/* WE don't support bilinear or convolution filters */
return FALSE;
GEODE_FALLBACK(("Bilinear or convolution filters are not supported\n"));
}
/* We don't support any mask transforms */
if (pMsk && pMsk->transform)
return FALSE;
GEODE_FALLBACK(("Mask transforms are not supported\n"));
/* XXX - don't know if we can do any hwaccel on solid fills or gradient types */
if (pSrc->pSourcePict || (pMsk && pMsk->pSourcePict))
return FALSE;
GEODE_FALLBACK(("Solid fills or gradient types are not supported\n"));
/* Keep an eye out for source rotation transforms - those we can
* do something about */
@ -590,13 +597,12 @@ lx_check_composite(int op, PicturePtr pSrc, PicturePtr pMsk, PicturePtr pDst)
exaScratch.transform = NULL;
if (pSrc->transform && !lx_process_transform(pSrc))
return FALSE;
GEODE_FALLBACK(("Transform operation is non-trivial\n"));
/* XXX - I don't understand PICT_a8 enough - so I'm punting */
if ((op != PictOpAdd) && (pSrc->format == PICT_a8 ||
pDst->format == PICT_a8))
return FALSE;
GEODE_FALLBACK(("PICT_a8 as src or dst format is unsupported\n"));
if (pMsk && op != PictOpClear) {
struct blend_ops_t *opPtr = &lx_alpha_ops[op * 2];
@ -605,21 +611,21 @@ lx_check_composite(int op, PicturePtr pSrc, PicturePtr pMsk, PicturePtr pDst)
/* Direction 0 indicates src->dst, 1 indiates dst->src */
if (((direction == 0) && (pSrc->pDrawable->bitsPerPixel < 16)) ||
((direction == 1) && (pDst->pDrawable->bitsPerPixel < 16))) {
ErrorF("Can't do mask blending with less then 16bpp\n");
ErrorF("Mask blending unsupported with <16bpp\n");
return FALSE;
}
/* We can only do masks with a 8bpp or a 4bpp mask */
if (pMsk->format != PICT_a8 && pMsk->format != PICT_a4)
return FALSE;
GEODE_FALLBACK(("Masks can be only done with a 8bpp or 4bpp depth\n"));
/* The pSrc should be 1x1 pixel if the pMsk is not zero */
if (pSrc->pDrawable->width != 1 || pSrc->pDrawable->height != 1)
return FALSE;
GEODE_FALLBACK(("pSrc should be 1x1 pixel if pMsk is not zero\n"));
/* FIXME: In lx_prepare_composite, there are no variables to record the
* one pixel source's width and height when the mask is not zero.
* That will lead to bigger region to render instead of one pixel in lx
* _do_composite, so we should fallback currently to avoid this */
if (!pSrc->repeat)
return FALSE;
GEODE_FALLBACK(("FIXME: unzero mask might lead to bigger rendering region than 1x1 pixels\n"));
}
/* Get the formats for the source and destination */
@ -630,7 +636,7 @@ lx_check_composite(int op, PicturePtr pSrc, PicturePtr pMsk, PicturePtr pDst)
}
if ((dstFmt = lx_get_format(pDst)) == NULL) {
ErrorF("EXA: Invalid destination format %x\n", pDst->format);
ErrorF("EXA: Invalid destination format %x\n", pDst->format);
return FALSE;
}
@ -638,21 +644,19 @@ lx_check_composite(int op, PicturePtr pSrc, PicturePtr pMsk, PicturePtr pDst)
/* If a mask is enabled, the alpha will come from there */
if (!pMsk && (!srcFmt->alphabits && usesSrcAlpha(op)))
return FALSE;
GEODE_FALLBACK(("Operation requires src alpha, but alphabits is unset\n"));
if (!pMsk && (!dstFmt->alphabits && usesDstAlpha(op)))
return FALSE;
/* FIXME: See a way around this! */
GEODE_FALLBACK(("Operation requires dst alpha, but alphabits is unset\n"));
/* FIXME: See a way around this! */
if (srcFmt->alphabits == 0 && dstFmt->alphabits != 0)
return FALSE;
GEODE_FALLBACK(("src_alphabits=0, dst_alphabits!=0\n"));
/* If this is a rotate operation, then make sure the src and dst
* formats are the same */
if (exaScratch.rotate != RR_Rotate_0 && srcFmt != dstFmt) {
ErrorF("EXA: Can't rotate and convert formats at the same time\n");
ErrorF("EXA: Unable to rotate and convert formats at the same time\n");
return FALSE;
}
return TRUE;

View File

@ -190,7 +190,6 @@ IoCtl(int fd, unsigned int fn, void *arg, int flag)
static void
z4l_ovly_unmap(Z4lPortPrivRec * pPriv)
{
#ifdef LINUX_2_6
int i, nbfrs;
nbfrs = pPriv->nbfrs;
@ -200,12 +199,6 @@ z4l_ovly_unmap(Z4lPortPrivRec * pPriv)
pPriv->bfrs[i].start = NULL;
}
}
#else
if (pPriv->bfrs[0].start != NULL) {
munmap((void *)pPriv->bfrs[0].start, pPriv->bufsz);
pPriv->bfrs[0].start = NULL;
}
#endif
pPriv->nbfrs = -1;
pPriv->bufsz = -1;
pPriv->last = -1;
@ -252,27 +245,12 @@ z4l_ovly_map(Z4lPortPrivRec * pPriv, int dir)
pPriv->bufsz = bsz;
}
#ifdef LINUX_2_6
for (i = 0; i < pPriv->nbfrs; ++i) {
pPriv->bfrs[i].start = mmap(NULL, bfr.length, PROT_READ | PROT_WRITE,
MAP_SHARED, fd, pPriv->bfrs[i].offset);
if (pPriv->bfrs[i].start == MAP_FAILED)
goto xit;
}
#else
pPriv->bfrs[0].offset = 0;
pPriv->bfrs[0].start =
mmap(NULL, pPriv->bufsz, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (pPriv->bfrs[0].start == MAP_FAILED) {
pPriv->bfrs[0].start = NULL;
goto xit;
}
offset = (unsigned long)pPriv->bfrs[0].start;
for (i = 1; i < pPriv->nbfrs; ++i)
pPriv->bfrs[i].start = (void *)(offset + pPriv->bfrs[i].offset);
#endif
for (i = 0; i < pPriv->nbfrs; ++i) {
DBLOG(3, "bfr %d ofs %#lx adr %p sz %lu\n", i, pPriv->bfrs[i].offset,