diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2009-11-22 17:53:04 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2009-11-22 17:53:04 +0000 |
commit | 9a92e1811780364fd11ef3cf890287500d3f2618 (patch) | |
tree | 5f5ca82652c06f671f717b32520a649fcfd5a657 | |
parent | ef1822cea93f7497da13487910e25d1977d2d9c2 (diff) |
Update to xf86-video-siliconmotion 1.7.3
-rw-r--r-- | driver/xf86-video-siliconmotion/COPYING | 76 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/ChangeLog | 101 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/Makefile.in | 4 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/README | 13 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/aclocal.m4 | 89 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/config.h.in | 3 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/configure | 199 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/configure.ac | 6 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/man/Makefile.in | 4 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/src/Makefile.in | 4 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/src/smi_501.c | 5 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/src/smi_driver.c | 234 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/src/smi_exa.c | 40 | ||||
-rw-r--r-- | driver/xf86-video-siliconmotion/src/smilynx_crtc.c | 2 |
14 files changed, 523 insertions, 257 deletions
diff --git a/driver/xf86-video-siliconmotion/COPYING b/driver/xf86-video-siliconmotion/COPYING index 7f33cbfd2..2101aa117 100644 --- a/driver/xf86-video-siliconmotion/COPYING +++ b/driver/xf86-video-siliconmotion/COPYING @@ -1,12 +1,72 @@ -This is a stub file. This package has not yet had its complete licensing -information compiled. Please see the individual source files for details on -your rights to use and modify this software. +Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved. +Copyright (C) 2000,2008 Silicon Motion, Inc. All Rights Reserved. +Copyright (C) 2001 Corvin Zahn. All Rights Reserved. +Copyright (C) 2008 Francisco Jerez. All Rights Reserved. +Copyright (C) 2008 Mandriva Linux. All Rights Reserved. -Please submit updated COPYING files to the Xorg bugzilla: +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 furnished to do +so, subject to the following conditions: -https://bugs.freedesktop.org/enter_bug.cgi?product=xorg +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -All licensing questions regarding this software should be directed at the -Xorg mailing list: +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 CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -http://lists.freedesktop.org/mailman/listinfo/xorg +Except as contained in this notice, the names of The XFree86 Project and +Silicon Motion 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 XFree86 Project or Silicon Motion. + +****************************************************************************** + +Copyright 2007 George Sapountzis + +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 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 NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS 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. + +****************************************************************************** + +Copyright (C) 2006 Dennis De Winter All Rights Reserved. +Copyright (C) 2007 Alex Deucher 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 furnished 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 CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/driver/xf86-video-siliconmotion/ChangeLog b/driver/xf86-video-siliconmotion/ChangeLog index 6f3a5f8ee..47516715e 100644 --- a/driver/xf86-video-siliconmotion/ChangeLog +++ b/driver/xf86-video-siliconmotion/ChangeLog @@ -1,3 +1,104 @@ +commit 52f40e7569bbcc9bce8f5d885b0de2868398e8df +Author: Dave Airlie <airlied@redhat.com> +Date: Wed Aug 5 11:09:26 2009 +1000 + + fix build after headers moved + +commit 9d9bfe0349693b283e5dc1ced6fa882f10619253 +Author: Dave Airlie <airlied@redhat.com> +Date: Wed Aug 5 11:08:15 2009 +1000 + + update for 1.7.3 + +commit 115b564f78b038baef2d14c037785850efb4e9ca +Author: Dave Airlie <airlied@redhat.com> +Date: Tue Jul 28 15:22:41 2009 +1000 + + siliconmotion: change to using ABI version check + +commit 70f2463faa6d21517d97aa460871e1b5f3fa6505 +Author: Dave Airlie <airlied@redhat.com> +Date: Tue Jul 28 13:32:36 2009 +1000 + + siliconmotion: update for resources/RAC API removal + +commit 841df790b5b6700e9a1d6d41ee04b0b913329084 +Author: Peter Hutterer <peter.hutterer@who-t.net> +Date: Thu Jul 16 11:55:05 2009 +1000 + + Update to xextproto 7.1 support. + + DPMS header was split into dpms.h (client) and dpmsconst.h (server). Drivers + need to include dpmsconst.h if xextproto 7.1 is available. + + Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> + +commit d754e9a2954e56a26a94e58d87a450a825c250e6 +Author: Adam Jackson <ajax@redhat.com> +Date: Thu Jul 2 11:43:52 2009 -0400 + + siliconmotion 1.7.2 + +commit cd9e9f25294abb739c1772e3a9a7a9c0a921ee82 +Author: Francisco Jerez <currojerez@riseup.net> +Date: Tue Jun 23 13:11:02 2009 +0200 + + Fix EXA rotation for SM502 at 32bpp (bug 22432). + +commit 97498c048c897e5753e61d3b4ab231025974d67c +Author: Adam Jackson <ajax@redhat.com> +Date: Thu May 28 15:17:58 2009 -0400 + + Remove useless loader symbol lists. + +commit 536e5df957698251206326edc5a13e833f7c72b1 +Author: Francisco Jerez <currojerez@riseup.net> +Date: Wed May 27 01:23:36 2009 +0200 + + Program MCLK/MXCLK on startup for a secondary SM502. + + This should allow using a SM502 as secondary display + device (bug 21810). + +commit 6a370fa2b6b8fcbd556dd6f9bf92872e9bea23e8 +Author: Alan Coopersmith <alan.coopersmith@sun.com> +Date: Mon May 11 22:31:30 2009 -0700 + + Fill in COPYING file, add SubmittingPatches URL to README + +commit 962e0c4f08180ac51994aef8d6d042108d5841c1 +Author: Francisco Jerez <currojerez@riseup.net> +Date: Sun May 10 01:53:05 2009 +0200 + + Widen the pixel clock readjust interval for SM712. + + Set it to 3MHz so that the pixel clock frequency is overridden + when it's found to be 49MHz, which is reported to be unstable. + +commit 3cc1b9d4bcf1b7a756ea4426c93392ff6d82e9a6 +Author: Francisco Jerez <currojerez@riseup.net> +Date: Tue May 5 00:45:10 2009 +0200 + + Fail gracefully when the specified virtual screen doesn't fit in RAM. + +commit 32628d9884d577d7a672c172c12b7097be276700 +Author: Francisco Jerez <currojerez@riseup.net> +Date: Tue May 5 00:44:17 2009 +0200 + + Probe the amount of installed memory by trial and error on SM712. + + In some cases the BIOS hasn't filled in the "scratchpad registers" + (SR71) with the right amount of memory installed (e.g. MIPS + platform). There seems to be no other way to do it than to test it. + + This should fix bug 21528. + +commit 00921b014fa0b5358c22a769cf2450cbd4bdc8a5 +Author: Francisco Jerez <currojerez@riseup.net> +Date: Tue Apr 28 22:24:03 2009 +0200 + + Bump version to 1.7.1. + commit abf1ba79f2bfe61f24cfa43deb0400d7c5f95bd5 Author: Francisco Jerez <currojerez@riseup.net> Date: Tue Apr 21 21:37:45 2009 +0200 diff --git a/driver/xf86-video-siliconmotion/Makefile.in b/driver/xf86-video-siliconmotion/Makefile.in index b746b96ce..69884aba2 100644 --- a/driver/xf86-video-siliconmotion/Makefile.in +++ b/driver/xf86-video-siliconmotion/Makefile.in @@ -132,6 +132,8 @@ FFLAGS = @FFLAGS@ 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@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -168,6 +170,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ +XEXT_CFLAGS = @XEXT_CFLAGS@ +XEXT_LIBS = @XEXT_LIBS@ XMODES_FALSE = @XMODES_FALSE@ XMODES_TRUE = @XMODES_TRUE@ XORG_CFLAGS = @XORG_CFLAGS@ diff --git a/driver/xf86-video-siliconmotion/README b/driver/xf86-video-siliconmotion/README index 282d6a477..b3b6674a5 100644 --- a/driver/xf86-video-siliconmotion/README +++ b/driver/xf86-video-siliconmotion/README @@ -1,22 +1,25 @@ xf86-video-siliconmotion - Silicon Motion video driver for the Xorg X server -Please submit bugs & patches to the Xorg bugzilla: - - https://bugs.freedesktop.org/enter_bug.cgi?product=xorg - All questions regarding this software should be directed at the Xorg mailing list: http://lists.freedesktop.org/mailman/listinfo/xorg +Please submit bug reports to the Xorg bugzilla: + + https://bugs.freedesktop.org/enter_bug.cgi?product=xorg + The master development code repository can be found at: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-siliconmotion http://cgit.freedesktop.org/xorg/driver/xf86-video-siliconmotion +For patch submission instructions, see: + + http://www.x.org/wiki/Development/Documentation/SubmittingPatches + For more information on the git code manager, see: http://wiki.x.org/wiki/GitPage ----------------------------------------------------------------------------- diff --git a/driver/xf86-video-siliconmotion/aclocal.m4 b/driver/xf86-video-siliconmotion/aclocal.m4 index 3ec9c2c92..f5c20ec3e 100644 --- a/driver/xf86-video-siliconmotion/aclocal.m4 +++ b/driver/xf86-video-siliconmotion/aclocal.m4 @@ -7631,7 +7631,7 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR -dnl xorg-macros.m4. Generated from xorg-macros.m4.in:xorgversion.m4 by configure. +dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl dnl Copyright 2005-2006 Sun Microsystems, Inc. All rights reserved. dnl @@ -7668,27 +7668,24 @@ dnl of the copyright holder. # your configure.ac with the minimum required version, such as: # XORG_MACROS_VERSION(1.1) # -# To force at least a version with this macro defined, also add: -# m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.1 or later before running autoconf/autogen])]) +# To ensure that this macro is defined, also add: +# m4_ifndef([XORG_MACROS_VERSION], +# [m4_fatal([must install xorg-macros 1.1 or later before running autoconf/autogen])]) # # # See the "minimum version" comment for each macro you use to see what # version you require. -AC_DEFUN([XORG_MACROS_VERSION],[ - [XORG_MACROS_needed_version=$1 - XORG_MACROS_needed_major=`echo $XORG_MACROS_needed_version | sed 's/\..*$//'` - XORG_MACROS_needed_minor=`echo $XORG_MACROS_needed_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`] - AC_MSG_CHECKING([if xorg-macros used to generate configure is at least ${XORG_MACROS_needed_major}.${XORG_MACROS_needed_minor}]) - [XORG_MACROS_version=1.2.1 - XORG_MACROS_major=`echo $XORG_MACROS_version | sed 's/\..*$//'` - XORG_MACROS_minor=`echo $XORG_MACROS_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`] - if test $XORG_MACROS_major -ne $XORG_MACROS_needed_major ; then - AC_MSG_ERROR([configure built with incompatible version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.x]) - fi - if test $XORG_MACROS_minor -lt $XORG_MACROS_needed_minor ; then - AC_MSG_ERROR([configure built with too old of a version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.${XORG_MACROS_minor}.0 or newer]) - fi - AC_MSG_RESULT([yes, $XORG_MACROS_version]) +m4_defun([XORG_MACROS_VERSION],[ +m4_define([vers_have], [1.3.0]) +m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) +m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) +m4_if(m4_cmp(maj_have, maj_needed), 0,, + [m4_fatal([xorg-macros major version ]maj_needed[ is required but ]vers_have[ found])]) +m4_if(m4_version_compare(vers_have, [$1]), -1, + [m4_fatal([xorg-macros version $1 or higher is required but ]vers_have[ found])]) +m4_undefine([vers_have]) +m4_undefine([maj_have]) +m4_undefine([maj_needed]) ]) # XORG_MACROS_VERSION # XORG_PROG_RAWCPP() @@ -7955,7 +7952,7 @@ AC_SUBST(MAKE_HTML) # their AM_CFLAGS (or other appropriate *_CFLAGS) to use them. AC_DEFUN([XORG_CHECK_MALLOC_ZERO],[ AC_ARG_ENABLE(malloc0returnsnull, - AC_HELP_STRING([--enable-malloc0returnsnull], + AS_HELP_STRING([--enable-malloc0returnsnull], [malloc(0) returns NULL (default: auto)]), [MALLOC_ZERO_RETURNS_NULL=$enableval], [MALLOC_ZERO_RETURNS_NULL=auto]) @@ -8007,7 +8004,7 @@ AC_SUBST([XTMALLOC_ZERO_CFLAGS]) AC_DEFUN([XORG_WITH_LINT],[ # Allow checking code with lint, sparse, etc. -AC_ARG_WITH(lint, [AC_HELP_STRING([--with-lint], +AC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint], [Use a lint-style source code checker (default: disabled)])], [use_lint=$withval], [use_lint=no]) if test "x$use_lint" = "xyes" ; then @@ -8048,7 +8045,7 @@ AM_CONDITIONAL(LINT, [test x$LINT != xno]) AC_DEFUN([XORG_LINT_LIBRARY],[ AC_REQUIRE([XORG_WITH_LINT]) # Build lint "library" for more indepth checks of programs calling this library -AC_ARG_ENABLE(lint-library, [AC_HELP_STRING([--enable-lint-library], +AC_ARG_ENABLE(lint-library, [AS_HELP_STRING([--enable-lint-library], [Create lint library (default: disabled)])], [make_lint_lib=$enableval], [make_lint_lib=no]) if test "x$make_lint_lib" != "xno" ; then @@ -8078,9 +8075,9 @@ if test "x$GCC" = xyes ; then CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ -Wmissing-declarations -Wnested-externs -fno-strict-aliasing \ -Wbad-function-cast" - case `gcc -dumpversion` in + case `$CC -dumpversion` in 3.4.* | 4.*) - CWARNFLAGS+=" -Wold-style-definition -Wdeclaration-after-statement" + CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement" ;; esac else @@ -8090,7 +8087,51 @@ else fi fi AC_SUBST(CWARNFLAGS) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) ]) # XORG_CWARNFLAGS + +# XORG_STRICT_OPTION +# ----------------------- +# Minimum version: 1.3.0 +# +# Add configure option to enable strict compilation +AC_DEFUN([XORG_STRICT_OPTION], [ +AC_REQUIRE([AC_PROG_CC]) +AC_REQUIRE([AC_PROG_CC_C99]) +AC_REQUIRE([XORG_CWARNFLAGS]) + +AC_ARG_ENABLE(strict-compilation, + AS_HELP_STRING([--enable-strict-compilation], + [Enable all warnings from compiler and make them errors (default: disabled)]), + [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no]) +if test "x$STRICT_COMPILE" = "xyes"; then + AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) + AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"]) + if test "x$GCC" = xyes ; then + STRICT_CFLAGS="-pedantic -Werror" + elif test "x$SUNCC" = "xyes"; then + STRICT_CFLAGS="-errwarn" + elif test "x$INTELCC" = "xyes"; then + STRICT_CFLAGS="-Werror" + fi +fi +CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" +AC_SUBST([CWARNFLAGS]) +]) # XORG_STRICT_OPTION + +# XORG_DEFAULT_OPTIONS +# -------------------- +# Minimum version: 1.3.0 +# +# Defines default options for X.Org modules. +# +AC_DEFUN([XORG_DEFAULT_OPTIONS], [ +XORG_CWARNFLAGS +XORG_STRICT_OPTION +XORG_RELEASE_VERSION +XORG_CHANGELOG +XORG_MANPAGE_SECTIONS +]) # XORG_DEFAULT_OPTIONS dnl Copyright 2005 Red Hat, Inc dnl dnl Permission to use, copy, modify, distribute, and sell this software and its @@ -8125,7 +8166,7 @@ dnl AC_DEFUN([XORG_RELEASE_VERSION],[ AC_ARG_WITH(release-version, - AC_HELP_STRING([--with-release-version=STRING], + AS_HELP_STRING([--with-release-version=STRING], [Use release version string in package name]), [RELEASE_VERSION="$withval"], [RELEASE_VERSION=""]) diff --git a/driver/xf86-video-siliconmotion/config.h.in b/driver/xf86-video-siliconmotion/config.h.in index 7abc85352..875b7d796 100644 --- a/driver/xf86-video-siliconmotion/config.h.in +++ b/driver/xf86-video-siliconmotion/config.h.in @@ -32,6 +32,9 @@ /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H +/* xextproto 7.1 available */ +#undef HAVE_XEXTPROTO_71 + /* X server has new mode code */ #undef HAVE_XMODES diff --git a/driver/xf86-video-siliconmotion/configure b/driver/xf86-video-siliconmotion/configure index 7fdf1cc44..c97b5642e 100644 --- a/driver/xf86-video-siliconmotion/configure +++ b/driver/xf86-video-siliconmotion/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.62 for xf86-video-siliconmotion 1.7.1. +# Generated by GNU Autoconf 2.62 for xf86-video-siliconmotion 1.7.3. # # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. # @@ -750,8 +750,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='xf86-video-siliconmotion' PACKAGE_TARNAME='xf86-video-siliconmotion' -PACKAGE_VERSION='1.7.1' -PACKAGE_STRING='xf86-video-siliconmotion 1.7.1' +PACKAGE_VERSION='1.7.3' +PACKAGE_STRING='xf86-video-siliconmotion 1.7.3' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' ac_unique_file="Makefile.am" @@ -900,6 +900,10 @@ LIBTOOL PKG_CONFIG XORG_CFLAGS XORG_LIBS +XEXT_CFLAGS +XEXT_LIBS +HAVE_XEXTPROTO_71_TRUE +HAVE_XEXTPROTO_71_FALSE PCIACCESS_CFLAGS PCIACCESS_LIBS XSERVER_LIBPCIACCESS_TRUE @@ -958,6 +962,8 @@ FFLAGS PKG_CONFIG XORG_CFLAGS XORG_LIBS +XEXT_CFLAGS +XEXT_LIBS PCIACCESS_CFLAGS PCIACCESS_LIBS' @@ -1512,7 +1518,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xf86-video-siliconmotion 1.7.1 to adapt to many kinds of systems. +\`configure' configures xf86-video-siliconmotion 1.7.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1583,7 +1589,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xf86-video-siliconmotion 1.7.1:";; + short | recursive ) echo "Configuration of xf86-video-siliconmotion 1.7.3:";; esac cat <<\_ACEOF @@ -1631,6 +1637,8 @@ Some influential environment variables: PKG_CONFIG path to pkg-config utility XORG_CFLAGS C compiler flags for XORG, overriding pkg-config XORG_LIBS linker flags for XORG, overriding pkg-config + XEXT_CFLAGS C compiler flags for XEXT, overriding pkg-config + XEXT_LIBS linker flags for XEXT, overriding pkg-config PCIACCESS_CFLAGS C compiler flags for PCIACCESS, overriding pkg-config PCIACCESS_LIBS @@ -1702,7 +1710,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xf86-video-siliconmotion configure 1.7.1 +xf86-video-siliconmotion configure 1.7.3 generated by GNU Autoconf 2.62 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1716,7 +1724,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xf86-video-siliconmotion $as_me 1.7.1, which was +It was created by xf86-video-siliconmotion $as_me 1.7.3, which was generated by GNU Autoconf 2.62. Invocation command line was $ $0 $@ @@ -2087,26 +2095,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # XORG_CHANGELOG macros - XORG_MACROS_needed_version=1.2.1 - XORG_MACROS_needed_major=`echo $XORG_MACROS_needed_version | sed 's/\..*$//'` - XORG_MACROS_needed_minor=`echo $XORG_MACROS_needed_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'` - { $as_echo "$as_me:$LINENO: checking if xorg-macros used to generate configure is at least ${XORG_MACROS_needed_major}.${XORG_MACROS_needed_minor}" >&5 -$as_echo_n "checking if xorg-macros used to generate configure is at least ${XORG_MACROS_needed_major}.${XORG_MACROS_needed_minor}... " >&6; } - XORG_MACROS_version=1.2.1 - XORG_MACROS_major=`echo $XORG_MACROS_version | sed 's/\..*$//'` - XORG_MACROS_minor=`echo $XORG_MACROS_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'` - if test $XORG_MACROS_major -ne $XORG_MACROS_needed_major ; then - { { $as_echo "$as_me:$LINENO: error: configure built with incompatible version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.x" >&5 -$as_echo "$as_me: error: configure built with incompatible version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.x" >&2;} - { (exit 1); exit 1; }; } - fi - if test $XORG_MACROS_minor -lt $XORG_MACROS_needed_minor ; then - { { $as_echo "$as_me:$LINENO: error: configure built with too old of a version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.${XORG_MACROS_minor}.0 or newer" >&5 -$as_echo "$as_me: error: configure built with too old of a version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.${XORG_MACROS_minor}.0 or newer" >&2;} - { (exit 1); exit 1; }; } - fi - { $as_echo "$as_me:$LINENO: result: yes, $XORG_MACROS_version" >&5 -$as_echo "yes, $XORG_MACROS_version" >&6; } + + + + + + + + @@ -2396,7 +2392,7 @@ fi # Define the identity of the package. PACKAGE='xf86-video-siliconmotion' - VERSION='1.7.1' + VERSION='1.7.3' cat >>confdefs.h <<_ACEOF @@ -4455,7 +4451,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 4458 "configure"' > conftest.$ac_ext + echo '#line 4454 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7563,11 +7559,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7566: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7562: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7570: \$? = $ac_status" >&5 + echo "$as_me:7566: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7853,11 +7849,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7856: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7852: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7860: \$? = $ac_status" >&5 + echo "$as_me:7856: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7957,11 +7953,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7960: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7956: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7964: \$? = $ac_status" >&5 + echo "$as_me:7960: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10357,7 +10353,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<EOF -#line 10360 "configure" +#line 10356 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10457,7 +10453,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<EOF -#line 10460 "configure" +#line 10456 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12866,11 +12862,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12869: $lt_compile\"" >&5) + (eval echo "\"\$as_me:12865: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:12873: \$? = $ac_status" >&5 + echo "$as_me:12869: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -12970,11 +12966,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12973: $lt_compile\"" >&5) + (eval echo "\"\$as_me:12969: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:12977: \$? = $ac_status" >&5 + echo "$as_me:12973: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -14553,11 +14549,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14556: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14552: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:14560: \$? = $ac_status" >&5 + echo "$as_me:14556: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -14657,11 +14653,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14660: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14656: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14664: \$? = $ac_status" >&5 + echo "$as_me:14660: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -16872,11 +16868,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16875: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16871: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16879: \$? = $ac_status" >&5 + echo "$as_me:16875: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -17162,11 +17158,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17165: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17161: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:17169: \$? = $ac_status" >&5 + echo "$as_me:17165: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -17266,11 +17262,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17269: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17265: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:17273: \$? = $ac_status" >&5 + echo "$as_me:17269: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -21232,6 +21228,91 @@ else $as_echo "yes" >&6; } : fi + +pkg_failed=no +{ $as_echo "$as_me:$LINENO: checking for XEXT" >&5 +$as_echo_n "checking for XEXT... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$XEXT_CFLAGS"; then + pkg_cv_XEXT_CFLAGS="$XEXT_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xextproto >= 7.0.99.1\"") >&5 + ($PKG_CONFIG --exists --print-errors "xextproto >= 7.0.99.1") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_XEXT_CFLAGS=`$PKG_CONFIG --cflags "xextproto >= 7.0.99.1" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$XEXT_LIBS"; then + pkg_cv_XEXT_LIBS="$XEXT_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xextproto >= 7.0.99.1\"") >&5 + ($PKG_CONFIG --exists --print-errors "xextproto >= 7.0.99.1") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_XEXT_LIBS=`$PKG_CONFIG --libs "xextproto >= 7.0.99.1" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + XEXT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xextproto >= 7.0.99.1"` + else + XEXT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xextproto >= 7.0.99.1"` + fi + # Put the nasty error message in config.log where it belongs + echo "$XEXT_PKG_ERRORS" >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + HAVE_XEXTPROTO_71="no" +elif test $pkg_failed = untried; then + HAVE_XEXTPROTO_71="no" +else + XEXT_CFLAGS=$pkg_cv_XEXT_CFLAGS + XEXT_LIBS=$pkg_cv_XEXT_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_XEXTPROTO_71="yes"; +cat >>confdefs.h <<\_ACEOF +#define HAVE_XEXTPROTO_71 1 +_ACEOF + +fi + + +if test "$HAVE_XEXTPROTO_71" = "yes" ; then + HAVE_XEXTPROTO_71_TRUE= + HAVE_XEXTPROTO_71_FALSE='#' +else + HAVE_XEXTPROTO_71_TRUE='#' + HAVE_XEXTPROTO_71_FALSE= +fi + sdkdir=$(pkg-config --variable=sdkdir xorg-server) # Checks for libraries. @@ -21680,9 +21761,9 @@ if test "x$GCC" = xyes ; then CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ -Wmissing-declarations -Wnested-externs -fno-strict-aliasing \ -Wbad-function-cast" - case `gcc -dumpversion` in + case `$CC -dumpversion` in 3.4.* | 4.*) - CWARNFLAGS+=" -Wold-style-definition -Wdeclaration-after-statement" + CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement" ;; esac else @@ -21751,6 +21832,7 @@ fi fi + XORG_CFLAGS="$CWARNFLAGS $XORG_CFLAGS" @@ -22011,6 +22093,13 @@ $as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${HAVE_XEXTPROTO_71_TRUE}" && test -z "${HAVE_XEXTPROTO_71_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_XEXTPROTO_71\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"HAVE_XEXTPROTO_71\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${XSERVER_LIBPCIACCESS_TRUE}" && test -z "${XSERVER_LIBPCIACCESS_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"XSERVER_LIBPCIACCESS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -22347,7 +22436,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xf86-video-siliconmotion $as_me 1.7.1, which was +This file was extended by xf86-video-siliconmotion $as_me 1.7.3, which was generated by GNU Autoconf 2.62. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -22400,7 +22489,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -xf86-video-siliconmotion config.status 1.7.1 +xf86-video-siliconmotion config.status 1.7.3 configured by $0, generated by GNU Autoconf 2.62, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/driver/xf86-video-siliconmotion/configure.ac b/driver/xf86-video-siliconmotion/configure.ac index da129c889..e46186153 100644 --- a/driver/xf86-video-siliconmotion/configure.ac +++ b/driver/xf86-video-siliconmotion/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-siliconmotion], - 1.7.1, + 1.7.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-siliconmotion) @@ -60,6 +60,10 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) # Checks for pkg-config packages PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 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" ]) sdkdir=$(pkg-config --variable=sdkdir xorg-server) # Checks for libraries. diff --git a/driver/xf86-video-siliconmotion/man/Makefile.in b/driver/xf86-video-siliconmotion/man/Makefile.in index fb77c101f..3d1da4df4 100644 --- a/driver/xf86-video-siliconmotion/man/Makefile.in +++ b/driver/xf86-video-siliconmotion/man/Makefile.in @@ -125,6 +125,8 @@ FFLAGS = @FFLAGS@ 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@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -161,6 +163,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ +XEXT_CFLAGS = @XEXT_CFLAGS@ +XEXT_LIBS = @XEXT_LIBS@ XMODES_FALSE = @XMODES_FALSE@ XMODES_TRUE = @XMODES_TRUE@ XORG_CFLAGS = @XORG_CFLAGS@ diff --git a/driver/xf86-video-siliconmotion/src/Makefile.in b/driver/xf86-video-siliconmotion/src/Makefile.in index 7ea11339e..28bc0fcf4 100644 --- a/driver/xf86-video-siliconmotion/src/Makefile.in +++ b/driver/xf86-video-siliconmotion/src/Makefile.in @@ -138,6 +138,8 @@ FFLAGS = @FFLAGS@ 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@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -174,6 +176,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ +XEXT_CFLAGS = @XEXT_CFLAGS@ +XEXT_LIBS = @XEXT_LIBS@ XMODES_FALSE = @XMODES_FALSE@ XMODES_TRUE = @XMODES_TRUE@ XORG_CFLAGS = @XORG_CFLAGS@ diff --git a/driver/xf86-video-siliconmotion/src/smi_501.c b/driver/xf86-video-siliconmotion/src/smi_501.c index a392eb069..a605e0d52 100644 --- a/driver/xf86-video-siliconmotion/src/smi_501.c +++ b/driver/xf86-video-siliconmotion/src/smi_501.c @@ -35,8 +35,13 @@ authorization from The XFree86 Project or Silicon Motion. #include "smi_501.h" #include "regsmi.h" +#ifdef HAVE_XEXTPROTO_71 +#include <X11/extensions/dpmsconst.h> +#else #define DPMS_SERVER #include <X11/extensions/dpms.h> +#endif + /* Want to see register dumps for now */ #undef VERBLEV diff --git a/driver/xf86-video-siliconmotion/src/smi_driver.c b/driver/xf86-video-siliconmotion/src/smi_driver.c index 72196127e..391efbcb6 100644 --- a/driver/xf86-video-siliconmotion/src/smi_driver.c +++ b/driver/xf86-video-siliconmotion/src/smi_driver.c @@ -31,20 +31,29 @@ authorization from The XFree86 Project or Silicon Motion. #include "config.h" #endif -#include "xf86Resources.h" -#include "xf86RAC.h" +#include "xf86.h" #include "xf86DDC.h" #include "xf86int10.h" #include "vbe.h" +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 +#include "xf86Resources.h" +#include "xf86RAC.h" +#endif + #include "smi.h" #include "smi_501.h" #include "smilynx.h" #include "smi_crtc.h" #include "globals.h" +#ifdef HAVE_XEXTPROTO_71 +#include <X11/extensions/dpmsconst.h> +#else #define DPMS_SERVER #include <X11/extensions/dpms.h> +#endif + /* * Internals @@ -190,104 +199,6 @@ static const OptionInfoRec SMIOptions[] = { -1, NULL, OPTV_NONE, {0}, FALSE } }; -/* - * Lists of symbols that may/may not be required by this driver. - * This allows the loader to know which ones to issue warnings for. - * - * Note that vgahwSymbols and xaaSymbols are referenced outside the - * XFree86LOADER define in later code, so are defined outside of that - * define here also. - */ - -static const char *vgahwSymbols[] = -{ - "vgaHWCopyReg", - "vgaHWGetHWRec", - "vgaHWGetIOBase", - "vgaHWGetIndex", - "vgaHWInit", - "vgaHWLock", - "vgaHWMapMem", - "vgaHWProtect", - "vgaHWRestore", - "vgaHWSave", - "vgaHWSaveScreen", - "vgaHWSetMmioFuncs", - "vgaHWSetStdFuncs", - "vgaHWUnmapMem", - "vgaHWddc1SetSpeedWeak", - NULL -}; - -static const char *xaaSymbols[] = -{ - "XAAGetCopyROP", - "XAACreateInfoRec", - "XAADestroyInfoRec", - "XAAGetFallbackOps", - "XAAInit", - "XAAGetPatternROP", - NULL -}; - -static const char *exaSymbols[] = -{ - "exaDriverAlloc", - "exaDriverInit", - "exaDriverFini", - "exaOffscreenAlloc", - "exaOffscreenFree", - "exaGetPixmapPitch", - "exaGetPixmapOffset", - "exaGetPixmapSize", - NULL -}; - -static const char *ddcSymbols[] = -{ - "xf86PrintEDID", - "xf86DoEDID_DDC1", - "xf86DoEDID_DDC2", - "xf86SetDDCproperties", - NULL -}; - -static const char *i2cSymbols[] = -{ - "xf86CreateI2CBusRec", - "xf86CreateI2CDevRec", - "xf86DestroyI2CBusRec", - "xf86DestroyI2CDevRec", - "xf86I2CBusInit", - "xf86I2CDevInit", - "xf86I2CReadBytes", - "xf86I2CWriteByte", - NULL -}; - -static const char *int10Symbols[] = -{ - "xf86ExecX86int10", - "xf86FreeInt10", - "xf86InitInt10", - NULL -}; - -static const char *vbeSymbols[] = -{ - "VBEInit", - "vbeDoEDID", - "vbeFree", - NULL -}; - -static const char *fbSymbols[] = -{ - "fbPictureInit", - "fbScreenInit", - NULL -}; - #ifdef XFree86LOADER static MODULESETUPPROTO(siliconmotionSetup); @@ -330,19 +241,6 @@ siliconmotionSetup(pointer module, pointer opts, int *errmaj, int *errmin) xf86AddDriver(&SILICONMOTION, module, 0); /* - * Modules that this driver always requires can be loaded here - * by calling LoadSubModule(). - */ - - /* - * Tell the loader about symbols from other modules that this module - * might refer to. - */ - LoaderRefSymLists(vgahwSymbols, fbSymbols, xaaSymbols, exaSymbols, - ddcSymbols, i2cSymbols, int10Symbols, vbeSymbols, - NULL); - - /* * The return value must be non-NULL on success even though there * is no TearDownProc. */ @@ -522,7 +420,7 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) LEAVE(TRUE); } - if (pEnt->location.type != BUS_PCI || pEnt->resources) { + if (pEnt->location.type != BUS_PCI) { xfree(pEnt); SMI_FreeRec(pScrn); LEAVE(FALSE); @@ -537,8 +435,6 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) if (!xf86LoadSubModule(pScrn, "vgahw")) LEAVE(FALSE); - xf86LoaderReqSymLists(vgahwSymbols, NULL); - /* * Allocate a vgaHWRec */ @@ -578,6 +474,8 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) xf86PrintDepthBpp(pScrn); + pSmi->Bpp = pScrn->bitsPerPixel >> 3; + /* * This must happen after pScrn->display has been set because * xf86SetWeight references it. @@ -719,12 +617,10 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) if (pSmi->useBIOS) { if (xf86LoadSubModule(pScrn,"int10")) { - xf86LoaderReqSymLists(int10Symbols,NULL); pSmi->pInt10 = xf86InitInt10(pEnt->index); } if (pSmi->pInt10 && xf86LoadSubModule(pScrn, "vbe")) { - xf86LoaderReqSymLists(vbeSymbols, NULL); pSmi->pVbe = VBEInit(pSmi->pInt10, pEnt->index); } @@ -734,10 +630,9 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) } } +#ifndef XSERVER_LIBPCIACCESS xf86RegisterResources(pEnt->index, NULL, ResExclusive); -/* xf86SetOperatingState(resVgaIo, pEnt->index, ResUnusedOpr); */ -/* xf86SetOperatingState(resVgaMem, pEnt->index, ResDisableOpr); */ - +#endif /* * Set the Chipset and ChipRev, allowing config file entries to * override. @@ -888,12 +783,9 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) if(!IS_MSOC(pSmi)){ if (xf86LoadSubModule(pScrn, "i2c")) { - xf86LoaderReqSymLists(i2cSymbols, NULL); SMI_I2CInit(pScrn); } - if (xf86LoadSubModule(pScrn, "ddc")) { - xf86LoaderReqSymLists(ddcSymbols, NULL); - } + xf86LoadSubModule(pScrn, "ddc"); } /* @@ -937,9 +829,27 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) /* Only allow growing the screen dimensions if EXA is being used */ if (!xf86InitialConfiguration (pScrn, !pSmi->NoAccel && pSmi->useEXA)){ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes found\n"); + + SMI_EnableVideo(pScrn); + SMI_UnmapMem(pScrn); LEAVE(FALSE); } + /* Ensure that the framebuffer size just set fits in video memory. */ + { + int aligned_pitch = (pScrn->virtualX*pSmi->Bpp + 15) & ~15; + + if(aligned_pitch * pScrn->virtualY > pSmi->FBReserved){ + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Not enough video memory " + "for the configured screen size (%dx%d) and color depth.\n", + pScrn->virtualX, pScrn->virtualY); + + SMI_EnableVideo(pScrn); + SMI_UnmapMem(pScrn); + LEAVE(FALSE); + } + } + SMI_EnableVideo(pScrn); SMI_UnmapMem(pScrn); @@ -961,8 +871,6 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) LEAVE(FALSE); } - xf86LoaderReqSymLists(fbSymbols, NULL); - /* Load XAA or EXA if needed */ if (!pSmi->NoAccel) { if (!pSmi->useEXA) { @@ -970,7 +878,6 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) SMI_FreeRec(pScrn); LEAVE(FALSE); } - xf86LoaderReqSymLists(xaaSymbols, NULL); } else { XF86ModReqInfo req; int errmaj, errmin; @@ -985,7 +892,6 @@ SMI_PreInit(ScrnInfoPtr pScrn, int flags) SMI_FreeRec(pScrn); LEAVE(FALSE); } - xf86LoaderReqSymLists(exaSymbols, NULL); } } @@ -1230,10 +1136,21 @@ SMI_DetectMCLK(ScrnInfoPtr pScrn) /* The SM712 can be safely clocked up to 157MHz, according to Silicon Motion engineers. */ pSmi->MCLK = 157000; - }else - pSmi->MCLK = 0; - pSmi->MXCLK = 0; + } else if (IS_MSOC(pSmi)) { + /* Set some sane defaults for the clock settings if we are on a + SM502 and it's likely to be uninitialized. */ + + if (!xf86IsPrimaryPci(pSmi->PciInfo) && + (READ_SCR(pSmi, DEVICE_ID) & 0xFF) >= 0xC0) { + pSmi->MCLK = 112000; + pSmi->MXCLK = 144000; + } + + } else { + pSmi->MCLK = 0; + pSmi->MXCLK = 0; + } /* MCLK from user settings */ if (xf86GetOptValFreq(pSmi->Options, OPTION_MCLK, OPTUNITS_MHZ, &real)) { @@ -1423,6 +1340,55 @@ SMI_MapMmio(ScrnInfoPtr pScrn) return (TRUE); } +/* HACK - In some cases the BIOS hasn't filled in the "scratchpad + registers" (SR71) with the right amount of memory installed (e.g. MIPS + platform). Probe it manually. */ +static unsigned long +SMI_ProbeMem(ScrnInfoPtr pScrn, unsigned long mem_skip, unsigned long mem_max) +{ + SMIPtr pSmi = SMIPTR(pScrn); + unsigned long mem_probe = 1024*1024; + unsigned long aperture_base; + void* mem; + + ENTER(); + + aperture_base = PCI_REGION_BASE(pSmi->PciInfo, 0, REGION_MEM) + mem_skip; + mem_max = min(mem_max , PCI_REGION_SIZE(pSmi->PciInfo, 0) - mem_skip); + +#ifndef XSERVER_LIBPCIACCESS + mem = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_MMIO, pSmi->PciTag, + aperture_base, mem_max); + + if(!mem) + LEAVE(0); +#else + if(pci_device_map_range(pSmi->PciInfo, aperture_base, mem_max, + PCI_DEV_MAP_FLAG_WRITABLE, &mem)) + LEAVE(0); +#endif + + while(mem_probe <= mem_max){ + MMIO_OUT32(mem, mem_probe-4, 0x55555555); + if(MMIO_IN32(mem, mem_probe-4) != 0x55555555) + break; + + MMIO_OUT32(mem, mem_probe-4, 0xAAAAAAAA); + if(MMIO_IN32(mem, mem_probe-4) != 0xAAAAAAAA) + break; + + mem_probe <<= 1; + } + +#ifndef XSERVER_LIBPCIACCESS + xf86UnMapVidMem(pScrn->scrnIndex, mem, mem_max); +#else + pci_device_unmap_range(pSmi->PciInfo, mem, mem_max); +#endif + + LEAVE(mem_probe >> 1); +} + static Bool SMI_DetectMem(ScrnInfoPtr pScrn) { @@ -1452,6 +1418,9 @@ SMI_DetectMem(ScrnInfoPtr pScrn) pSmi->videoRAMKBytes = lynx3d_table[config >> 6] * 1024 + 512; break; + case SMI_LYNXEMplus: + pSmi->videoRAMKBytes = SMI_ProbeMem(pScrn, 0, 0x400000) / 1024; + break; case SMI_LYNX3DM: pSmi->videoRAMKBytes = lynx3dm_table[config >> 6] * 1024; break; @@ -1672,7 +1641,6 @@ SMI_ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) pScrn->vtSema = TRUE; pScrn->pScreen = pScreen; - pSmi->Bpp = pScrn->bitsPerPixel >> 3; pScrn->displayWidth = ((pScrn->virtualX * pSmi->Bpp + 15) & ~15) / pSmi->Bpp; pSmi->fbArea = NULL; diff --git a/driver/xf86-video-siliconmotion/src/smi_exa.c b/driver/xf86-video-siliconmotion/src/smi_exa.c index 1b6d42fad..51039240d 100644 --- a/driver/xf86-video-siliconmotion/src/smi_exa.c +++ b/driver/xf86-video-siliconmotion/src/smi_exa.c @@ -78,9 +78,6 @@ static void SMI_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height); static void -SMI501_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, - int dstX, int dstY, int width, int height); -static void SMI730_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height); static void @@ -169,12 +166,11 @@ SMI_EXAInit(ScreenPtr pScreen) pSmi->EXADriverPtr->CheckComposite = SMI_CheckComposite; pSmi->EXADriverPtr->PrepareComposite = SMI_PrepareComposite; - if (IS_MSOC(pSmi)) - pSmi->EXADriverPtr->Composite = SMI501_Composite; - else if (pSmi->Chipset == SMI_COUGAR3DR) + if (IS_MSOC(pSmi) || pSmi->Chipset == SMI_COUGAR3DR) pSmi->EXADriverPtr->Composite = SMI730_Composite; else pSmi->EXADriverPtr->Composite = SMI_Composite; + pSmi->EXADriverPtr->DoneComposite = SMI_DoneComposite; if(!exaDriverInit(pScreen, pSmi->EXADriverPtr)) { @@ -711,38 +707,22 @@ SMI_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, LEAVE(); } -#define MSOC_ROTBLTWIDTH 8 -static void -SMI501_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, - int dstX, int dstY, int width, int height) -{ - ENTER(); - - /* SMI501 cannot rotate-blt more than 32 bytes. - * Based on smi's sample smi_shadow.c */ - while (height > MSOC_ROTBLTWIDTH) { - SMI_Composite(pDst, srcX, srcY, maskX, maskY, dstX, dstY, - width, MSOC_ROTBLTWIDTH); - srcY += MSOC_ROTBLTWIDTH; - dstY += MSOC_ROTBLTWIDTH; - height -= MSOC_ROTBLTWIDTH; - } - SMI_Composite(pDst, srcX, srcY, maskX, maskY, dstX, dstY, width, height); - - LEAVE(); -} - static void SMI730_Composite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height) { + ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; + SMIPtr pSmi = SMIPTR(pScrn); int maxPixels; ENTER(); - /* SM731 cannot rotate-blt more than a certain number of pixels - (based on a calculation from the Windows driver source */ - maxPixels = 1280 / pDst->drawable.bitsPerPixel; + /* Both SM501 and SM731 cannot rotate-blt more than a certain + number of pixels. */ + if(IS_MSOC(pSmi)) + maxPixels = 128 / pDst->drawable.bitsPerPixel; + else + maxPixels = 1280 / pDst->drawable.bitsPerPixel; while(height>0){ SMI_Composite(pDst, srcX, srcY, maskX, maskY, dstX, dstY, width, min(height, maxPixels)); diff --git a/driver/xf86-video-siliconmotion/src/smilynx_crtc.c b/driver/xf86-video-siliconmotion/src/smilynx_crtc.c index a8c0a037c..fb7183cb8 100644 --- a/driver/xf86-video-siliconmotion/src/smilynx_crtc.c +++ b/driver/xf86-video-siliconmotion/src/smilynx_crtc.c @@ -241,7 +241,7 @@ SMILynx_CrtcModeFixup(xf86CrtcPtr crtc, /* Adjust the pixel clock in case it is near one of the known stable frequencies (KHz) */ int stable_clocks[] = {46534,}; - int epsilon = 2000; + int epsilon = 3000; int i; for (i=0; i < sizeof(stable_clocks)/sizeof(int); i++) { |