Update to xf86-video-mga 1.4.12

This commit is contained in:
matthieu 2010-05-24 09:36:11 +00:00
parent 9e00008f79
commit bd38ae49de
17 changed files with 2848 additions and 1932 deletions

View File

@ -1,3 +1,106 @@
commit df6014303b6933ae7c4bcbe00762180dfd692598
Author: Yannick Heneault <yheneaul@matrox.com>
Date: Wed Mar 24 10:05:09 2010 -0400
Changed probe_size value to detect up to 16Megs of video ram on G200eV.
commit 3f215b64889bcc7a656fc36db1eed8276b401a95
Author: Yannick Heneault <yheneaul@matrox.com>
Date: Thu Feb 11 11:37:36 2010 -0500
Added support for G200EH
commit 9993ea7479d15daf7cca5aad55d51acd8c19fee1
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date: Fri Jan 15 15:52:05 2010 -0800
Update Sun license notices to current X.Org standard form
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
commit feed5306f48b8ebe4ed8be7d3ae63051ae972968
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Dec 15 21:47:12 2009 -0500
configure.ac: use backticks rather than $() for cmd subs
Use "$PKG_CONFIG" rather than hard coded "pkg-config"
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
Acked-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 896e4e5a34ee20a289934f9fe42c888bd9bb140c
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Mon Nov 23 09:25:05 2009 -0500
Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES
Now that the INSTALL file is generated.
Allows running make maintainer-clean.
commit f0c388a26db5f24b9c3846b73a12197483b440ca
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Oct 28 14:41:41 2009 -0400
INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206
Automake 'foreign' option is specified in configure.ac.
Remove from Makefile.am
commit cd8434d86de8507e23405282acf80a9d02313134
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Oct 28 14:09:09 2009 -0400
INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206
Add missing INSTALL file. Use standard GNU file on building tarball
README may have been updated
Remove AUTHORS file as it is empty and no content available yet.
Remove NEWS file as it is empty and no content available yet.
commit 2dc2cca0da1d007ea4bc962f2a298df98560268a
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Mon Oct 26 12:54:21 2009 -0400
Several driver modules do not have a ChangeLog target in Makefile.am #23814
The git generated ChangeLog replaces the hand written one.
Update configure.ac to xorg-macros level 1.3.
Use XORG_DEFAULT_OPTIONS which replaces four XORG_* macros
Update Makefile.am to add ChangeLog target if missing
Remove ChangeLog from EXTRA_DIST or *CLEAN variables
This is a pre-req for the INSTALL_CMD
commit 7315b5a5b377810b8e11daf6b16e619f47cbde40
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Oct 22 12:34:17 2009 -0400
.gitignore: use common defaults with custom section # 24239
Using common defaults will reduce errors and maintenance.
Only the very small or inexistent custom section need periodic maintenance
when the structure of the component changes. Do not edit defaults.
commit 5d4144e6c2912292c3552a45e4a0a3c127cad013
Author: Yannick Heneault <yheneaul@matrox.com>
Date: Tue Nov 10 09:21:24 2009 -0500
Removed DDC1 support for G200eW.
commit 860d42232f7fa18805334746e7e9415c4ae50aa3
Author: Yannick Heneault <yheneaul@matrox.com>
Date: Wed Aug 19 11:01:39 2009 -0400
updated G200eW PLL programming sequence.
commit 319bba2b759ec64287935e2fb16491f75a3169af
Author: Dave Airlie <airlied@redhat.com>
Date: Thu Jul 30 12:04:28 2009 +1000
mga: bump for release 1.4.11
commit e29477ef4d4ae50c39ef608ad0e2344c5c68ed40
Author: Dave Airlie <airlied@redhat.com>
Date: Tue Jul 28 15:22:40 2009 +1000
@ -400,7 +503,7 @@ Date: Wed Sep 5 18:06:57 2007 +0200
Bumped version to 1.4.7.
commit 6fde3fd6d34e7252ee16422b19896d71b1622039
Merge: 4bfc1e1... 923176f...
Merge: 4bfc1e1 923176f
Author: James Cloos <cloos@jhcloos.com>
Date: Mon Sep 3 06:07:32 2007 -0400
@ -442,7 +545,7 @@ Date: Mon Aug 20 15:36:57 2007 -0700
Fix compile error introduced by merge.
commit 707d3adbc7d9ee918d6c70083f51ad851ce68852
Merge: 741c50c... 489e007...
Merge: 741c50c 489e007
Author: Ian Romanick <idr@us.ibm.com>
Date: Mon Aug 20 15:20:39 2007 -0700
@ -594,7 +697,7 @@ Date: Mon Jan 15 11:42:07 2007 -0800
Pass the correct pointer to pci_device_cfg_write_bits.
commit d5b4dbe749e860e4349607c57467f8085dc28c33
Merge: cb103a1... 876657e...
Merge: cb103a1 876657e
Author: Ian Romanick <idr@us.ibm.com>
Date: Tue Jan 9 16:04:06 2007 -0800
@ -628,7 +731,7 @@ Date: Tue Dec 26 00:28:55 2006 +0100
Bug #9448: Actually write the C2STARTADD0 register.
commit fd91b601ec4dd48cfb6ea5495b595fec6d932ab5
Merge: f84b138... 0ce8f52...
Merge: f84b138 0ce8f52
Author: Daniel Stone <daniel@fooishbar.org>
Date: Sun Dec 24 06:32:53 2006 +0200
@ -660,14 +763,14 @@ Date: Sat Dec 16 01:44:49 2006 +0200
bump to 1.4.6
commit cb103a18067adb3256c0b791255ce8435ff57e06
Merge: d0e0362... 4bcfca9...
Merge: d0e0362 4bcfca9
Author: Ian Romanick <idr@us.ibm.com>
Date: Mon Dec 11 15:06:19 2006 -0800
Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/driver/xf86-video-mga into pci-rework
commit d0e03622811fd94c830c0b5233ff505392c0d331
Merge: 8fee907... 1dd6e69...
Merge: 8fee907 1dd6e69
Author: Ian Romanick <idr@us.ibm.com>
Date: Mon Dec 11 15:06:03 2006 -0800
@ -820,7 +923,7 @@ Date: Fri Oct 13 18:33:39 2006 -0400
Bump to 1.4.3
commit 8fee907cac7e5924630e3648bfb72ad9bd021ea8
Merge: 7cecee1... 2fc0ebf...
Merge: 7cecee1 2fc0ebf
Author: Ian Romanick <idr@us.ibm.com>
Date: Tue Oct 10 11:43:52 2006 -0700
@ -853,7 +956,7 @@ Date: Wed Sep 20 20:51:36 2006 +0200
Added a FIXME on BLK support for GXcopy instead.
commit ecc155e27b6566196e56de241ae81266e03dc90e
Merge: e7b36c6... 2e73c29...
Merge: e7b36c6 2e73c29
Author: Tilman Sauerbeck <tilman@code-monkey.de>
Date: Wed Sep 20 20:43:55 2006 +0200
@ -1212,7 +1315,7 @@ Date: Thu Aug 10 19:49:22 2006 +0200
by myself.
commit 7cecee186c889902bed9b7fa042f0bd3cc0297ef
Merge: 160b1f7... bde5920...
Merge: 160b1f7 bde5920
Author: Ian Romanick <idr@umwelt.(none)>
Date: Thu Aug 10 10:19:55 2006 -0700
@ -1243,7 +1346,7 @@ Date: Tue Aug 8 16:59:15 2006 -0700
searching for it in MGAPreInit.
commit 068e3427cfdf3e3b5dc5c97872d5f52f47ff0d68
Merge: 95e0722... 7170de8...
Merge: 95e0722 7170de8
Author: Ian Romanick <idr@umwelt.(none)>
Date: Wed Jul 26 11:47:32 2006 -0700

