Update to xf86-video-siliconmotion 1.7.3

This commit is contained in:
matthieu 2009-11-22 17:53:03 +00:00
parent 4122cf8c50
commit 61ff9ac41f
14 changed files with 523 additions and 257 deletions

View File

@ -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.

View File

@ -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

View File

@ -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@

View File

@ -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
----------------------------------------------------------------------------

View File

@ -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=""])

View File

@ -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

View File

@ -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'`\\"

View File

@ -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.

View File

@ -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@

View File

@ -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@

View File

@ -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

View File

@ -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);
@ -329,19 +240,6 @@ siliconmotionSetup(pointer module, pointer opts, int *errmaj, int *errmin)
setupDone = TRUE;
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;

View File

@ -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));

View File

@ -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++) {