View File

@ -0,0 +1,291 @@
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
6. Often, you can also type `make uninstall' to remove the installed
files again.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--prefix=DIR'
Use DIR as the installation prefix. *Note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.

View File

@ -18,15 +18,17 @@
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src man util
MAINTAINERCLEANFILES = ChangeLog INSTALL
CLEANFILES = ChangeLog
EXTRA_DIST = README_HALLIB mga_PInS.txt ChangeLog
EXTRA_DIST = README_HALLIB mga_PInS.txt
.PHONY: ChangeLog
.PHONY: ChangeLog INSTALL
INSTALL:
$(INSTALL_CMD)
ChangeLog:
$(CHANGELOG_CMD)
dist-hook: ChangeLog
dist-hook: ChangeLog INSTALL

View File

@ -57,7 +57,7 @@ build_triplet = @build@
host_triplet = @host@
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure COPYING ChangeLog config.guess \
$(top_srcdir)/configure COPYING ChangeLog INSTALL config.guess \
config.sub depcomp install-sh ltmain.sh missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@ -97,6 +97,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
@ -110,6 +111,7 @@ CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
@ -136,6 +138,7 @@ FFLAGS = @FFLAGS@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@ -228,10 +231,9 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src man util
CLEANFILES = ChangeLog
EXTRA_DIST = README_HALLIB mga_PInS.txt ChangeLog
MAINTAINERCLEANFILES = ChangeLog INSTALL
EXTRA_DIST = README_HALLIB mga_PInS.txt
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
@ -595,7 +597,6 @@ install-strip:
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@ -603,6 +604,7 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
@ -671,12 +673,15 @@ uninstall-info: uninstall-info-recursive
tags tags-recursive uninstall uninstall-am uninstall-info-am
.PHONY: ChangeLog
.PHONY: ChangeLog INSTALL
INSTALL:
$(INSTALL_CMD)
ChangeLog:
$(CHANGELOG_CMD)
dist-hook: ChangeLog
dist-hook: ChangeLog INSTALL
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -7670,7 +7670,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what
# version you require.
m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.6.1])
m4_define([vers_have], [1.7.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,,
@ -7811,6 +7811,31 @@ AC_SUBST([DRIVER_MAN_DIR])
AC_SUBST([ADMIN_MAN_DIR])
]) # XORG_MANPAGE_SECTIONS
# XORG_CHECK_SGML_DOCTOOLS
# ------------------------
# Minimum version: 1.7.0
#
# Defines the variable XORG_SGML_PATH containing the location of X11/defs.ent
# provided by xorg-sgml-doctools, if installed.
AC_DEFUN([XORG_CHECK_SGML_DOCTOOLS],[
AC_MSG_CHECKING([for X.Org SGML entities])
XORG_SGML_PATH=
PKG_CHECK_EXISTS([xorg-sgml-doctools],
[XORG_SGML_PATH=`$PKG_CONFIG --variable=sgmlrootdir xorg-sgml-doctools`],
[if test x"$cross_compiling" != x"yes" ; then
AC_CHECK_FILE([$prefix/share/sgml/X11/defs.ent],
[XORG_SGML_PATH=$prefix/share/sgml])
fi])
if test "x$XORG_SGML_PATH" != "x" ; then
AC_MSG_RESULT([$XORG_SGML_PATH])
else
AC_MSG_RESULT([no])
fi
AC_SUBST(XORG_SGML_PATH)
]) # XORG_CHECK_SGML_DOCTOOLS
# XORG_CHECK_LINUXDOC
# -------------------
# Minimum version: 1.0.0
@ -7820,23 +7845,14 @@ AC_SUBST([ADMIN_MAN_DIR])
# Whether or not the necessary tools and files are found can be checked
# with the AM_CONDITIONAL "BUILD_LINUXDOC"
AC_DEFUN([XORG_CHECK_LINUXDOC],[
if test x$XORG_SGML_PATH = x ; then
XORG_SGML_PATH=$prefix/share/sgml
fi
HAVE_DEFS_ENT=
if test x"$cross_compiling" = x"yes" ; then
HAVE_DEFS_ENT=no
else
AC_CHECK_FILE([$XORG_SGML_PATH/X11/defs.ent], [HAVE_DEFS_ENT=yes])
fi
AC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS])
AC_PATH_PROG(LINUXDOC, linuxdoc)
AC_PATH_PROG(PS2PDF, ps2pdf)
AC_MSG_CHECKING([whether to build documentation])
if test x$HAVE_DEFS_ENT != x && test x$LINUXDOC != x ; then
if test x$XORG_SGML_PATH != x && test x$LINUXDOC != x ; then
BUILDDOC=yes
else
BUILDDOC=no
@ -7878,24 +7894,20 @@ AC_SUBST(MAKE_HTML)
# indicates whether the necessary tools and files are found and, if set,
# $(MAKE_XXX) blah.sgml will produce blah.xxx.
AC_DEFUN([XORG_CHECK_DOCBOOK],[
if test x$XORG_SGML_PATH = x ; then
XORG_SGML_PATH=$prefix/share/sgml
fi
HAVE_DEFS_ENT=
AC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS])
BUILDTXTDOC=no
BUILDPDFDOC=no
BUILDPSDOC=no
BUILDHTMLDOC=no
AC_CHECK_FILE([$XORG_SGML_PATH/X11/defs.ent], [HAVE_DEFS_ENT=yes])
AC_PATH_PROG(DOCBOOKPS, docbook2ps)
AC_PATH_PROG(DOCBOOKPDF, docbook2pdf)
AC_PATH_PROG(DOCBOOKHTML, docbook2html)
AC_PATH_PROG(DOCBOOKTXT, docbook2txt)
AC_MSG_CHECKING([whether to build text documentation])
if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKTXT != x &&
if test x$XORG_SGML_PATH != x && test x$DOCBOOKTXT != x &&
test x$BUILD_TXTDOC != xno; then
BUILDTXTDOC=yes
fi
@ -7903,7 +7915,7 @@ AM_CONDITIONAL(BUILD_TXTDOC, [test x$BUILDTXTDOC = xyes])
AC_MSG_RESULT([$BUILDTXTDOC])
AC_MSG_CHECKING([whether to build PDF documentation])
if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKPDF != x &&
if test x$XORG_SGML_PATH != x && test x$DOCBOOKPDF != x &&
test x$BUILD_PDFDOC != xno; then
BUILDPDFDOC=yes
fi
@ -7911,7 +7923,7 @@ AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes])
AC_MSG_RESULT([$BUILDPDFDOC])
AC_MSG_CHECKING([whether to build PostScript documentation])
if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKPS != x &&
if test x$XORG_SGML_PATH != x && test x$DOCBOOKPS != x &&
test x$BUILD_PSDOC != xno; then
BUILDPSDOC=yes
fi
@ -7919,7 +7931,7 @@ AM_CONDITIONAL(BUILD_PSDOC, [test x$BUILDPSDOC = xyes])
AC_MSG_RESULT([$BUILDPSDOC])
AC_MSG_CHECKING([whether to build HTML documentation])
if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKHTML != x &&
if test x$XORG_SGML_PATH != x && test x$DOCBOOKHTML != x &&
test x$BUILD_HTMLDOC != xno; then
BUILDHTMLDOC=yes
fi

File diff suppressed because it is too large Load Diff

View File

@ -23,22 +23,22 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-mga],
1.4.11,
1.4.12,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-mga)
XORG_RELEASE_VERSION
AC_CONFIG_SRCDIR([Makefile.am])
AM_CONFIG_HEADER([config.h])
# Require xorg-macros: XORG_RELEASE_VERSION XORG_CHANGELOG
m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])])
XORG_MACROS_VERSION(1.2)
# Require xorg-macros: XORG_DEFAULT_OPTIONS
m4_ifndef([XORG_MACROS_VERSION],
[m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
XORG_MACROS_VERSION(1.3)
XORG_DEFAULT_OPTIONS
AC_CONFIG_AUX_DIR(.)
AM_INIT_AUTOMAKE([dist-bzip2])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
@ -73,7 +73,7 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
# Checks for pkg-config packages
PKG_CHECK_MODULES(XORG, [xorg-server >= 1.1.0 xproto fontsproto $REQUIRED_MODULES])
sdkdir=$(pkg-config --variable=sdkdir xorg-server)
sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
# Checks for libraries.
@ -176,10 +176,6 @@ AC_SUBST([moduledir])
DRIVER_NAME=mga
AC_SUBST([DRIVER_NAME])
XORG_MANPAGE_SECTIONS
XORG_RELEASE_VERSION
XORG_CHANGELOG
AC_OUTPUT([
Makefile
src/Makefile

View File

@ -1,27 +1,24 @@
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation.
# 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 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 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the copyright holders shall
# not be used in advertising or otherwise to promote the sale, use or
# other dealings in this Software without prior written authorization
# from the copyright holders.
# 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.
#
drivermandir = $(DRIVER_MAN_DIR)

View File

@ -17,27 +17,24 @@
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation.
# 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 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 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the copyright holders shall
# not be used in advertising or otherwise to promote the sale, use or
# other dealings in this Software without prior written authorization
# from the copyright holders.
# 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.
#
srcdir = @srcdir@
@ -89,6 +86,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
@ -102,6 +100,7 @@ CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
@ -128,6 +127,7 @@ FFLAGS = @FFLAGS@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@ -255,9 +255,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu man/Makefile
$(AUTOMAKE) --foreign man/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \

View File

@ -124,6 +124,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
@ -137,6 +138,7 @@ CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
@ -163,6 +165,7 @@ FFLAGS = @FFLAGS@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@ -286,9 +289,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
$(AUTOMAKE) --foreign src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \

View File

@ -133,6 +133,10 @@ void MGAdbg_outreg32(ScrnInfoPtr, int,int, char*);
#define PCI_CHIP_MGAG200_EV_PCI 0x0530
#endif
#ifndef PCI_CHIP_MGAG200_EH_PCI
#define PCI_CHIP_MGAG200_EH_PCI 0x0533
#endif
/*
* Read/write to the DAC via MMIO
*/
@ -474,6 +478,7 @@ typedef struct {
int is_G200SE:1;
int is_G200WB:1;
int is_G200EV:1;
int is_G200EH:1;
int KVM;

View File

@ -210,6 +210,55 @@ MGAG200WBComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
#endif
}
static void
MGAG200EHComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
{
unsigned int ulComputedFo;
unsigned int ulFDelta;
unsigned int ulFPermitedDelta;
unsigned int ulFTmpDelta;
unsigned int ulTestP;
unsigned int ulTestM;
unsigned int ulTestN;
unsigned int ulVCOMax;
unsigned int ulVCOMin;
unsigned int ulPLLFreqRef;
ulVCOMax = 800000;
ulVCOMin = 400000;
ulPLLFreqRef = 33333;
ulFDelta = 0xFFFFFFFF;
/* Permited delta is 0.5% as VESA Specification */
ulFPermitedDelta = lFo * 5 / 1000;
/* Then we need to minimize the M while staying within 0.5% */
for (ulTestP = 16; ulTestP > 0; ulTestP>>= 1) {
if ((lFo * ulTestP) > ulVCOMax) continue;
if ((lFo * ulTestP) < ulVCOMin) continue;
for (ulTestM = 1; ulTestM <= 32; ulTestM++) {
for (ulTestN = 17; ulTestN <= 256; ulTestN++) {
ulComputedFo = (ulPLLFreqRef * ulTestN) / (ulTestM * ulTestP);
if (ulComputedFo > lFo)
ulFTmpDelta = ulComputedFo - lFo;
else
ulFTmpDelta = lFo - ulComputedFo;
if (ulFTmpDelta < ulFDelta) {
ulFDelta = ulFTmpDelta;
*M = (CARD8)(ulTestM - 1);
*N = (CARD8)(ulTestN - 1);
*P = (CARD8)(ulTestP - 1);
}
if ((lFo * ulTestP) >= 600000)
*P |= 0x80;
}
}
}
}
static void
MGAG200EVPIXPLLSET(ScrnInfoPtr pScrn, MGARegPtr mgaReg)
{
@ -309,10 +358,6 @@ MGAG200WBPIXPLLSET(ScrnInfoPtr pScrn, MGARegPtr mgaReg)
ucTempByte |= 0x3<<2; //select MGA pixel clock
OUTREG8(MGAREG_MEM_MISC_WRITE, ucTempByte);
// Set pixlock to 0
ucTempByte = inMGAdac(MGA1064_PIX_PLL_STAT);
outMGAdac(MGA1064_PIX_PLL_STAT, ucTempByte & ~0x40);
ucPixCtrl |= MGA1064_PIX_CLK_CTL_CLK_POW_DOWN | 0x80;
outMGAdac(MGA1064_PIX_CLK_CTL, ucPixCtrl);
@ -331,24 +376,13 @@ MGAG200WBPIXPLLSET(ScrnInfoPtr pScrn, MGARegPtr mgaReg)
usleep(50);
// Program the Pixel PLL Register
outMGAdac(MGA1064_WB_PIX_PLLC_M, mgaReg->PllM);
outMGAdac(MGA1064_WB_PIX_PLLC_N, mgaReg->PllN);
outMGAdac(MGA1064_WB_PIX_PLLC_M, mgaReg->PllM);
outMGAdac(MGA1064_WB_PIX_PLLC_P, mgaReg->PllP);
// Wait 50 us
usleep(50);
ucTempByte = INREG8(MGAREG_MEM_MISC_READ);
OUTREG8(MGAREG_MEM_MISC_WRITE, ucTempByte);
// Wait 50 us
usleep(50);
OUTREG8(MGAREG_MEM_MISC_WRITE, ucTempByte);
// Wait 500 us
usleep(500);
// Turning the PLL on
ucTempByte = inMGAdac(MGA1064_VREF_CTL);
ucTempByte |= 0x04;
@ -368,10 +402,6 @@ MGAG200WBPIXPLLSET(ScrnInfoPtr pScrn, MGARegPtr mgaReg)
ucTempByte |= MGA1064_REMHEADCTL_CLKSL_PLL;
outMGAdac(MGA1064_REMHEADCTL, ucTempByte);
// Set pixlock to 1
ucTempByte = inMGAdac(MGA1064_PIX_PLL_STAT);
outMGAdac(MGA1064_PIX_PLL_STAT, ucTempByte | 0x40);
// Reset dotclock rate bit.
OUTREG8(MGAREG_SEQ_INDEX, 1);
ucTempByte = INREG8(MGAREG_SEQ_DATA);
@ -502,6 +532,89 @@ MGAG200WBRestoreFromModeSwitch(ScrnInfoPtr pScrn)
outMGAdac(MGA1064_GEN_IO_DATA, ucTmpData);
}
static void
MGAG200EHPIXPLLSET(ScrnInfoPtr pScrn, MGARegPtr mgaReg)
{
MGAPtr pMga = MGAPTR(pScrn);
unsigned long ulFallBackCounter, ulLoopCount, ulLockCheckIterations = 0, ulTempCount, ulVCount;
unsigned char ucTempByte, ucPixCtrl, ucPLLLocked = FALSE;
unsigned char ucM;
unsigned char ucN;
unsigned char ucP;
unsigned char ucS;
while(ulLockCheckIterations <= 32 && ucPLLLocked == FALSE)
{
// Set pixclkdis to 1
ucPixCtrl = inMGAdac(MGA1064_PIX_CLK_CTL);
ucPixCtrl |= MGA1064_PIX_CLK_CTL_CLK_DIS;
outMGAdac(MGA1064_PIX_CLK_CTL, ucPixCtrl);
// Select PLL Set C
ucTempByte = INREG8(MGAREG_MEM_MISC_READ);
ucTempByte |= 0x3<<2; //select MGA pixel clock
OUTREG8(MGAREG_MEM_MISC_WRITE, ucTempByte);
ucPixCtrl |= MGA1064_PIX_CLK_CTL_CLK_POW_DOWN;
ucPixCtrl &= ~0x80;
outMGAdac(MGA1064_PIX_CLK_CTL, ucPixCtrl);
// Wait 500 us
usleep(500);
// Program the Pixel PLL Register
outMGAdac(MGA1064_EH_PIX_PLLC_N, mgaReg->PllN);
outMGAdac(MGA1064_EH_PIX_PLLC_M, mgaReg->PllM);
outMGAdac(MGA1064_EH_PIX_PLLC_P, mgaReg->PllP);
// Wait 500 us
usleep(500);
// Select the pixel PLL by setting pixclksel to 1
ucTempByte = inMGAdac(MGA1064_PIX_CLK_CTL);
ucTempByte &= ~MGA1064_PIX_CLK_CTL_SEL_MSK;
ucTempByte |= MGA1064_PIX_CLK_CTL_SEL_PLL;
outMGAdac(MGA1064_PIX_CLK_CTL, ucTempByte);
// Reset dotclock rate bit.
OUTREG8(MGAREG_SEQ_INDEX, 1);
ucTempByte = INREG8(MGAREG_SEQ_DATA);
OUTREG8(MGAREG_SEQ_DATA, ucTempByte & ~0x8);
// Set pixclkdis to 0 and pixplldn to 0
ucTempByte = inMGAdac(MGA1064_PIX_CLK_CTL);
ucTempByte &= ~MGA1064_PIX_CLK_CTL_CLK_DIS;
ucTempByte &= ~MGA1064_PIX_CLK_CTL_CLK_POW_DOWN;
outMGAdac(MGA1064_PIX_CLK_CTL, ucTempByte);
// Poll VCount. If it increments twice inside 150us,
// we assume that the PLL has locked.
ulLoopCount = 0;
ulVCount = INREG(MGAREG_VCOUNT);
while(ulLoopCount < 30 && ucPLLLocked == FALSE)
{
ulTempCount = INREG(MGAREG_VCOUNT);
if(ulTempCount < ulVCount)
{
ulVCount = 0;
}
if ((ucTempByte - ulVCount) > 2)
{
ucPLLLocked = TRUE;
}
else
{
usleep(5);
}
ulLoopCount++;
}
ulLockCheckIterations++;
}
}
/**
* Calculate the PLL settings (m, n, p, s).
*
@ -647,6 +760,12 @@ MGAGSetPCLK( ScrnInfoPtr pScrn, long f_out )
} else if (pMga->is_G200WB) {
MGAG200WBComputePLLParam(pScrn, f_out, &m, &n, &p);
pReg->PllM = m;
pReg->PllN = n;
pReg->PllP = p;
} else if (pMga->is_G200EH) {
MGAG200EHComputePLLParam(pScrn, f_out, &m, &n, &p);
pReg->PllM = m;
pReg->PllN = n;
pReg->PllP = p;
@ -847,6 +966,15 @@ MGAGInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
pReg->Option2 = 0x0000b000;
break;
case PCI_CHIP_MGAG200_EH_PCI:
pReg->DacRegs[MGA1064_MISC_CTL] =
MGA1064_MISC_CTL_VGA8 |
MGA1064_MISC_CTL_DAC_RAM_CS;
pReg->Option = 0x00000120;
pReg->Option2 = 0x0000b000;
break;
case PCI_CHIP_MGAG200:
case PCI_CHIP_MGAG200_PCI:
default:
@ -1196,7 +1324,7 @@ MGA_NOT_HAL(
if (pMga->is_G200SE
&& ((i == 0x2C) || (i == 0x2D) || (i == 0x2E)))
continue;
if ( (pMga->is_G200EV || pMga->is_G200WB) &&
if ( (pMga->is_G200EV || pMga->is_G200WB || pMga->is_G200EH) &&
(i >= 0x44) && (i <= 0x4E))
continue;
@ -1237,6 +1365,8 @@ MGA_NOT_HAL(
MGAG200EVPIXPLLSET(pScrn, mgaReg);
} else if (pMga->is_G200WB) {
MGAG200WBPIXPLLSET(pScrn, mgaReg);
} else if (pMga->is_G200EH) {
MGAG200EHPIXPLLSET(pScrn, mgaReg);
}
); /* MGA_NOT_HAL */
#ifdef USEMGAHAL
@ -1421,6 +1551,10 @@ MGAGSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, MGARegPtr mgaReg,
mgaReg->PllM = inMGAdac(MGA1064_EV_PIX_PLLC_M);
mgaReg->PllN = inMGAdac(MGA1064_EV_PIX_PLLC_N);
mgaReg->PllP = inMGAdac(MGA1064_EV_PIX_PLLC_P);
} else if (pMga->is_G200EH) {
mgaReg->PllM = inMGAdac(MGA1064_EH_PIX_PLLC_M);
mgaReg->PllN = inMGAdac(MGA1064_EH_PIX_PLLC_N);
mgaReg->PllP = inMGAdac(MGA1064_EH_PIX_PLLC_P);
}
mgaReg->PIXPLLCSaved = TRUE;
@ -1603,6 +1737,7 @@ static const struct mgag_i2c_private {
{ (1 << 0), (1 << 2) },
{ (1 << 4), (1 << 5) },
{ (1 << 0), (1 << 1) }, /* G200SE, G200EV and G200WB I2C bits */
{ (1 << 1), (1 << 0) }, /* G200EH I2C bits */
};
@ -1615,6 +1750,8 @@ MGAG_ddc1Read(ScrnInfoPtr pScrn)
if (pMga->is_G200SE || pMga->is_G200WB || pMga->is_G200EV)
i2c_index = 3;
else if (pMga->is_G200EH)
i2c_index = 4;
else
i2c_index = 0;
@ -1714,6 +1851,8 @@ MGAG_i2cInit(ScrnInfoPtr pScrn)
if (pMga->is_G200SE || pMga->is_G200WB || pMga->is_G200EV)
i2c_index = 3;
else if (pMga->is_G200EH)
i2c_index = 4;
else
i2c_index = 0;
@ -1837,9 +1976,14 @@ void MGAGSetupFuncs(ScrnInfoPtr pScrn)
pMga->Save = MGAGSave;
pMga->Restore = MGAGRestore;
pMga->ModeInit = MGAGInit;
if (!pMga->is_G200WB){
pMga->ddc1Read = MGAG_ddc1Read;
/* vgaHWddc1SetSpeed will only work if the card is in VGA mode */
pMga->DDC1SetSpeed = vgaHWddc1SetSpeedWeak();
} else {
pMga->ddc1Read = NULL;
pMga->DDC1SetSpeed = NULL;
}
pMga->i2cInit = MGAG_i2cInit;
}

View File

@ -369,7 +369,7 @@ static const struct mga_device_attributes attribs[] = {
MGA_HOST_PCI /* Host interface */
},
8192, 0x4000, /* Memory probe size & offset values */
16384, 0x4000, /* Memory probe size & offset values */
},
/* G200WB */
@ -388,6 +388,22 @@ static const struct mga_device_attributes attribs[] = {
8192, 0x4000, /* Memory probe size & offset values */
},
/* G200EH */
[14] = { 0, 1, 0, 0, 1, 0, 0, 0, new_BARs,
(TRANSC_SOLID_FILL | TWO_PASS_COLOR_EXPAND | USE_LINEAR_EXPANSION),
{
{ 50000, 230000 }, /* System VCO frequencies */
{ 50000, 203400 }, /* Pixel VCO frequencies */
{ 0, 0 }, /* Video VCO frequencies */
45000, /* Memory clock */
27050, /* PLL reference frequency */
0, /* Supports fast bitblt? */
MGA_HOST_PCI /* Host interface */
},
8192, 0x4000, /* Memory probe size & offset values */
},
};
#ifdef XSERVER_LIBPCIACCESS
@ -415,6 +431,8 @@ static const struct pci_id_match mga_device_match[] = {
MGA_DEVICE_MATCH( PCI_CHIP_MGAG200_WINBOND_PCI, 13 ),
MGA_DEVICE_MATCH( PCI_CHIP_MGAG200_EH_PCI, 14 ),
{ 0, 0, 0 },
};
#endif
@ -433,6 +451,7 @@ static SymTabRec MGAChipsets[] = {
{ PCI_CHIP_MGAG200_SE_B_PCI, "mgag200 SE B PCI" },
{ PCI_CHIP_MGAG200_EV_PCI, "mgag200 EV Maxim" },
{ PCI_CHIP_MGAG200_WINBOND_PCI, "mgag200 eW Nuvoton" },
{ PCI_CHIP_MGAG200_EH_PCI, "mgag200eH" },
{ PCI_CHIP_MGAG400, "mgag400" },
{ PCI_CHIP_MGAG550, "mgag550" },
{-1, NULL }
@ -455,6 +474,8 @@ static PciChipsets MGAPciChipsets[] = {
RES_SHARED_VGA },
{ PCI_CHIP_MGAG200_WINBOND_PCI, PCI_CHIP_MGAG200_WINBOND_PCI,
RES_SHARED_VGA },
{ PCI_CHIP_MGAG200_EH_PCI, PCI_CHIP_MGAG200_EH_PCI,
RES_SHARED_VGA },
{ PCI_CHIP_MGAG400, PCI_CHIP_MGAG400, RES_SHARED_VGA },
{ PCI_CHIP_MGAG550, PCI_CHIP_MGAG550, RES_SHARED_VGA },
{ -1, -1, RES_UNDEFINED }
@ -889,6 +910,10 @@ MGAProbe(DriverPtr drv, int flags)
attrib_no = 13;
break;
case PCI_CHIP_MGAG200_EH_PCI:
attrib_no = 14;
break;
default:
return FALSE;
}
@ -1112,7 +1137,7 @@ MGACountRam(ScrnInfoPtr pScrn)
OUTREG8(MGAREG_CRTCEXT_DATA, tmp | 0x80);
/* apparently the G200 IP don't have a BIOS to read */
if (pMga->is_G200SE || pMga->is_G200EV || pMga->is_G200WB) {
if (pMga->is_G200SE || pMga->is_G200EV || pMga->is_G200WB || pMga->is_G200EH) {
CARD32 MemoryAt0, MemoryAt1, Offset;
CARD32 FirstMemoryVal1, FirstMemoryVal2;
CARD32 SecondMemoryVal1, SecondMemoryVal2;
@ -1594,6 +1619,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
|| (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI);
pMga->is_G200EV = (pMga->Chipset == PCI_CHIP_MGAG200_EV_PCI);
pMga->is_G200WB = (pMga->Chipset == PCI_CHIP_MGAG200_WINBOND_PCI);
pMga->is_G200EH = (pMga->Chipset == PCI_CHIP_MGAG200_EH_PCI);
#ifdef USEMGAHAL
if (pMga->chip_attribs->HAL_chipset) {
@ -2115,6 +2141,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
case PCI_CHIP_MGAG200_SE_B_PCI:
case PCI_CHIP_MGAG200_WINBOND_PCI:
case PCI_CHIP_MGAG200_EV_PCI:
case PCI_CHIP_MGAG200_EH_PCI:
case PCI_CHIP_MGAG400:
case PCI_CHIP_MGAG550:
MGAGSetupFuncs(pScrn);
@ -2227,6 +2254,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
case PCI_CHIP_MGAG200_SE_B_PCI:
case PCI_CHIP_MGAG200_WINBOND_PCI:
case PCI_CHIP_MGAG200_EV_PCI:
case PCI_CHIP_MGAG200_EH_PCI:
pMga->SrcOrg = 0;
pMga->DstOrg = 0;
break;
@ -2413,6 +2441,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
case PCI_CHIP_MGAG200_SE_B_PCI:
case PCI_CHIP_MGAG200_WINBOND_PCI:
case PCI_CHIP_MGAG200_EV_PCI:
case PCI_CHIP_MGAG200_EH_PCI:
case PCI_CHIP_MGAG400:
case PCI_CHIP_MGAG550:
maxPitch = 4096;
@ -4317,6 +4346,9 @@ MGAValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
} else if (pMga->is_G200EV
&& (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 327)) {
return MODE_BANDWIDTH;
} else if (pMga->is_G200EH
&& (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 375)) {
return MODE_BANDWIDTH;
}
lace = 1 + ((mode->Flags & V_INTERLACE) != 0);

View File

@ -362,6 +362,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
case PCI_CHIP_MGAG200_SE_B_PCI:
case PCI_CHIP_MGAG200_WINBOND_PCI:
case PCI_CHIP_MGAG200_EV_PCI:
case PCI_CHIP_MGAG200_EH_PCI:
case PCI_CHIP_MGAG400:
case PCI_CHIP_MGAG550:
MGAGSetupFuncs(pScrn);
@ -516,6 +517,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
case PCI_CHIP_MGAG200_SE_B_PCI:
case PCI_CHIP_MGAG200_WINBOND_PCI:
case PCI_CHIP_MGAG200_EV_PCI:
case PCI_CHIP_MGAG200_EH_PCI:
case PCI_CHIP_MGAG400:
case PCI_CHIP_MGAG550:
maxPitch = 4096;

View File

@ -432,6 +432,11 @@
#define MGA1064_EV_PIX_PLLC_N 0xb7
#define MGA1064_EV_PIX_PLLC_P 0xb8
/* Modified PLL for G200 EH */
#define MGA1064_EH_PIX_PLLC_M 0xb6
#define MGA1064_EH_PIX_PLLC_N 0xb7
#define MGA1064_EH_PIX_PLLC_P 0xb8
#define MGA1064_DISP_CTL 0x8a
#define MGA1064_DISP_CTL_DAC1OUTSEL_MASK 0x01

View File

@ -1130,6 +1130,7 @@ void MGAStormEngineInit( ScrnInfoPtr pScrn )
case PCI_CHIP_MGAG200_SE_B_PCI:
case PCI_CHIP_MGAG200_WINBOND_PCI:
case PCI_CHIP_MGAG200_EV_PCI:
case PCI_CHIP_MGAG200_EH_PCI:
pMga->SrcOrg = 0;
OUTREG(MGAREG_SRCORG, pMga->realSrcOrg);
OUTREG(MGAREG_DSTORG, pMga->DstOrg);

View File

@ -74,6 +74,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
@ -87,6 +88,7 @@ CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
@ -113,6 +115,7 @@ FFLAGS = @FFLAGS@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@ -220,9 +223,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu util/Makefile'; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign util/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu util/Makefile
$(AUTOMAKE) --foreign util/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \