Update to xf86-video-mga 2.0.0
Commited from a machine using a Matrox G550 card.
This commit is contained in:
parent
b0c17c65a4
commit
7b0e9d2e6b
@ -1,3 +1,283 @@
|
|||||||
|
commit 924c310dfecbfb916f0e81c03f1142a401bed056
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Fri Dec 7 16:43:46 2018 -0800
|
||||||
|
|
||||||
|
Version bumped to Version 2.0.0
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
|
||||||
|
commit ada903eea2e138643faa721f37737ed885363bf7
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Fri Dec 7 16:21:44 2018 -0800
|
||||||
|
|
||||||
|
Version bumped to Version 1.6.901
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
|
||||||
|
commit 54f0f0723d4291a23a2f1c10fcf33560f9a4340a
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Thu Dec 6 20:49:31 2018 -0800
|
||||||
|
|
||||||
|
Remove last remnants of old Matrox HAL
|
||||||
|
|
||||||
|
Apparently, commit 94bbeb132c7eda912d1b402a1a91ca7cbbf5e6a1
|
||||||
|
missed removing a few more files related to old Matrox HAL.
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit b293b0956d518b2cc3833d0d2d846301fe35c0a0
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Thu Nov 29 10:41:23 2018 -0800
|
||||||
|
|
||||||
|
Version bumped to Version 1.6.900
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
|
||||||
|
commit c5d295f06c83ba69811c17880e033cbd0fdb52b1
|
||||||
|
Author: Henry Zhao <henry.zhao@oracle.com>
|
||||||
|
Date: Mon Nov 26 13:15:24 2018 -0800
|
||||||
|
|
||||||
|
Write 8 bits instead of 32 to MGAREG_CACHEFLUSH
|
||||||
|
|
||||||
|
Fixes misaligned address crash when EXA is enabled on Solaris SPARC
|
||||||
|
(Oracle Bug id 22993744)
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 11abbd45e0c93b672a7e8d5730560a6b351c7a9b
|
||||||
|
Author: Matthieu Herrb <matthieu@herrb.eu>
|
||||||
|
Date: Mon Nov 26 21:12:05 2018 +0100
|
||||||
|
|
||||||
|
Use fabs() to compute absolute value of floating point number.
|
||||||
|
|
||||||
|
Fixes a warning from clang and looks like it was a real bug.
|
||||||
|
|
||||||
|
Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
|
||||||
|
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 4ce40b932cdced590af1c32f6f491f63e9a247dd
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Mon Nov 26 11:03:39 2018 -0800
|
||||||
|
|
||||||
|
Suppression of a compilation error when XAA is not in use
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
|
||||||
|
commit 4017c6e91f8938f1f1617e53e30ee1d3d10d490c
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Mon Nov 26 11:02:30 2018 -0800
|
||||||
|
|
||||||
|
Convert most HAVE_XAA_H conditional compilation labels to USE_XAA
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
|
||||||
|
commit c5922dcc3ff26c9b1291e90ecedee35f97bc51c8
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Mon Nov 26 11:01:33 2018 -0800
|
||||||
|
|
||||||
|
Eliminate set but unused variables
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
|
||||||
|
commit 8db8f6b3f323a9d9cd934172c9f4d4a93a6b7394
|
||||||
|
Author: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Date: Mon Nov 26 11:00:32 2018 -0800
|
||||||
|
|
||||||
|
Eliminate unused variables
|
||||||
|
|
||||||
|
Care had to be taken to properly handle XAA usage situation
|
||||||
|
|
||||||
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
|
||||||
|
commit 94c70f888b3e3b1e4c9f324f188279f276c9cbbd
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sun Nov 25 14:31:30 2018 -0800
|
||||||
|
|
||||||
|
Update configure.ac bug URL for gitlab migration
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit a939aa56b3af4418d0c026a3775fde7288b0cca7
|
||||||
|
Author: Mikulas Patocka <mikulas@twibright.com>
|
||||||
|
Date: Tue Nov 20 08:41:14 2018 -0800
|
||||||
|
|
||||||
|
mga_drv: fix image corruption due to memcpy reordering
|
||||||
|
|
||||||
|
The memcpy specification doesn't specify how the destination is written -
|
||||||
|
and on glibc 2.19 memcpy is doing some bytewise writes with the rep stosb
|
||||||
|
instruction. These bytewise writes confuse the hardware (because it
|
||||||
|
expects 32-bit writes) and result in image corruption.
|
||||||
|
|
||||||
|
This patch replaces memcpy with explicit writes, so that the sequential
|
||||||
|
write order and 32-bit write size is guaranteed. We use the "volatile"
|
||||||
|
attribute to make sure that compiler optimizations won't cause write
|
||||||
|
reordering. When reading the memory, we use a structure with "packed"
|
||||||
|
attribute to avoid unaligned traps on RISC machines.
|
||||||
|
|
||||||
|
Tested-by: Kevin Brace <kevinbrace@gmx.com>
|
||||||
|
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
|
||||||
|
|
||||||
|
commit 0f4883f0b8ebfd105d5cee93841bc69f0f2b60b7
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sun Nov 18 13:25:33 2018 -0800
|
||||||
|
|
||||||
|
Update README for gitlab migration
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 34f37fe119f07e1e7b79964de08ac601a0753a7f
|
||||||
|
Author: Nicolas Kaiser <nikai@nikai.net>
|
||||||
|
Date: Sun May 29 11:36:11 2011 +0200
|
||||||
|
|
||||||
|
fix typo in MGADRIMoveBuffersXAA()
|
||||||
|
|
||||||
|
Fix typo in MGADRIMoveBuffersXAA().
|
||||||
|
|
||||||
|
Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
|
||||||
|
Reviewed-by: Cyril Brulebois <kibi@debian.org>
|
||||||
|
|
||||||
|
commit 31544d805f99da54d5d3c658ccc137813dbde52b
|
||||||
|
Author: Mikulas Patocka <mikulas@twibright.com>
|
||||||
|
Date: Tue Feb 13 01:43:13 2018 +0100
|
||||||
|
|
||||||
|
mga_drv: use exa by default
|
||||||
|
|
||||||
|
If the Xserver doesn't support XAA, we must turn EXA on by default -
|
||||||
|
otherwise we end up with no acceleration at all.
|
||||||
|
|
||||||
|
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
||||||
|
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
|
||||||
|
|
||||||
|
commit 97c801e49251ffedf0eebd0563c737318433f114
|
||||||
|
Author: Mikulas Patocka <mikulas@twibright.com>
|
||||||
|
Date: Tue Feb 13 01:42:41 2018 +0100
|
||||||
|
|
||||||
|
mga_drv: fix warning
|
||||||
|
|
||||||
|
Fix warnings in the MGA driver. There's no functional change.
|
||||||
|
|
||||||
|
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
||||||
|
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
|
||||||
|
|
||||||
|
commit 767c19e7142da1060586b1ff2b5e7253b6d6276b
|
||||||
|
Author: Mikulas Patocka <mikulas@twibright.com>
|
||||||
|
Date: Tue Feb 13 01:42:27 2018 +0100
|
||||||
|
|
||||||
|
mga_drv: fix structure definition
|
||||||
|
|
||||||
|
Fix missing entry in structure definition.
|
||||||
|
|
||||||
|
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
||||||
|
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
|
||||||
|
|
||||||
|
commit b9aab0dcb171ab936a8581d8287aac3a90652a09
|
||||||
|
Author: Mikulas Patocka <mikulas@twibright.com>
|
||||||
|
Date: Tue Feb 13 01:42:08 2018 +0100
|
||||||
|
|
||||||
|
mga_drv: fix a typo
|
||||||
|
|
||||||
|
Fix a typo that causes dynamic symbol lookup failure and xserver crash.
|
||||||
|
|
||||||
|
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
||||||
|
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
|
||||||
|
|
||||||
|
commit 2998868964b2f3a56b6759fd8dc4462d812dbe1a
|
||||||
|
Author: Emil Velikov <emil.velikov@collabora.com>
|
||||||
|
Date: Mon Jul 17 11:05:57 2017 +0100
|
||||||
|
|
||||||
|
xf86-video-mga: remove the GlxSetVisualConfigs stub and friends
|
||||||
|
|
||||||
|
The function was an empty since 2008 at least. Remove it alongside the
|
||||||
|
unused GLX visuals code.
|
||||||
|
|
||||||
|
With this all the GL/GLX dependencies in the driver are gone.
|
||||||
|
|
||||||
|
Cc: Mathieu Larouche <mathieu.larouche@matrox.com>
|
||||||
|
Cc: Dave Airlie <airlied@redhat.com>
|
||||||
|
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
|
||||||
|
---
|
||||||
|
There's a GLX reference in mga_ucode.h - a file which was seemingly
|
||||||
|
never used since day 1. I'm not going to bother with that, since I've
|
||||||
|
taken enough of a diversion already ;-)
|
||||||
|
|
||||||
|
commit 42fabf69c33d0e803eb661cc06217611bc3c9048
|
||||||
|
Author: Mathieu Larouche <mathieu.larouche@matrox.com>
|
||||||
|
Date: Tue Jun 13 13:43:45 2017 -0400
|
||||||
|
|
||||||
|
xf86-video-mga: Fix to always set HiPri for G200e4 V2
|
||||||
|
|
||||||
|
- Changed the HiPri value for G200e4 to always be 0.
|
||||||
|
- Added Bandwith limitation to block resolution above 1920x1200x60Hz
|
||||||
|
|
||||||
|
- (V2): Pulled out ulMemoryBandwidth of condition so it's always initialized
|
||||||
|
as reviewed by : Stefan Dirsch <sndirsch@suse.de>
|
||||||
|
|
||||||
|
Reviewed-by: Samer El-Haj-Mahmoud <smahmoud@lenovo.com>
|
||||||
|
|
||||||
|
commit e55abc95c2b7f7cb8de73e1e21688fb5b5c08d5c
|
||||||
|
Author: Mathieu Larouche <mathieu.larouche@matrox.com>
|
||||||
|
Date: Tue Feb 7 11:12:14 2017 -0500
|
||||||
|
|
||||||
|
xf86-video-mga: Add support for a new G200eH3 device
|
||||||
|
|
||||||
|
- Added support for the new deviceID for G200eH3
|
||||||
|
- Added PLL algorithm for the G200eH3
|
||||||
|
- Removed the bandwidth limitation for the G200eH3
|
||||||
|
|
||||||
|
Signed-off-by: Mathieu Larouche <mathieu.larouche@matrox.com>
|
||||||
|
Reviewed-by: Dave Airlie <airlied@redhat.com>
|
||||||
|
|
||||||
|
commit 2ccc50072ccb70411e5e32644e74ef7c6b33f628
|
||||||
|
Author: Mihail Konev <k.mvc@ya.ru>
|
||||||
|
Date: Thu Jan 26 14:00:22 2017 +1000
|
||||||
|
|
||||||
|
autogen: add default patch prefix
|
||||||
|
|
||||||
|
Signed-off-by: Mihail Konev <k.mvc@ya.ru>
|
||||||
|
|
||||||
|
commit b9f57d1717fe9035d354b47e877ae110546d6f28
|
||||||
|
Author: Emil Velikov <emil.l.velikov@gmail.com>
|
||||||
|
Date: Mon Mar 9 12:00:52 2015 +0000
|
||||||
|
|
||||||
|
autogen.sh: use quoted string variables
|
||||||
|
|
||||||
|
Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent
|
||||||
|
fall-outs, when they contain space.
|
||||||
|
|
||||||
|
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
|
||||||
|
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
|
||||||
|
commit 0b8e81d2a435e190e1a1b81e776423d255b4cb9a
|
||||||
|
Author: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Date: Tue Jan 24 10:32:07 2017 +1000
|
||||||
|
|
||||||
|
autogen.sh: use exec instead of waiting for configure to finish
|
||||||
|
|
||||||
|
Syncs the invocation of configure with the one from the server.
|
||||||
|
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
|
||||||
|
|
||||||
|
commit 7407e79cd62f7209a5fe0265882d0ee3d0007196
|
||||||
|
Author: Colin Walters <walters@verbum.org>
|
||||||
|
Date: Wed Jan 4 17:37:06 2012 -0500
|
||||||
|
|
||||||
|
autogen.sh: Implement GNOME Build API
|
||||||
|
|
||||||
|
http://people.gnome.org/~walters/docs/build-api.txt
|
||||||
|
|
||||||
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
|
||||||
|
commit 9ae2ad4ee9b0a9ad64fec0f88b68886d7b0b8663
|
||||||
|
Author: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Date: Thu Jan 26 11:18:06 2017 +1000
|
||||||
|
|
||||||
|
configure: Drop AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
|
||||||
commit 979e0e73eb3424b6a97746e29c8b4a5b7e86196e
|
commit 979e0e73eb3424b6a97746e29c8b4a5b7e86196e
|
||||||
Author: Matt Turner <mattst88@gmail.com>
|
Author: Matt Turner <mattst88@gmail.com>
|
||||||
Date: Tue Jan 17 14:40:48 2017 -0800
|
Date: Tue Jan 17 14:40:48 2017 -0800
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
SUBDIRS = src man util
|
SUBDIRS = src man util
|
||||||
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
||||||
|
|
||||||
EXTRA_DIST = README_HALLIB mga_PInS.txt
|
EXTRA_DIST = mga_PInS.txt README.md
|
||||||
|
|
||||||
.PHONY: ChangeLog INSTALL
|
.PHONY: ChangeLog INSTALL
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ POST_UNINSTALL = :
|
|||||||
build_triplet = @build@
|
build_triplet = @build@
|
||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
subdir = .
|
subdir = .
|
||||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||||
$(top_srcdir)/configure COPYING ChangeLog INSTALL compile \
|
$(top_srcdir)/configure COPYING ChangeLog INSTALL compile \
|
||||||
config.guess config.sub depcomp install-sh ltmain.sh missing
|
config.guess config.sub depcomp install-sh ltmain.sh missing
|
||||||
@ -308,7 +308,7 @@ top_builddir = @top_builddir@
|
|||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
SUBDIRS = src man util
|
SUBDIRS = src man util
|
||||||
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
||||||
EXTRA_DIST = README_HALLIB mga_PInS.txt
|
EXTRA_DIST = mga_PInS.txt README.md
|
||||||
all: config.h
|
all: config.h
|
||||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||||
|
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
xf86-video-mga - Matrox video driver for the Xorg X server
|
|
||||||
|
|
||||||
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-mga
|
|
||||||
|
|
||||||
http://cgit.freedesktop.org/xorg/driver/xf86-video-mga
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
18
driver/xf86-video-mga/README.md
Normal file
18
driver/xf86-video-mga/README.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
xf86-video-mga - Matrox video driver for the Xorg X server
|
||||||
|
----------------------------------------------------------
|
||||||
|
|
||||||
|
All questions regarding this software should be directed at the
|
||||||
|
Xorg mailing list:
|
||||||
|
|
||||||
|
https://lists.x.org/mailman/listinfo/xorg
|
||||||
|
|
||||||
|
The master development code repository can be found at:
|
||||||
|
|
||||||
|
https://gitlab.freedesktop.org/xorg/driver/xf86-video-mga
|
||||||
|
|
||||||
|
Please submit bug reports and requests to merge patches there.
|
||||||
|
|
||||||
|
For patch submission instructions, see:
|
||||||
|
|
||||||
|
https://www.x.org/wiki/Development/Documentation/SubmittingPatches
|
||||||
|
|
@ -1,209 +0,0 @@
|
|||||||
HAL Documentation
|
|
||||||
|
|
||||||
This documentation provides preliminary explaination of the HAL library, a
|
|
||||||
more detailed version of this document is in the process of being written
|
|
||||||
and will be released with future driver builds.
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
MGAOpenLibrary
|
|
||||||
|
|
||||||
Description: Link Client functions with HAL Librery
|
|
||||||
|
|
||||||
Input:
|
|
||||||
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
|
|
||||||
|
|
||||||
LPBARDHANDLElpClient: Pointer to the client stucture
|
|
||||||
|
|
||||||
ulClientSize: Size of the client structure
|
|
||||||
|
|
||||||
Error:
|
|
||||||
return 0 on success
|
|
||||||
|
|
||||||
-------------------------------------------------------------
|
|
||||||
MGAGetHardwareInfo
|
|
||||||
|
|
||||||
Description:
|
|
||||||
|
|
||||||
Fills MGAWINFO structure.
|
|
||||||
|
|
||||||
struct {
|
|
||||||
ULONG UlCapsFirstOutput;
|
|
||||||
ULONG ulCapsSecondOutput;
|
|
||||||
ULONG ulVideoMemory;
|
|
||||||
} FAR *LPMGAHWINFO;
|
|
||||||
|
|
||||||
#define MGAHWINFOCAPS_CRTC1_DIGITAL (1L << 1)
|
|
||||||
#define MGAHWINFOCAPS_CRTC1_TV (1L << 2)
|
|
||||||
#define MGAHWINFOCAPS_CRTC2_ANALOG (1L << 3)
|
|
||||||
#define MGAHWINFOCAPS_CRTC2_DIGITAL (1L << 4)
|
|
||||||
#define MGAHWINFOCAPS_CRTC2_TV (1L << 5)
|
|
||||||
#define MGAHWINFOCAPS_OUTPUT_VGA (1L << 6)
|
|
||||||
#define MGAHWINFOCAPS_CRTC2 (MGAHWINFOCAPS_CRTC2_ANALOG | MGAHWINFOCAPS_CRTC2_DIGITAL | MGAHWINFOCAPS_CRTC2_TV)
|
|
||||||
#define MGAHWINFOCAPS_OUTPUT_ANALOG (MGAHWINFOCAPS_CRTC1_ANALOG | MGAHWINFOCAPS_CRTC2_ANALOG)
|
|
||||||
#define MGAHWINFOCAPS_OUTPUT_DIGITAL (MGAHWINFOCAPS_CRTC1_DIGITAL | MGAHWINFOCAPS_CRTC2_DIGITAL)
|
|
||||||
#define MGAHWINFOCAPS_OUTPUT_TV (MGAHWINFOCAPS_CRTC1_TV | MGAHWINFOCAPS_CRTC2_TV)
|
|
||||||
|
|
||||||
example:
|
|
||||||
|
|
||||||
if (pMga->pMgaHwInfo->ulCapsSecondOutput & MGAHWINFOCAPS_OUTPUT_TV )
|
|
||||||
{
|
|
||||||
ErrorF("TV detected\n");
|
|
||||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "TV detected\n ");
|
|
||||||
}
|
|
||||||
if (pMga->pMgaHwInfo->ulCapsSecondOutput & MGAHWINFOCAPS_OUTPUT_DIGITAL)
|
|
||||||
{
|
|
||||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Digital Screen detected\n ");
|
|
||||||
}
|
|
||||||
|
|
||||||
Inputs:
|
|
||||||
|
|
||||||
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
|
|
||||||
|
|
||||||
LPMGAHWINFO pMgaHwInfo: Handle to the board structure containing all
|
|
||||||
the information about the specific Board.
|
|
||||||
|
|
||||||
Error:
|
|
||||||
Returns 0 on success
|
|
||||||
------------------------------------------------------------
|
|
||||||
MGAValidateMode
|
|
||||||
|
|
||||||
Description:
|
|
||||||
|
|
||||||
Validates the mode given by client.
|
|
||||||
|
|
||||||
Here are the different options for pMgaModeInfo->flOutput:
|
|
||||||
|
|
||||||
MGAMODEINFO_FORCE_PITCH
|
|
||||||
MGAMODEINFO_FORCE_DISPLAYORG
|
|
||||||
MGAMODEINFO_SECOND_CRTC
|
|
||||||
MGAMODEINFO_ANALOG1
|
|
||||||
MGAMODEINFO_ANALOG2
|
|
||||||
MGAMODEINFO_DIGITAL1
|
|
||||||
MGAMODEINFO_DIGITAL2
|
|
||||||
MGAMODEINFO_TV
|
|
||||||
|
|
||||||
These options can be combined together to set different combinations.
|
|
||||||
Example:
|
|
||||||
|
|
||||||
/*The second crtc outputs to a digital screen*/
|
|
||||||
pMgaModeInfo->flOutput= MGAMODEINFO_DIGITAL2 | MGAMODEINFO_SECOND_CRTC
|
|
||||||
| MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
|
|
||||||
|
|
||||||
- or -
|
|
||||||
|
|
||||||
/*The second crtc outputs to an analog screen*/
|
|
||||||
pMgaModeInfo-> flOutput = MGAMODEINFO_ANALOG2| MGAMODEINFO_SECOND_CRTC
|
|
||||||
| MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
|
|
||||||
|
|
||||||
- or -
|
|
||||||
|
|
||||||
/*The second crtc outputs to a tv*/
|
|
||||||
pMga->pMgaModeInfo->flOutput = MGAMODEINFO_TV | MGAMODEINFO_SECOND_CRTC | MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
|
|
||||||
|
|
||||||
Inputs:
|
|
||||||
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
|
|
||||||
|
|
||||||
LPMGAMODEINFO pMgaModeInfo: Pointer to structure containing information about a specific display mode. (You need to fill the structure except the video parameters part which will be filled by the function).
|
|
||||||
|
|
||||||
Error:
|
|
||||||
Returns 0 on success
|
|
||||||
|
|
||||||
-------------------------------------------------------------
|
|
||||||
MGASetMode
|
|
||||||
|
|
||||||
Description:
|
|
||||||
|
|
||||||
Initializes the board.
|
|
||||||
|
|
||||||
Here are the different options for pMgaModeInfo->flOutput:
|
|
||||||
|
|
||||||
MGAMODEINFO_FORCE_PITCH
|
|
||||||
MGAMODEINFO_FORCE_DISPLAYORG
|
|
||||||
MGAMODEINFO_SECOND_CRTC
|
|
||||||
MGAMODEINFO_ANALOG1
|
|
||||||
MGAMODEINFO_ANALOG2
|
|
||||||
MGAMODEINFO_DIGITAL1
|
|
||||||
MGAMODEINFO_DIGITAL2
|
|
||||||
MGAMODEINFO_TV
|
|
||||||
|
|
||||||
These options can be combined together to set different combinations.
|
|
||||||
Example:
|
|
||||||
|
|
||||||
/*The second crtc outputs to a digital screen*/
|
|
||||||
pMgaModeInfo->flOutput= MGAMODEINFO_DIGITAL2 | MGAMODEINFO_SECOND_CRTC
|
|
||||||
| MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
|
|
||||||
|
|
||||||
- or -
|
|
||||||
|
|
||||||
/*The second crtc outputs to an analog screen*/
|
|
||||||
pMgaModeInfo-> flOutput = MGAMODEINFO_ANALOG2| MGAMODEINFO_SECOND_CRTC
|
|
||||||
| MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
|
|
||||||
|
|
||||||
- or -
|
|
||||||
|
|
||||||
/*The second crtc outputs to a tv*/
|
|
||||||
pMga->pMgaModeInfo->flOutput = MGAMODEINFO_TV | MGAMODEINFO_SECOND_CRTC | MGAMODEINFO_FORCE_PITCH | MGAMODEINFO_FORCE_DISPLAYORG;
|
|
||||||
|
|
||||||
Inputs:
|
|
||||||
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
|
|
||||||
|
|
||||||
LPMGAMODEINFO pMgaModeInfo: Pointer to structure containing information about a specific display mode. (You need to fill the structure except the video parameters part which will be filled by the function).
|
|
||||||
|
|
||||||
Error:
|
|
||||||
Returns 0 on success
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
MGASetVgaMode
|
|
||||||
|
|
||||||
Description:
|
|
||||||
|
|
||||||
Switchs the VGA mode
|
|
||||||
|
|
||||||
Inputs:
|
|
||||||
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
|
|
||||||
|
|
||||||
Error:
|
|
||||||
Returns 0 on success
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
MGARestoreVgaState
|
|
||||||
|
|
||||||
Description:
|
|
||||||
|
|
||||||
Restores the VGA State
|
|
||||||
|
|
||||||
Inputs:
|
|
||||||
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
|
|
||||||
|
|
||||||
Error:
|
|
||||||
Returns 0 on success
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
MGASaveVgaState
|
|
||||||
|
|
||||||
Description:
|
|
||||||
|
|
||||||
Saves the VGA state
|
|
||||||
|
|
||||||
Inputs:
|
|
||||||
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
|
|
||||||
|
|
||||||
Error:
|
|
||||||
Returns 0 on success
|
|
||||||
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
MGACloseLibrary
|
|
||||||
|
|
||||||
Description:
|
|
||||||
|
|
||||||
Closes the library
|
|
||||||
|
|
||||||
Inputs:
|
|
||||||
LPBOARDHANDLE pBoard: Handle to the board structure containing all the information about the board.
|
|
||||||
|
|
||||||
Error:
|
|
||||||
Returns 0 on success
|
|
73
driver/xf86-video-mga/aclocal.m4
vendored
73
driver/xf86-video-mga/aclocal.m4
vendored
@ -8806,6 +8806,23 @@ m4_popdef([pkg_default])
|
|||||||
m4_popdef([pkg_description])
|
m4_popdef([pkg_description])
|
||||||
]) dnl PKG_NOARCH_INSTALLDIR
|
]) dnl PKG_NOARCH_INSTALLDIR
|
||||||
|
|
||||||
|
|
||||||
|
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
||||||
|
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||||
|
dnl -------------------------------------------
|
||||||
|
dnl Since: 0.28
|
||||||
|
dnl
|
||||||
|
dnl Retrieves the value of the pkg-config variable for the given module.
|
||||||
|
AC_DEFUN([PKG_CHECK_VAR],
|
||||||
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||||
|
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
|
||||||
|
|
||||||
|
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
|
||||||
|
AS_VAR_COPY([$1], [pkg_cv_][$1])
|
||||||
|
|
||||||
|
AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
||||||
|
])dnl PKG_CHECK_VAR
|
||||||
|
|
||||||
# Copyright (C) 2002-2012 Free Software Foundation, Inc.
|
# Copyright (C) 2002-2012 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
@ -9829,7 +9846,7 @@ AC_SUBST([am__untar])
|
|||||||
|
|
||||||
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
|
||||||
dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
|
dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
dnl
|
dnl
|
||||||
dnl Permission is hereby granted, free of charge, to any person obtaining a
|
dnl Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
dnl copy of this software and associated documentation files (the "Software"),
|
dnl copy of this software and associated documentation files (the "Software"),
|
||||||
@ -9866,7 +9883,7 @@ dnl DEALINGS IN THE SOFTWARE.
|
|||||||
# See the "minimum version" comment for each macro you use to see what
|
# See the "minimum version" comment for each macro you use to see what
|
||||||
# version you require.
|
# version you require.
|
||||||
m4_defun([XORG_MACROS_VERSION],[
|
m4_defun([XORG_MACROS_VERSION],[
|
||||||
m4_define([vers_have], [1.19.0])
|
m4_define([vers_have], [1.19.2])
|
||||||
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
|
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_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
|
||||||
m4_if(m4_cmp(maj_have, maj_needed), 0,,
|
m4_if(m4_cmp(maj_have, maj_needed), 0,,
|
||||||
@ -9944,6 +9961,17 @@ AC_DEFUN([XORG_MANPAGE_SECTIONS],[
|
|||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
AC_REQUIRE([AC_PROG_SED])
|
AC_REQUIRE([AC_PROG_SED])
|
||||||
|
|
||||||
|
case $host_os in
|
||||||
|
solaris*)
|
||||||
|
# Solaris 2.0 - 11.3 use SysV man page section numbers, so we
|
||||||
|
# check for a man page file found in later versions that use
|
||||||
|
# traditional section numbers instead
|
||||||
|
AC_CHECK_FILE([/usr/share/man/man7/attributes.7],
|
||||||
|
[SYSV_MAN_SECTIONS=false], [SYSV_MAN_SECTIONS=true])
|
||||||
|
;;
|
||||||
|
*) SYSV_MAN_SECTIONS=false ;;
|
||||||
|
esac
|
||||||
|
|
||||||
if test x$APP_MAN_SUFFIX = x ; then
|
if test x$APP_MAN_SUFFIX = x ; then
|
||||||
APP_MAN_SUFFIX=1
|
APP_MAN_SUFFIX=1
|
||||||
fi
|
fi
|
||||||
@ -9959,8 +9987,8 @@ if test x$LIB_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$FILE_MAN_SUFFIX = x ; then
|
if test x$FILE_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) FILE_MAN_SUFFIX=4 ;;
|
true) FILE_MAN_SUFFIX=4 ;;
|
||||||
*) FILE_MAN_SUFFIX=5 ;;
|
*) FILE_MAN_SUFFIX=5 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@ -9969,8 +9997,8 @@ if test x$FILE_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$MISC_MAN_SUFFIX = x ; then
|
if test x$MISC_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) MISC_MAN_SUFFIX=5 ;;
|
true) MISC_MAN_SUFFIX=5 ;;
|
||||||
*) MISC_MAN_SUFFIX=7 ;;
|
*) MISC_MAN_SUFFIX=7 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@ -9979,8 +10007,8 @@ if test x$MISC_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$DRIVER_MAN_SUFFIX = x ; then
|
if test x$DRIVER_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) DRIVER_MAN_SUFFIX=7 ;;
|
true) DRIVER_MAN_SUFFIX=7 ;;
|
||||||
*) DRIVER_MAN_SUFFIX=4 ;;
|
*) DRIVER_MAN_SUFFIX=4 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@ -9989,8 +10017,8 @@ if test x$DRIVER_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$ADMIN_MAN_SUFFIX = x ; then
|
if test x$ADMIN_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) ADMIN_MAN_SUFFIX=1m ;;
|
true) ADMIN_MAN_SUFFIX=1m ;;
|
||||||
*) ADMIN_MAN_SUFFIX=8 ;;
|
*) ADMIN_MAN_SUFFIX=8 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@ -10252,13 +10280,24 @@ m4_ifval([$1],
|
|||||||
fi])
|
fi])
|
||||||
|
|
||||||
# Test for the ability of xmlto to generate a text target
|
# Test for the ability of xmlto to generate a text target
|
||||||
|
#
|
||||||
|
# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the
|
||||||
|
# following test for empty XML docbook files.
|
||||||
|
# For compatibility reasons use the following empty XML docbook file and if
|
||||||
|
# it fails try it again with a non-empty XML file.
|
||||||
have_xmlto_text=no
|
have_xmlto_text=no
|
||||||
cat > conftest.xml << "EOF"
|
cat > conftest.xml << "EOF"
|
||||||
EOF
|
EOF
|
||||||
AS_IF([test "$have_xmlto" = yes],
|
AS_IF([test "$have_xmlto" = yes],
|
||||||
[AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
|
[AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
|
||||||
[have_xmlto_text=yes],
|
[have_xmlto_text=yes],
|
||||||
[AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])
|
[# Try it again with a non-empty XML file.
|
||||||
|
cat > conftest.xml << "EOF"
|
||||||
|
<x></x>
|
||||||
|
EOF
|
||||||
|
AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1],
|
||||||
|
[have_xmlto_text=yes],
|
||||||
|
[AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])])
|
||||||
rm -f conftest.xml
|
rm -f conftest.xml
|
||||||
AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
|
AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
|
||||||
AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
|
AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
|
||||||
@ -11654,8 +11693,9 @@ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
|||||||
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
||||||
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
||||||
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
||||||
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
|
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
|
||||||
echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)"
|
touch \$(top_srcdir)/INSTALL; \
|
||||||
|
echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))"
|
||||||
AC_SUBST([INSTALL_CMD])
|
AC_SUBST([INSTALL_CMD])
|
||||||
]) # XORG_INSTALL
|
]) # XORG_INSTALL
|
||||||
dnl Copyright 2005 Red Hat, Inc
|
dnl Copyright 2005 Red Hat, Inc
|
||||||
@ -11716,10 +11756,11 @@ AC_DEFUN([XORG_RELEASE_VERSION],[
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
AC_DEFUN([XORG_CHANGELOG], [
|
AC_DEFUN([XORG_CHANGELOG], [
|
||||||
CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \
|
CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
|
||||||
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
||||||
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
|
|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
|
||||||
echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
touch \$(top_srcdir)/ChangeLog; \
|
||||||
|
echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
|
||||||
AC_SUBST([CHANGELOG_CMD])
|
AC_SUBST([CHANGELOG_CMD])
|
||||||
]) # XORG_CHANGELOG
|
]) # XORG_CHANGELOG
|
||||||
|
|
||||||
|
94
driver/xf86-video-mga/configure
vendored
94
driver/xf86-video-mga/configure
vendored
@ -1,8 +1,8 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for xf86-video-mga 1.6.5.
|
# Generated by GNU Autoconf 2.69 for xf86-video-mga 2.0.0.
|
||||||
#
|
#
|
||||||
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
# Report bugs to <https://gitlab.freedesktop.org/xorg/driver/xf86-video-mga/issues>.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||||
@ -275,7 +275,7 @@ fi
|
|||||||
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
|
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
|
||||||
else
|
else
|
||||||
$as_echo "$0: Please tell bug-autoconf@gnu.org and
|
$as_echo "$0: Please tell bug-autoconf@gnu.org and
|
||||||
$0: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
|
$0: https://gitlab.freedesktop.org/xorg/driver/xf86-video-mga/issues
|
||||||
$0: about your system, including any error possibly output
|
$0: about your system, including any error possibly output
|
||||||
$0: before this message. Then install a modern shell, or
|
$0: before this message. Then install a modern shell, or
|
||||||
$0: manually run the script under such a shell if you do
|
$0: manually run the script under such a shell if you do
|
||||||
@ -591,9 +591,9 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='xf86-video-mga'
|
PACKAGE_NAME='xf86-video-mga'
|
||||||
PACKAGE_TARNAME='xf86-video-mga'
|
PACKAGE_TARNAME='xf86-video-mga'
|
||||||
PACKAGE_VERSION='1.6.5'
|
PACKAGE_VERSION='2.0.0'
|
||||||
PACKAGE_STRING='xf86-video-mga 1.6.5'
|
PACKAGE_STRING='xf86-video-mga 2.0.0'
|
||||||
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/driver/xf86-video-mga/issues'
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
ac_unique_file="Makefile.am"
|
ac_unique_file="Makefile.am"
|
||||||
@ -1368,7 +1368,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# 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.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures xf86-video-mga 1.6.5 to adapt to many kinds of systems.
|
\`configure' configures xf86-video-mga 2.0.0 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@ -1438,7 +1438,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of xf86-video-mga 1.6.5:";;
|
short | recursive ) echo "Configuration of xf86-video-mga 2.0.0:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@ -1509,7 +1509,7 @@ Some influential environment variables:
|
|||||||
Use these variables to override the choices made by `configure' or to help
|
Use these variables to override the choices made by `configure' or to help
|
||||||
it to find libraries and programs with nonstandard names/locations.
|
it to find libraries and programs with nonstandard names/locations.
|
||||||
|
|
||||||
Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
Report bugs to <https://gitlab.freedesktop.org/xorg/driver/xf86-video-mga/issues>.
|
||||||
_ACEOF
|
_ACEOF
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
fi
|
fi
|
||||||
@ -1572,7 +1572,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
xf86-video-mga configure 1.6.5
|
xf86-video-mga configure 2.0.0
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
@ -1963,9 +1963,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
|
|||||||
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
|
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
|
||||||
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
|
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
|
||||||
( $as_echo "## ---------------------------------------------------------------------- ##
|
( $as_echo "## ------------------------------------------------------------------------------- ##
|
||||||
## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg ##
|
## Report this to https://gitlab.freedesktop.org/xorg/driver/xf86-video-mga/issues ##
|
||||||
## ---------------------------------------------------------------------- ##"
|
## ------------------------------------------------------------------------------- ##"
|
||||||
) | sed "s/^/$as_me: WARNING: /" >&2
|
) | sed "s/^/$as_me: WARNING: /" >&2
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -1987,7 +1987,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by xf86-video-mga $as_me 1.6.5, which was
|
It was created by xf86-video-mga $as_me 2.0.0, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@ -9867,10 +9867,11 @@ _ACEOF
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \
|
CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \
|
||||||
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \
|
||||||
|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \
|
|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \
|
||||||
echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
touch \$(top_srcdir)/ChangeLog; \
|
||||||
|
echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -9878,14 +9879,45 @@ echo 'git directory not found: installing possibly empty changelog.' >&2)"
|
|||||||
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros`
|
||||||
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \
|
||||||
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \
|
||||||
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \
|
|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \
|
||||||
echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)"
|
touch \$(top_srcdir)/INSTALL; \
|
||||||
|
echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
case $host_os in
|
||||||
|
solaris*)
|
||||||
|
# Solaris 2.0 - 11.3 use SysV man page section numbers, so we
|
||||||
|
# check for a man page file found in later versions that use
|
||||||
|
# traditional section numbers instead
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/share/man/man7/attributes.7" >&5
|
||||||
|
$as_echo_n "checking for /usr/share/man/man7/attributes.7... " >&6; }
|
||||||
|
if ${ac_cv_file__usr_share_man_man7_attributes_7+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
test "$cross_compiling" = yes &&
|
||||||
|
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
|
||||||
|
if test -r "/usr/share/man/man7/attributes.7"; then
|
||||||
|
ac_cv_file__usr_share_man_man7_attributes_7=yes
|
||||||
|
else
|
||||||
|
ac_cv_file__usr_share_man_man7_attributes_7=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__usr_share_man_man7_attributes_7" >&5
|
||||||
|
$as_echo "$ac_cv_file__usr_share_man_man7_attributes_7" >&6; }
|
||||||
|
if test "x$ac_cv_file__usr_share_man_man7_attributes_7" = xyes; then :
|
||||||
|
SYSV_MAN_SECTIONS=false
|
||||||
|
else
|
||||||
|
SYSV_MAN_SECTIONS=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*) SYSV_MAN_SECTIONS=false ;;
|
||||||
|
esac
|
||||||
|
|
||||||
if test x$APP_MAN_SUFFIX = x ; then
|
if test x$APP_MAN_SUFFIX = x ; then
|
||||||
APP_MAN_SUFFIX=1
|
APP_MAN_SUFFIX=1
|
||||||
fi
|
fi
|
||||||
@ -9901,8 +9933,8 @@ if test x$LIB_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$FILE_MAN_SUFFIX = x ; then
|
if test x$FILE_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) FILE_MAN_SUFFIX=4 ;;
|
true) FILE_MAN_SUFFIX=4 ;;
|
||||||
*) FILE_MAN_SUFFIX=5 ;;
|
*) FILE_MAN_SUFFIX=5 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@ -9911,8 +9943,8 @@ if test x$FILE_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$MISC_MAN_SUFFIX = x ; then
|
if test x$MISC_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) MISC_MAN_SUFFIX=5 ;;
|
true) MISC_MAN_SUFFIX=5 ;;
|
||||||
*) MISC_MAN_SUFFIX=7 ;;
|
*) MISC_MAN_SUFFIX=7 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@ -9921,8 +9953,8 @@ if test x$MISC_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$DRIVER_MAN_SUFFIX = x ; then
|
if test x$DRIVER_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) DRIVER_MAN_SUFFIX=7 ;;
|
true) DRIVER_MAN_SUFFIX=7 ;;
|
||||||
*) DRIVER_MAN_SUFFIX=4 ;;
|
*) DRIVER_MAN_SUFFIX=4 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@ -9931,8 +9963,8 @@ if test x$DRIVER_MAN_DIR = x ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$ADMIN_MAN_SUFFIX = x ; then
|
if test x$ADMIN_MAN_SUFFIX = x ; then
|
||||||
case $host_os in
|
case $SYSV_MAN_SECTIONS in
|
||||||
solaris*) ADMIN_MAN_SUFFIX=1m ;;
|
true) ADMIN_MAN_SUFFIX=1m ;;
|
||||||
*) ADMIN_MAN_SUFFIX=8 ;;
|
*) ADMIN_MAN_SUFFIX=8 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@ -10461,7 +10493,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='xf86-video-mga'
|
PACKAGE='xf86-video-mga'
|
||||||
VERSION='1.6.5'
|
VERSION='2.0.0'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
@ -19045,7 +19077,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by xf86-video-mga $as_me 1.6.5, which was
|
This file was extended by xf86-video-mga $as_me 2.0.0, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@ -19105,13 +19137,13 @@ $config_headers
|
|||||||
Configuration commands:
|
Configuration commands:
|
||||||
$config_commands
|
$config_commands
|
||||||
|
|
||||||
Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>."
|
Report bugs to <https://gitlab.freedesktop.org/xorg/driver/xf86-video-mga/issues>."
|
||||||
|
|
||||||
_ACEOF
|
_ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
xf86-video-mga config.status 1.6.5
|
xf86-video-mga config.status 2.0.0
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
@ -23,8 +23,8 @@
|
|||||||
# Initialize Autoconf
|
# Initialize Autoconf
|
||||||
AC_PREREQ([2.60])
|
AC_PREREQ([2.60])
|
||||||
AC_INIT([xf86-video-mga],
|
AC_INIT([xf86-video-mga],
|
||||||
[1.6.5],
|
[2.0.0],
|
||||||
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
|
[https://gitlab.freedesktop.org/xorg/driver/xf86-video-mga/issues],
|
||||||
[xf86-video-mga])
|
[xf86-video-mga])
|
||||||
AC_CONFIG_SRCDIR([Makefile.am])
|
AC_CONFIG_SRCDIR([Makefile.am])
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
|
@ -30,8 +30,6 @@ mga_drv_ladir = @moduledir@/drivers
|
|||||||
mga_drv_la_LIBADD = $(noinst_LTLIBRARIES)
|
mga_drv_la_LIBADD = $(noinst_LTLIBRARIES)
|
||||||
|
|
||||||
mga_drv_la_SOURCES = \
|
mga_drv_la_SOURCES = \
|
||||||
binding.h \
|
|
||||||
client.h \
|
|
||||||
mga_bios.c \
|
mga_bios.c \
|
||||||
mga_common.h \
|
mga_common.h \
|
||||||
mga_dac3026.c \
|
mga_dac3026.c \
|
||||||
@ -41,7 +39,6 @@ mga_drv_la_SOURCES = \
|
|||||||
mga_driver.c \
|
mga_driver.c \
|
||||||
mga_g450pll.c \
|
mga_g450pll.c \
|
||||||
mga.h \
|
mga.h \
|
||||||
mga_halmod.c \
|
|
||||||
mga_hwcurs.c \
|
mga_hwcurs.c \
|
||||||
mga_macros.h \
|
mga_macros.h \
|
||||||
mga_maven.h \
|
mga_maven.h \
|
||||||
|
@ -122,10 +122,9 @@ am__uninstall_files_from_dir = { \
|
|||||||
am__installdirs = "$(DESTDIR)$(mga_drv_ladir)"
|
am__installdirs = "$(DESTDIR)$(mga_drv_ladir)"
|
||||||
LTLIBRARIES = $(mga_drv_la_LTLIBRARIES)
|
LTLIBRARIES = $(mga_drv_la_LTLIBRARIES)
|
||||||
mga_drv_la_DEPENDENCIES =
|
mga_drv_la_DEPENDENCIES =
|
||||||
am__mga_drv_la_SOURCES_DIST = binding.h client.h mga_bios.c \
|
am__mga_drv_la_SOURCES_DIST = mga_bios.c mga_common.h mga_dac3026.c \
|
||||||
mga_common.h mga_dac3026.c mga_dacG.c mga_dga.c mga_dh.c \
|
mga_dacG.c mga_dga.c mga_dh.c mga_driver.c mga_g450pll.c mga.h \
|
||||||
mga_driver.c mga_g450pll.c mga.h mga_halmod.c mga_hwcurs.c \
|
mga_hwcurs.c mga_macros.h mga_maven.h mga_merge.c mga_merge.h \
|
||||||
mga_macros.h mga_maven.h mga_merge.c mga_merge.h \
|
|
||||||
mgareg_flags.h mga_reg.h mga_sarea.h mga_shadow.c mga_ucode.h \
|
mgareg_flags.h mga_reg.h mga_sarea.h mga_shadow.c mga_ucode.h \
|
||||||
mga_vga.c mga_video.c mga_storm.c compat-api.h mga_dri.c \
|
mga_vga.c mga_video.c mga_storm.c compat-api.h mga_dri.c \
|
||||||
mga_dri.h mga_dripriv.h mga_exa.c mga_arc.c
|
mga_dri.h mga_dripriv.h mga_exa.c mga_arc.c
|
||||||
@ -134,9 +133,9 @@ am__mga_drv_la_SOURCES_DIST = binding.h client.h mga_bios.c \
|
|||||||
@XAA_TRUE@am__objects_3 = mga_arc.lo
|
@XAA_TRUE@am__objects_3 = mga_arc.lo
|
||||||
am_mga_drv_la_OBJECTS = mga_bios.lo mga_dac3026.lo mga_dacG.lo \
|
am_mga_drv_la_OBJECTS = mga_bios.lo mga_dac3026.lo mga_dacG.lo \
|
||||||
mga_dga.lo mga_dh.lo mga_driver.lo mga_g450pll.lo \
|
mga_dga.lo mga_dh.lo mga_driver.lo mga_g450pll.lo \
|
||||||
mga_halmod.lo mga_hwcurs.lo mga_merge.lo mga_shadow.lo \
|
mga_hwcurs.lo mga_merge.lo mga_shadow.lo mga_vga.lo \
|
||||||
mga_vga.lo mga_video.lo mga_storm.lo $(am__objects_1) \
|
mga_video.lo mga_storm.lo $(am__objects_1) $(am__objects_2) \
|
||||||
$(am__objects_2) $(am__objects_3)
|
$(am__objects_3)
|
||||||
mga_drv_la_OBJECTS = $(am_mga_drv_la_OBJECTS)
|
mga_drv_la_OBJECTS = $(am_mga_drv_la_OBJECTS)
|
||||||
AM_V_lt = $(am__v_lt_@AM_V@)
|
AM_V_lt = $(am__v_lt_@AM_V@)
|
||||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||||
@ -345,13 +344,12 @@ mga_drv_la_LTLIBRARIES = mga_drv.la
|
|||||||
mga_drv_la_LDFLAGS = -module -avoid-version
|
mga_drv_la_LDFLAGS = -module -avoid-version
|
||||||
mga_drv_ladir = @moduledir@/drivers
|
mga_drv_ladir = @moduledir@/drivers
|
||||||
mga_drv_la_LIBADD = $(noinst_LTLIBRARIES)
|
mga_drv_la_LIBADD = $(noinst_LTLIBRARIES)
|
||||||
mga_drv_la_SOURCES = binding.h client.h mga_bios.c mga_common.h \
|
mga_drv_la_SOURCES = mga_bios.c mga_common.h mga_dac3026.c mga_dacG.c \
|
||||||
mga_dac3026.c mga_dacG.c mga_dga.c mga_dh.c mga_driver.c \
|
mga_dga.c mga_dh.c mga_driver.c mga_g450pll.c mga.h \
|
||||||
mga_g450pll.c mga.h mga_halmod.c mga_hwcurs.c mga_macros.h \
|
mga_hwcurs.c mga_macros.h mga_maven.h mga_merge.c mga_merge.h \
|
||||||
mga_maven.h mga_merge.c mga_merge.h mgareg_flags.h mga_reg.h \
|
mgareg_flags.h mga_reg.h mga_sarea.h mga_shadow.c mga_ucode.h \
|
||||||
mga_sarea.h mga_shadow.c mga_ucode.h mga_vga.c mga_video.c \
|
mga_vga.c mga_video.c mga_storm.c compat-api.h $(am__append_1) \
|
||||||
mga_storm.c compat-api.h $(am__append_1) $(am__append_2) \
|
$(am__append_2) $(am__append_3)
|
||||||
$(am__append_3)
|
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
@ -439,7 +437,6 @@ distclean-compile:
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_driver.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_driver.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_exa.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_exa.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_g450pll.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_g450pll.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_halmod.Plo@am__quote@
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_hwcurs.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_hwcurs.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_merge.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_merge.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_shadow.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mga_shadow.Plo@am__quote@
|
||||||
|
@ -1,222 +0,0 @@
|
|||||||
/**************************************************************************************
|
|
||||||
|
|
||||||
@doc MGA MGA_STRUCT
|
|
||||||
|
|
||||||
@module MGA Structures | Structure of The MGA Layer
|
|
||||||
@normal Copyright © 1997, Matrox Graphics Inc.
|
|
||||||
|
|
||||||
All Rights Reserved.
|
|
||||||
|
|
||||||
@head3 MGA Structures |
|
|
||||||
@index struct | MGA_STRUCT
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
***************************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _BINDING
|
|
||||||
#define _BINDING
|
|
||||||
|
|
||||||
#ifndef _INTERNALBINDING
|
|
||||||
|
|
||||||
#define BINDING_NOERROR 0x00000000
|
|
||||||
#define BINDING_ERROR 0x90000000
|
|
||||||
#define FAR
|
|
||||||
#define DECL
|
|
||||||
|
|
||||||
typedef void VOID;
|
|
||||||
typedef void FAR *LPVOID;
|
|
||||||
typedef void FAR *LPBOARDHANDLE;
|
|
||||||
|
|
||||||
typedef long LONG;
|
|
||||||
typedef unsigned long ULONG;
|
|
||||||
typedef unsigned long FLONG;
|
|
||||||
typedef unsigned long FAR *LPULONG;
|
|
||||||
|
|
||||||
typedef char CHAR;
|
|
||||||
typedef unsigned char UCHAR;
|
|
||||||
typedef unsigned char FAR*LPUCHAR;
|
|
||||||
|
|
||||||
#endif /* _INTERNALBINDING */
|
|
||||||
|
|
||||||
/***************************************************************************************************
|
|
||||||
MGAHWINFO STRUCTURE
|
|
||||||
***************************************************************************************************
|
|
||||||
@struct MGAHWINFO | Public MGA Board Information
|
|
||||||
@field OUT ULONG | ulCapsFirstOutput | Capabilities of firts output
|
|
||||||
@flag Bit 0 | Analog output supported on primary CRTC
|
|
||||||
@flag Bit 1 | Digital output supported on primary CRTC
|
|
||||||
@flag Bit 2 | TV output supported on primary CRTC
|
|
||||||
@flag Bit 3 | Analog output supported on second CRTC
|
|
||||||
@flag Bit 4 | Digital output supported on second CRTC
|
|
||||||
@flag Bit 5 | TV output supported on second CRTC
|
|
||||||
@flag Bit 6 | VGA output supported
|
|
||||||
@field OUT ULONG | ulCapsSecondOutput | Capabilities of second output
|
|
||||||
@flag Bit 0 | Analog output supported on primary CRTC
|
|
||||||
@flag Bit 1 | Digital output supported on primary CRTC
|
|
||||||
@flag Bit 2 | TV output supported on primary CRTC
|
|
||||||
@flag Bit 3 | Analog output supported on second CRTC
|
|
||||||
@flag Bit 4 | Digital output supported on second CRTC
|
|
||||||
@flag Bit 5 | TV output supported on second CRTC
|
|
||||||
@flag Bit 6 | VGA output supported
|
|
||||||
@field OUT ULONG | ulVideoMemory | Total number of video memory in bytes
|
|
||||||
@end
|
|
||||||
**************************************************************************************************/
|
|
||||||
typedef struct TAGMGAHWINFO {
|
|
||||||
ULONG ulCapsFirstOutput;
|
|
||||||
ULONG ulCapsSecondOutput;
|
|
||||||
ULONG ulVideoMemory;
|
|
||||||
} MGAHWINFO, FAR *LPMGAHWINFO;
|
|
||||||
|
|
||||||
/***************************************************************************************************
|
|
||||||
MGAMODEINFO STRUCTURE
|
|
||||||
***************************************************************************************************
|
|
||||||
@struct MGAMODEINFO | Mode Information
|
|
||||||
@field IN FLONG | flOutput | Where we want to apply this parameters
|
|
||||||
@flag Bit 0 | Use second CRTC
|
|
||||||
@flag Bit 1 | Use primary analog output
|
|
||||||
@flag Bit 2 | Use secondary analog output
|
|
||||||
@flag Bit 3 | Use primary digital output
|
|
||||||
@flag Bit 4 | Use secondary digital output
|
|
||||||
@flag Bit 5 | Force a particular frame buffer pitch
|
|
||||||
@flag Bit 6 | Force a particular display origin
|
|
||||||
@flag Bit 7-31 | Reserved
|
|
||||||
@field IN ULONG | ulDispWidth | Display Width in pixels
|
|
||||||
@field IN ULONG | ulDispHeight | Display Height in pixels
|
|
||||||
@field IN ULONG | ulDeskWidth | Desktop Width in pixels
|
|
||||||
@field IN ULONG | ulDeskHeight | Desktop Height in pixels
|
|
||||||
@field IN OUT ULONG | ulFBPitch | Frame Buffer Pitch in pixel
|
|
||||||
@field IN ULONG | ulBpp | Bits Per Pixels and input format
|
|
||||||
@flag lower 16 bit | Bits per pixel
|
|
||||||
<nl><tab> 8, 15, 16, 24 or 32
|
|
||||||
@flag upper 16 bit | Input format
|
|
||||||
<nl><tab> 0 RGB
|
|
||||||
<nl><tab> 1 RGBA
|
|
||||||
<nl><tab> 2 YcbCr 4:2:0 3 Planes
|
|
||||||
<nl><tab> 3 YcbCr 4:2:0 4 Planes
|
|
||||||
<nl><tab> 4 YcbCr 4:2:2-UYVY
|
|
||||||
<nl><tab> 5 YcbCr 4:2:2-YUY2
|
|
||||||
<nl><tab> 6-10 none interleave mode
|
|
||||||
<nl><tab> 6 NI RGBA
|
|
||||||
<nl><tab> 7 NI YcbCr 4:2:0 3 Planes
|
|
||||||
<nl><tab> 8 NI YcbCr 4:2:0 4 Planes
|
|
||||||
<nl><tab> 9 NI YcbCr 4:2:2-UYVY
|
|
||||||
<nl><tab> 10 NI YcbCr 4:2:2-YUY2
|
|
||||||
@field IN ULONG | ulZoom | Zoom factor
|
|
||||||
@flag 1x (1), 2x (2) or 4x (4)|
|
|
||||||
@field IN OUT FLONG | flSignalMode | Signal Mode
|
|
||||||
@flag Bit 0 | Interlace (0 : Non-interlace / 1: Interlace)
|
|
||||||
@flag Bit 1 | Overscan (0 : No Overscan / 1 : Overscan)
|
|
||||||
@flag Bit 2 | Horizontal Sync Polarity (0 : Negative / 1 : Positive)
|
|
||||||
@flag Bit 3 | Vertical Sync Polarity (0 : Negative / 1 : Positive)
|
|
||||||
@flag Bit 4-7 | Standard TV output
|
|
||||||
<nl><tab>000 - PAL B G H
|
|
||||||
<nl><tab>001 - NTSC M
|
|
||||||
<nl><tab>010..111 - Reserved
|
|
||||||
@flag Bit 8-31 | Reserved for future use
|
|
||||||
@field IN OUT ULONG | ulRefreshRate | Vertical Refresh Rate in Hz
|
|
||||||
@field IN OUT ULONG | ulHorizRate | Horizontal Refresh Rate in KHz
|
|
||||||
@field IN OUT ULONG | ulPixClock | Pixel Clock in kHz
|
|
||||||
@field IN OUT ULONG | ulHFPorch | Horizontal front porch in pixels
|
|
||||||
@field IN OUT ULONG | ulHSync | Horizontal Sync in pixels
|
|
||||||
@field IN OUT ULONG | ulHBPorch | Horizontal back porch in pixels
|
|
||||||
@field IN OUT ULONG | ulVFPorch | Vertical front porch in lines
|
|
||||||
@field IN OUT ULONG | ulVSync | Vertical Sync in lines
|
|
||||||
@field IN OUT ULONG | ulVBPorch | Vertical back Porch in lines
|
|
||||||
@field IN OUT ULONG | ulDisplayOrg | Origin of the display Offset(pixels)
|
|
||||||
@field IN OUT ULONG | ulDstOrg | Origin of the drawing Offset in the frame (pixels)
|
|
||||||
@field IN OUT ULONG | ulPanXGran | Panning in X granularity in pixel
|
|
||||||
@field IN OUT ULONG | ulPanYGran | Panning in Y granularity in pixel
|
|
||||||
@field IN OUT ULONG | ulTVStandard | TV Standard
|
|
||||||
@field IN OUT ULONG | ulCableType | Cable Type
|
|
||||||
@end
|
|
||||||
**************************************************************************************************/
|
|
||||||
typedef struct TAGMAGMODEINFO {
|
|
||||||
FLONG flOutput; /* Where we want to apply this parameters */
|
|
||||||
ULONG ulDispWidth; /* Display Width in pixels */
|
|
||||||
ULONG ulDispHeight; /* Display Height in pixels */
|
|
||||||
ULONG ulDeskWidth; /* Desktop Width in pixels */
|
|
||||||
ULONG ulDeskHeight; /* Desktop Height in pixels */
|
|
||||||
ULONG ulFBPitch; /* Frame Buffer Pitch in pixel */
|
|
||||||
ULONG ulBpp; /* Bits Per Pixels / input format */
|
|
||||||
ULONG ulZoom; /* Zoom factor */
|
|
||||||
FLONG flSignalMode; /* Signal Mode */
|
|
||||||
ULONG ulRefreshRate; /* Vertical Refresh Rate in Hz */
|
|
||||||
ULONG ulHorizRate; /* Horizontal Refresh Rate in KHz */
|
|
||||||
ULONG ulPixClock; /* Pixel Clock in kHz */
|
|
||||||
ULONG ulHFPorch; /* Horizontal front porch in pixels */
|
|
||||||
ULONG ulHSync; /* Horizontal Sync in pixels */
|
|
||||||
ULONG ulHBPorch; /* Horizontal back porch in pixels */
|
|
||||||
ULONG ulVFPorch; /* Vertical front porch in lines */
|
|
||||||
ULONG ulVSync; /* Vertical Sync in lines */
|
|
||||||
ULONG ulVBPorch; /* Vertical back Porch in lines */
|
|
||||||
ULONG ulDisplayOrg; /* Origin of the display Offset(bytes) */
|
|
||||||
ULONG ulDstOrg; /* Origin of the drawing Offset in the frame (bytes) */
|
|
||||||
ULONG ulPanXGran; /* Panning in X granularity in pixel */
|
|
||||||
ULONG ulPanYGran; /* Panning in Y granularity in pixel */
|
|
||||||
ULONG ulTVStandard; /* TV Standard */
|
|
||||||
ULONG ulCableType; /* Cable Type */
|
|
||||||
} MGAMODEINFO, FAR *LPMGAMODEINFO;
|
|
||||||
|
|
||||||
#define MGAHWINFOCAPS_CRTC1_ANALOG 1L
|
|
||||||
#define MGAHWINFOCAPS_CRTC1_DIGITAL (1L << 1)
|
|
||||||
#define MGAHWINFOCAPS_CRTC1_TV (1L << 2)
|
|
||||||
#define MGAHWINFOCAPS_CRTC2_ANALOG (1L << 3)
|
|
||||||
#define MGAHWINFOCAPS_CRTC2_DIGITAL (1L << 4)
|
|
||||||
#define MGAHWINFOCAPS_CRTC2_TV (1L << 5)
|
|
||||||
#define MGAHWINFOCAPS_OUTPUT_VGA (1L << 6)
|
|
||||||
#define MGAHWINFOCAPS_CRTC2 (MGAHWINFOCAPS_CRTC2_ANALOG | MGAHWINFOCAPS_CRTC2_DIGITAL | MGAHWINFOCAPS_CRTC2_TV)
|
|
||||||
#define MGAHWINFOCAPS_OUTPUT_ANALOG (MGAHWINFOCAPS_CRTC1_ANALOG | MGAHWINFOCAPS_CRTC2_ANALOG)
|
|
||||||
#define MGAHWINFOCAPS_OUTPUT_DIGITAL (MGAHWINFOCAPS_CRTC1_DIGITAL | MGAHWINFOCAPS_CRTC2_DIGITAL)
|
|
||||||
#define MGAHWINFOCAPS_OUTPUT_TV (MGAHWINFOCAPS_CRTC1_TV | MGAHWINFOCAPS_CRTC2_TV)
|
|
||||||
|
|
||||||
#define MGAMODEINFO_SECOND_CRTC 1L
|
|
||||||
#define MGAMODEINFO_ANALOG1 (1L << 1)
|
|
||||||
#define MGAMODEINFO_ANALOG2 (1L << 2)
|
|
||||||
#define MGAMODEINFO_DIGITAL1 (1L << 3)
|
|
||||||
#define MGAMODEINFO_DIGITAL2 (1L << 4)
|
|
||||||
#define MGAMODEINFO_FORCE_PITCH (1L << 5)
|
|
||||||
#define MGAMODEINFO_FORCE_DISPLAYORG (1L << 6)
|
|
||||||
#define MGAMODEINFO_TV (1L << 7)
|
|
||||||
#define MGAMODEINFO_TESTONLY 0x80000000
|
|
||||||
|
|
||||||
/* Cable Type */
|
|
||||||
#define TV_YC_COMPOSITE 0
|
|
||||||
#define TV_SCART_RGB 1
|
|
||||||
#define TV_SCART_COMPOSITE 2
|
|
||||||
#define TV_SCART_TYPE2 3
|
|
||||||
|
|
||||||
/* TV Standard */
|
|
||||||
|
|
||||||
#define TV_PAL 0
|
|
||||||
#define TV_NTSC 1
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ULONG MGACloseLibrary(LPBOARDHANDLE pBoard);
|
|
||||||
ULONG MGAValidateMode(LPBOARDHANDLE pBoard, LPMGAMODEINFO pMgaModeInfo);
|
|
||||||
ULONG MGAValidateVideoParameters(LPBOARDHANDLE pBoard, LPMGAMODEINFO pMgaModeInfo);
|
|
||||||
ULONG MGASetMode(LPBOARDHANDLE pBoard, LPMGAMODEINFO pMgaModeInfo);
|
|
||||||
ULONG MGASetTVMode(LPBOARDHANDLE pBoard, LPMGAMODEINFO pMgaModeInfo);
|
|
||||||
ULONG MGASetVgaMode(LPBOARDHANDLE pBoard);
|
|
||||||
ULONG MGASaveVgaState(LPBOARDHANDLE pBoard);
|
|
||||||
ULONG MGARestoreVgaState(LPBOARDHANDLE pBoard);
|
|
||||||
ULONG MGAInitHardware(LPBOARDHANDLE pBoard);
|
|
||||||
ULONG MGAGetVideoParameters(LPBOARDHANDLE pBoard, LPMGAMODEINFO pMgaModeInfo, ULONG ulRefresh);
|
|
||||||
ULONG MGAGetHardwareInfo(LPBOARDHANDLE pBoard, LPMGAHWINFO pMgaHwInfo);
|
|
||||||
LPVOID MGAGetClientPointer(LPBOARDHANDLE pBoard);
|
|
||||||
ULONG MGAOpenLibrary(LPBOARDHANDLE pBoard, LPVOID lpClient, ULONG ulClientSize);
|
|
||||||
ULONG MGAGetBOARDHANDLESize(void);
|
|
||||||
ULONG MGASetTVStandard(LPBOARDHANDLE pBoard, ULONG ulTVStandard);
|
|
||||||
ULONG MGASetTVCableType(LPBOARDHANDLE pBoard, ULONG ulCableType);
|
|
||||||
ULONG HALSetDisplayStart(LPBOARDHANDLE pBoard, ULONG x, ULONG y, ULONG crtc);
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _BINDING */
|
|
||||||
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
#ifndef _CLIENT
|
|
||||||
#define _CLIENT
|
|
||||||
|
|
||||||
#include "binding.h"
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef void* LPBIOSREGS;
|
|
||||||
#define ASSERT_HANDLER(pBoard)
|
|
||||||
|
|
||||||
typedef struct TAGCLIENTDATA
|
|
||||||
{
|
|
||||||
ULONG ulFrameBufferBase;
|
|
||||||
ULONG ulRegisterBase;
|
|
||||||
pointer pMga;
|
|
||||||
} CLIENTDATA, *LPCLIENTDATA;
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ESC_CUSTOM_SET_FUNCTION_PTR 0x80000200
|
|
||||||
#define ESC_CUSTOM_GET_FUNCTION_PTR 0x80000201
|
|
||||||
#define ESC_CUSTOM_PATCH_HSL 0x80000202
|
|
||||||
|
|
||||||
#endif
|
|
@ -41,11 +41,7 @@
|
|||||||
#define _XF86DRI_SERVER_
|
#define _XF86DRI_SERVER_
|
||||||
#include "mga_dripriv.h"
|
#include "mga_dripriv.h"
|
||||||
#include "dri.h"
|
#include "dri.h"
|
||||||
#include "GL/glxint.h"
|
|
||||||
|
|
||||||
#include "dri.h"
|
|
||||||
|
|
||||||
#include "GL/glxint.h"
|
|
||||||
#include "mga_dri.h"
|
#include "mga_dri.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -150,7 +146,9 @@ void MGAdbg_outreg32(ScrnInfoPtr, int,int, char*);
|
|||||||
#define PCI_CHIP_MGAG200_EW3_PCI 0x0536
|
#define PCI_CHIP_MGAG200_EW3_PCI 0x0536
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef PCI_CHIP_MGAG200_EH3_PCI
|
||||||
|
#define PCI_CHIP_MGAG200_EH3_PCI 0x0538
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read/write to the DAC via MMIO
|
* Read/write to the DAC via MMIO
|
||||||
@ -220,9 +218,9 @@ typedef struct {
|
|||||||
unsigned char * DacRegs;
|
unsigned char * DacRegs;
|
||||||
unsigned long crtc2[0x58];
|
unsigned long crtc2[0x58];
|
||||||
unsigned char dac2[0x21];
|
unsigned char dac2[0x21];
|
||||||
CARD32 Option;
|
uint32_t Option;
|
||||||
CARD32 Option2;
|
uint32_t Option2;
|
||||||
CARD32 Option3;
|
uint32_t Option3;
|
||||||
long Clock;
|
long Clock;
|
||||||
unsigned char Pan_Ctl;
|
unsigned char Pan_Ctl;
|
||||||
Bool PIXPLLCSaved;
|
Bool PIXPLLCSaved;
|
||||||
@ -523,7 +521,7 @@ typedef struct {
|
|||||||
MessageType BiosFrom;
|
MessageType BiosFrom;
|
||||||
#endif
|
#endif
|
||||||
unsigned long FbAddress;
|
unsigned long FbAddress;
|
||||||
unsigned char * IOBase;
|
void * IOBase;
|
||||||
unsigned char * FbBase;
|
unsigned char * FbBase;
|
||||||
unsigned char * ILOADBase;
|
unsigned char * ILOADBase;
|
||||||
unsigned char * FbStart;
|
unsigned char * FbStart;
|
||||||
@ -561,7 +559,7 @@ typedef struct {
|
|||||||
CARD32 MAccess;
|
CARD32 MAccess;
|
||||||
int FifoSize;
|
int FifoSize;
|
||||||
int StyleLen;
|
int StyleLen;
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
XAAInfoRecPtr AccelInfoRec;
|
XAAInfoRecPtr AccelInfoRec;
|
||||||
#endif
|
#endif
|
||||||
xf86CursorInfoPtr CursorInfoRec;
|
xf86CursorInfoPtr CursorInfoRec;
|
||||||
@ -609,9 +607,6 @@ typedef struct {
|
|||||||
Bool directRenderingEnabled;
|
Bool directRenderingEnabled;
|
||||||
DRIInfoPtr pDRIInfo;
|
DRIInfoPtr pDRIInfo;
|
||||||
int drmFD;
|
int drmFD;
|
||||||
int numVisualConfigs;
|
|
||||||
__GLXvisualConfig* pVisualConfigs;
|
|
||||||
MGAConfigPrivPtr pVisualConfigsPriv;
|
|
||||||
MGADRIServerPrivatePtr DRIServerInfo;
|
MGADRIServerPrivatePtr DRIServerInfo;
|
||||||
|
|
||||||
MGARegRec DRContextRegs;
|
MGARegRec DRContextRegs;
|
||||||
@ -742,8 +737,9 @@ Bool mgaExaInit(ScreenPtr pScreen);
|
|||||||
|
|
||||||
Bool MGAHWCursorInit(ScreenPtr pScreen);
|
Bool MGAHWCursorInit(ScreenPtr pScreen);
|
||||||
|
|
||||||
|
#ifdef USE_XAA
|
||||||
void MGAPolyArcThinSolid(DrawablePtr, GCPtr, int, xArc*);
|
void MGAPolyArcThinSolid(DrawablePtr, GCPtr, int, xArc*);
|
||||||
|
#endif /* USE_XAA */
|
||||||
|
|
||||||
Bool MGADGAInit(ScreenPtr pScreen);
|
Bool MGADGAInit(ScreenPtr pScreen);
|
||||||
|
|
||||||
|
@ -59,6 +59,7 @@ in this Software without prior written authorization from The Open Group.
|
|||||||
OUTREG(MGAREG_YDSTLEN + MGAREG_EXEC, ((y) << 16) | 1); \
|
OUTREG(MGAREG_YDSTLEN + MGAREG_EXEC, ((y) << 16) | 1); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_XAA
|
||||||
static void
|
static void
|
||||||
MGAZeroArc(
|
MGAZeroArc(
|
||||||
DrawablePtr pDraw,
|
DrawablePtr pDraw,
|
||||||
@ -220,4 +221,5 @@ MGAPolyArcThinSolid (
|
|||||||
miPolyArc(pDraw, pGC, 1, arc);
|
miPolyArc(pDraw, pGC, 1, arc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* USE_XAA */
|
||||||
|
|
||||||
|
@ -297,7 +297,6 @@ Bool mga_read_and_process_bios( ScrnInfoPtr pScrn )
|
|||||||
#ifndef XSERVER_LIBPCIACCESS
|
#ifndef XSERVER_LIBPCIACCESS
|
||||||
Bool pciBIOS = TRUE;
|
Bool pciBIOS = TRUE;
|
||||||
#endif
|
#endif
|
||||||
int rlen;
|
|
||||||
static const unsigned expected_length[] = { 0, 64, 64, 64, 128, 128 };
|
static const unsigned expected_length[] = { 0, 64, 64, 64, 128, 128 };
|
||||||
unsigned version;
|
unsigned version;
|
||||||
unsigned pins_len;
|
unsigned pins_len;
|
||||||
|
@ -694,8 +694,8 @@ MGA3026Init(ScrnInfoPtr pScrn, DisplayModePtr mode)
|
|||||||
MGA_NOT_HAL(MGATi3026SetMCLK(pScrn, MGAdac->MemoryClock));
|
MGA_NOT_HAL(MGATi3026SetMCLK(pScrn, MGAdac->MemoryClock));
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
ErrorF("%6ld: %02X %02X %02X %02X %02X %02X %08lX\n", mode->Clock,
|
ErrorF("%6d: %02X %02X %02X %02X %02X %02X %08X\n", mode->Clock,
|
||||||
pReg->DacClk[0], pReg->DacClk[1], pReg->DacClk[2], pReg->DacClk[3], pReg->DacClk[4], pReg->DacClk[5], pReg->Option);
|
pReg->DacClk[0], pReg->DacClk[1], pReg->DacClk[2], pReg->DacClk[3], pReg->DacClk[4], pReg->DacClk[5], (unsigned)pReg->Option);
|
||||||
for (i=0; i<sizeof(MGADACregs); i++) ErrorF("%02X ", pReg->DacRegs[i]);
|
for (i=0; i<sizeof(MGADACregs); i++) ErrorF("%02X ", pReg->DacRegs[i]);
|
||||||
for (i=0; i<6; i++) ErrorF(" %02X", pReg->ExtVga[i]);
|
for (i=0; i<6; i++) ErrorF(" %02X", pReg->ExtVga[i]);
|
||||||
ErrorF("\n");
|
ErrorF("\n");
|
||||||
@ -863,8 +863,8 @@ MGA3026Save(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, MGARegPtr mgaReg,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
ErrorF("read: %02X %02X %02X %02X %02X %02X %08lX\n",
|
ErrorF("read: %02X %02X %02X %02X %02X %02X %08X\n",
|
||||||
mgaReg->DacClk[0], mgaReg->DacClk[1], mgaReg->DacClk[2], mgaReg->DacClk[3], mgaReg->DacClk[4], mgaReg->DacClk[5], mgaReg->Option);
|
mgaReg->DacClk[0], mgaReg->DacClk[1], mgaReg->DacClk[2], mgaReg->DacClk[3], mgaReg->DacClk[4], mgaReg->DacClk[5], (unsigned)mgaReg->Option);
|
||||||
for (i=0; i<sizeof(MGADACregs); i++) ErrorF("%02X ", mgaReg->DacRegs[i]);
|
for (i=0; i<sizeof(MGADACregs); i++) ErrorF("%02X ", mgaReg->DacRegs[i]);
|
||||||
for (i=0; i<6; i++) ErrorF(" %02X", mgaReg->ExtVga[i]);
|
for (i=0; i<6; i++) ErrorF(" %02X", mgaReg->ExtVga[i]);
|
||||||
ErrorF("\n");
|
ErrorF("\n");
|
||||||
|
@ -58,7 +58,6 @@ MGAG200E4ComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
{
|
{
|
||||||
unsigned int ulComputedFo;
|
unsigned int ulComputedFo;
|
||||||
unsigned int ulFDelta;
|
unsigned int ulFDelta;
|
||||||
unsigned int ulFPermitedDelta;
|
|
||||||
unsigned int ulFTmpDelta;
|
unsigned int ulFTmpDelta;
|
||||||
unsigned int ulVCOMax, ulVCOMin;
|
unsigned int ulVCOMax, ulVCOMin;
|
||||||
unsigned int ulTestP;
|
unsigned int ulTestP;
|
||||||
@ -81,8 +80,6 @@ MGAG200E4ComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
ulFoInternal = lFo * 2;
|
ulFoInternal = lFo * 2;
|
||||||
|
|
||||||
ulFDelta = 0xFFFFFFFF;
|
ulFDelta = 0xFFFFFFFF;
|
||||||
/* Permited delta is 0.5% as VESA Specification */
|
|
||||||
ulFPermitedDelta = ulFoInternal * 5 / 1000;
|
|
||||||
|
|
||||||
for (i = 0 ; i < P_ARRAY_SIZE ; i++)
|
for (i = 0 ; i < P_ARRAY_SIZE ; i++)
|
||||||
{
|
{
|
||||||
@ -125,7 +122,6 @@ MGAG200SEComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
{
|
{
|
||||||
unsigned int ulComputedFo;
|
unsigned int ulComputedFo;
|
||||||
unsigned int ulFDelta;
|
unsigned int ulFDelta;
|
||||||
unsigned int ulFPermitedDelta;
|
|
||||||
unsigned int ulFTmpDelta;
|
unsigned int ulFTmpDelta;
|
||||||
unsigned int ulVCOMax, ulVCOMin;
|
unsigned int ulVCOMax, ulVCOMin;
|
||||||
unsigned int ulTestP;
|
unsigned int ulTestP;
|
||||||
@ -138,8 +134,6 @@ MGAG200SEComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
ulPLLFreqRef = 25000;
|
ulPLLFreqRef = 25000;
|
||||||
|
|
||||||
ulFDelta = 0xFFFFFFFF;
|
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% */
|
/* Then we need to minimize the M while staying within 0.5% */
|
||||||
for (ulTestP = 8; ulTestP > 0; ulTestP >>= 1) {
|
for (ulTestP = 8; ulTestP > 0; ulTestP >>= 1) {
|
||||||
@ -170,7 +164,6 @@ MGAG200EVComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
{
|
{
|
||||||
unsigned int ulComputedFo;
|
unsigned int ulComputedFo;
|
||||||
unsigned int ulFDelta;
|
unsigned int ulFDelta;
|
||||||
unsigned int ulFPermitedDelta;
|
|
||||||
unsigned int ulFTmpDelta;
|
unsigned int ulFTmpDelta;
|
||||||
unsigned int ulTestP;
|
unsigned int ulTestP;
|
||||||
unsigned int ulTestM;
|
unsigned int ulTestM;
|
||||||
@ -184,8 +177,6 @@ MGAG200EVComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
ulPLLFreqRef = 50000;
|
ulPLLFreqRef = 50000;
|
||||||
|
|
||||||
ulFDelta = 0xFFFFFFFF;
|
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% */
|
/* Then we need to minimize the M while staying within 0.5% */
|
||||||
for (ulTestP = 16; ulTestP > 0; ulTestP--) {
|
for (ulTestP = 16; ulTestP > 0; ulTestP--) {
|
||||||
@ -221,7 +212,6 @@ MGAG200WBComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
{
|
{
|
||||||
unsigned int ulComputedFo;
|
unsigned int ulComputedFo;
|
||||||
unsigned int ulFDelta;
|
unsigned int ulFDelta;
|
||||||
unsigned int ulFPermitedDelta;
|
|
||||||
unsigned int ulFTmpDelta;
|
unsigned int ulFTmpDelta;
|
||||||
unsigned int ulVCOMax, ulVCOMin;
|
unsigned int ulVCOMax, ulVCOMin;
|
||||||
unsigned int ulTestP;
|
unsigned int ulTestP;
|
||||||
@ -244,8 +234,6 @@ MGAG200WBComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
ulTestMEnd = 16;
|
ulTestMEnd = 16;
|
||||||
|
|
||||||
ulFDelta = 0xFFFFFFFF;
|
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% */
|
/* Then we need to minimize the M while staying within 0.5% */
|
||||||
for (ulTestP = ulTestPStart; ulTestP < 9; ulTestP++) {
|
for (ulTestP = ulTestPStart; ulTestP < 9; ulTestP++) {
|
||||||
@ -281,7 +269,6 @@ MGAG200EW3ComputePLLParam(ScrnInfoPtr pScrn ,long lFo, int *M, int *N, int *P)
|
|||||||
{
|
{
|
||||||
unsigned int ulComputedFo;
|
unsigned int ulComputedFo;
|
||||||
unsigned int ulFDelta;
|
unsigned int ulFDelta;
|
||||||
unsigned int ulFPermitedDelta;
|
|
||||||
unsigned int ulFTmpDelta;
|
unsigned int ulFTmpDelta;
|
||||||
unsigned int ulVCOMax, ulVCOMin;
|
unsigned int ulVCOMax, ulVCOMin;
|
||||||
unsigned int ulTestP1;
|
unsigned int ulTestP1;
|
||||||
@ -311,8 +298,6 @@ MGAG200EW3ComputePLLParam(ScrnInfoPtr pScrn ,long lFo, int *M, int *N, int *P)
|
|||||||
ulTestNEnd = 2048;
|
ulTestNEnd = 2048;
|
||||||
|
|
||||||
ulFDelta = 0xFFFFFFFF;
|
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% */
|
/* Then we need to minimize the M while staying within 0.5% */
|
||||||
for (ulTestP1 = ulTestP1Start; ulTestP1 < ulTestP1End; ulTestP1++) {
|
for (ulTestP1 = ulTestP1Start; ulTestP1 < ulTestP1End; ulTestP1++) {
|
||||||
@ -349,7 +334,6 @@ MGAG200EHComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
{
|
{
|
||||||
unsigned int ulComputedFo;
|
unsigned int ulComputedFo;
|
||||||
unsigned int ulFDelta;
|
unsigned int ulFDelta;
|
||||||
unsigned int ulFPermitedDelta;
|
|
||||||
unsigned int ulFTmpDelta;
|
unsigned int ulFTmpDelta;
|
||||||
unsigned int ulTestP;
|
unsigned int ulTestP;
|
||||||
unsigned int ulTestM;
|
unsigned int ulTestM;
|
||||||
@ -363,8 +347,6 @@ MGAG200EHComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
ulPLLFreqRef = 33333;
|
ulPLLFreqRef = 33333;
|
||||||
|
|
||||||
ulFDelta = 0xFFFFFFFF;
|
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% */
|
/* Then we need to minimize the M while staying within 0.5% */
|
||||||
for (ulTestP = 16; ulTestP > 0; ulTestP>>= 1) {
|
for (ulTestP = 16; ulTestP > 0; ulTestP>>= 1) {
|
||||||
@ -393,6 +375,49 @@ MGAG200EHComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
MGAG200EH3ComputePLLParam(ScrnInfoPtr pScrn, long lFo, int *M, int *N, int *P)
|
||||||
|
{
|
||||||
|
unsigned int ulComputedFo;
|
||||||
|
unsigned int ulFDelta;
|
||||||
|
unsigned int ulFTmpDelta;
|
||||||
|
unsigned int ulTestP;
|
||||||
|
unsigned int ulTestM;
|
||||||
|
unsigned int ulTestN;
|
||||||
|
unsigned int ulVCOMax;
|
||||||
|
unsigned int ulVCOMin;
|
||||||
|
unsigned int ulPLLFreqRef;
|
||||||
|
|
||||||
|
ulVCOMax = 3000000;
|
||||||
|
ulVCOMin = 1500000;
|
||||||
|
ulPLLFreqRef = 25000;
|
||||||
|
|
||||||
|
ulTestP = 0;
|
||||||
|
|
||||||
|
ulFDelta = 0xFFFFFFFF;
|
||||||
|
|
||||||
|
/* Then we need to minimize the M while staying within 0.5% */
|
||||||
|
for (ulTestM = 150; ulTestM >= 6; ulTestM--) {
|
||||||
|
if ((lFo * ulTestM) > ulVCOMax) continue;
|
||||||
|
if ((lFo * ulTestM) < ulVCOMin) continue;
|
||||||
|
|
||||||
|
for (ulTestN = 120; ulTestN >= 60; ulTestN--) {
|
||||||
|
ulComputedFo = (ulPLLFreqRef * ulTestN) / ulTestM;
|
||||||
|
if (ulComputedFo > lFo)
|
||||||
|
ulFTmpDelta = ulComputedFo - lFo;
|
||||||
|
else
|
||||||
|
ulFTmpDelta = lFo - ulComputedFo;
|
||||||
|
|
||||||
|
if (ulFTmpDelta < ulFDelta) {
|
||||||
|
ulFDelta = ulFTmpDelta;
|
||||||
|
*M = (CARD8)(ulTestM);
|
||||||
|
*N = (CARD8)(ulTestN);
|
||||||
|
*P = (CARD8)(ulTestP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
MGAG200EVPIXPLLSET(ScrnInfoPtr pScrn, MGARegPtr mgaReg)
|
MGAG200EVPIXPLLSET(ScrnInfoPtr pScrn, MGARegPtr mgaReg)
|
||||||
{
|
{
|
||||||
@ -781,12 +806,8 @@ MGAG200EHPIXPLLSET(ScrnInfoPtr pScrn, MGARegPtr mgaReg)
|
|||||||
{
|
{
|
||||||
MGAPtr pMga = MGAPTR(pScrn);
|
MGAPtr pMga = MGAPTR(pScrn);
|
||||||
|
|
||||||
unsigned long ulFallBackCounter, ulLoopCount, ulLockCheckIterations = 0, ulTempCount, ulVCount;
|
unsigned long ulLoopCount, ulLockCheckIterations = 0, ulTempCount, ulVCount;
|
||||||
unsigned char ucTempByte, ucPixCtrl, ucPLLLocked = FALSE;
|
unsigned char ucTempByte, ucPixCtrl, ucPLLLocked = FALSE;
|
||||||
unsigned char ucM;
|
|
||||||
unsigned char ucN;
|
|
||||||
unsigned char ucP;
|
|
||||||
unsigned char ucS;
|
|
||||||
|
|
||||||
while(ulLockCheckIterations <= 32 && ucPLLLocked == FALSE)
|
while(ulLockCheckIterations <= 32 && ucPLLLocked == FALSE)
|
||||||
{
|
{
|
||||||
@ -940,8 +961,8 @@ MGAGCalcClock ( ScrnInfoPtr pScrn, long f_out,
|
|||||||
/*
|
/*
|
||||||
* Pick the closest frequency.
|
* Pick the closest frequency.
|
||||||
*/
|
*/
|
||||||
if ( abs(calc_f - f_vco) < m_err ) {
|
if ( fabs(calc_f - f_vco) < m_err ) {
|
||||||
m_err = abs(calc_f - f_vco);
|
m_err = fabs(calc_f - f_vco);
|
||||||
*best_m = m;
|
*best_m = m;
|
||||||
*best_n = n;
|
*best_n = n;
|
||||||
}
|
}
|
||||||
@ -1056,7 +1077,14 @@ MGAGSetPCLK( ScrnInfoPtr pScrn, long f_out )
|
|||||||
pReg->PllN = n;
|
pReg->PllN = n;
|
||||||
pReg->PllP = p;
|
pReg->PllP = p;
|
||||||
} else if (pMga->is_G200EH) {
|
} else if (pMga->is_G200EH) {
|
||||||
|
if (pMga->Chipset == PCI_CHIP_MGAG200_EH3_PCI)
|
||||||
|
{
|
||||||
|
MGAG200EH3ComputePLLParam(pScrn, f_out, &m, &n, &p);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
MGAG200EHComputePLLParam(pScrn, f_out, &m, &n, &p);
|
MGAG200EHComputePLLParam(pScrn, f_out, &m, &n, &p);
|
||||||
|
}
|
||||||
|
|
||||||
pReg->PllM = m;
|
pReg->PllM = m;
|
||||||
pReg->PllN = n;
|
pReg->PllN = n;
|
||||||
@ -1263,6 +1291,7 @@ MGAGInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case PCI_CHIP_MGAG200_EH_PCI:
|
case PCI_CHIP_MGAG200_EH_PCI:
|
||||||
|
case PCI_CHIP_MGAG200_EH3_PCI:
|
||||||
pReg->DacRegs[MGA1064_MISC_CTL] =
|
pReg->DacRegs[MGA1064_MISC_CTL] =
|
||||||
MGA1064_MISC_CTL_VGA8 |
|
MGA1064_MISC_CTL_VGA8 |
|
||||||
MGA1064_MISC_CTL_DAC_RAM_CS;
|
MGA1064_MISC_CTL_DAC_RAM_CS;
|
||||||
@ -1756,8 +1785,8 @@ MGA_NOT_HAL(
|
|||||||
ErrorF("0x%02X, ", mgaReg->DacRegs[i]);
|
ErrorF("0x%02X, ", mgaReg->DacRegs[i]);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
ErrorF("\nOPTION = %08lX\n", mgaReg->Option);
|
ErrorF("\nOPTION = %08X\n", (unsigned)mgaReg->Option);
|
||||||
ErrorF("OPTION2 = %08lX\n", mgaReg->Option2);
|
ErrorF("OPTION2 = %08X\n", (unsigned)mgaReg->Option2);
|
||||||
ErrorF("CRTCEXT:");
|
ErrorF("CRTCEXT:");
|
||||||
for (i=0; i<6; i++) ErrorF(" %02X", mgaReg->ExtVga[i]);
|
for (i=0; i<6; i++) ErrorF(" %02X", mgaReg->ExtVga[i]);
|
||||||
ErrorF("\n");
|
ErrorF("\n");
|
||||||
@ -1901,8 +1930,8 @@ MGAGSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, MGARegPtr mgaReg,
|
|||||||
ErrorF("0x%02X, ", mgaReg->DacRegs[i]);
|
ErrorF("0x%02X, ", mgaReg->DacRegs[i]);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
ErrorF("\nOPTION = %08lX\n:", mgaReg->Option);
|
ErrorF("\nOPTION = %08X\n:", (unsigned)mgaReg->Option);
|
||||||
ErrorF("OPTION2 = %08lX\nCRTCEXT:", mgaReg->Option2);
|
ErrorF("OPTION2 = %08X\nCRTCEXT:", (unsigned)mgaReg->Option2);
|
||||||
for (i=0; i<6; i++) ErrorF(" %02X", mgaReg->ExtVga[i]);
|
for (i=0; i<6; i++) ErrorF(" %02X", mgaReg->ExtVga[i]);
|
||||||
ErrorF("\n");
|
ErrorF("\n");
|
||||||
#endif
|
#endif
|
||||||
@ -2119,7 +2148,7 @@ MGAG_I2CPutBits(I2CBusPtr b, int clock, int data)
|
|||||||
|
|
||||||
|
|
||||||
static I2CBusPtr
|
static I2CBusPtr
|
||||||
mgag_create_i2c_bus(const char *name, unsigned bus_index, unsigned scrn_index)
|
mgag_create_i2c_bus(char *name, unsigned bus_index, unsigned scrn_index)
|
||||||
{
|
{
|
||||||
I2CBusPtr I2CPtr = xf86CreateI2CBusRec();
|
I2CBusPtr I2CPtr = xf86CreateI2CBusRec();
|
||||||
|
|
||||||
@ -2129,7 +2158,7 @@ mgag_create_i2c_bus(const char *name, unsigned bus_index, unsigned scrn_index)
|
|||||||
I2CPtr->I2CPutBits = MGAG_I2CPutBits;
|
I2CPtr->I2CPutBits = MGAG_I2CPutBits;
|
||||||
I2CPtr->I2CGetBits = MGAG_I2CGetBits;
|
I2CPtr->I2CGetBits = MGAG_I2CGetBits;
|
||||||
I2CPtr->AcknTimeout = 5;
|
I2CPtr->AcknTimeout = 5;
|
||||||
I2CPtr->DriverPrivate.ptr = & i2c_priv[bus_index];
|
I2CPtr->DriverPrivate.ptr = (void *) &i2c_priv[bus_index];
|
||||||
|
|
||||||
if (!xf86I2CBusInit(I2CPtr)) {
|
if (!xf86I2CBusInit(I2CPtr)) {
|
||||||
xf86DestroyI2CBusRec(I2CPtr, TRUE, TRUE);
|
xf86DestroyI2CBusRec(I2CPtr, TRUE, TRUE);
|
||||||
|
@ -15,7 +15,7 @@ static Bool MGA_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **,
|
|||||||
static Bool MGA_SetMode(ScrnInfoPtr, DGAModePtr);
|
static Bool MGA_SetMode(ScrnInfoPtr, DGAModePtr);
|
||||||
static int MGA_GetViewport(ScrnInfoPtr);
|
static int MGA_GetViewport(ScrnInfoPtr);
|
||||||
static void MGA_SetViewport(ScrnInfoPtr, int, int, int);
|
static void MGA_SetViewport(ScrnInfoPtr, int, int, int);
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
static void MGA_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
|
static void MGA_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
|
||||||
static void MGA_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
|
static void MGA_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
|
||||||
static void MGA_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int,
|
static void MGA_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int,
|
||||||
@ -30,7 +30,7 @@ DGAFunctionRec MGA_DGAFuncs = {
|
|||||||
MGA_SetViewport,
|
MGA_SetViewport,
|
||||||
MGA_GetViewport,
|
MGA_GetViewport,
|
||||||
MGAStormSync,
|
MGAStormSync,
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
MGA_FillRect,
|
MGA_FillRect,
|
||||||
MGA_BlitRect,
|
MGA_BlitRect,
|
||||||
MGA_BlitTransRect
|
MGA_BlitTransRect
|
||||||
@ -124,7 +124,7 @@ SECOND_PASS:
|
|||||||
mode->flags = DGA_CONCURRENT_ACCESS;
|
mode->flags = DGA_CONCURRENT_ACCESS;
|
||||||
if(pixmap)
|
if(pixmap)
|
||||||
mode->flags |= DGA_PIXMAP_AVAILABLE;
|
mode->flags |= DGA_PIXMAP_AVAILABLE;
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
if(!pMga->NoAccel) {
|
if(!pMga->NoAccel) {
|
||||||
mode->flags |= DGA_FILL_RECT | DGA_BLIT_RECT;
|
mode->flags |= DGA_FILL_RECT | DGA_BLIT_RECT;
|
||||||
if((Bpp != 3) && (pMga->Chipset != PCI_CHIP_MGA2064))
|
if((Bpp != 3) && (pMga->Chipset != PCI_CHIP_MGA2064))
|
||||||
@ -365,7 +365,7 @@ MGA_SetViewport(
|
|||||||
pMga->DGAViewportStatus = 0; /* MGAAdjustFrame loops until finished */
|
pMga->DGAViewportStatus = 0; /* MGAAdjustFrame loops until finished */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
static void
|
static void
|
||||||
MGA_FillRect (
|
MGA_FillRect (
|
||||||
ScrnInfoPtr pScrn,
|
ScrnInfoPtr pScrn,
|
||||||
|
@ -48,15 +48,8 @@
|
|||||||
#include "mga_drm.h"
|
#include "mga_drm.h"
|
||||||
|
|
||||||
#define _XF86DRI_SERVER_
|
#define _XF86DRI_SERVER_
|
||||||
#include "GL/glxtokens.h"
|
|
||||||
#include "sarea.h"
|
#include "sarea.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "GL/glxtokens.h"
|
|
||||||
|
|
||||||
#include "mga_reg.h"
|
#include "mga_reg.h"
|
||||||
#include "mga.h"
|
#include "mga.h"
|
||||||
#include "mga_macros.h"
|
#include "mga_macros.h"
|
||||||
@ -67,224 +60,6 @@
|
|||||||
static char MGAKernelDriverName[] = "mga";
|
static char MGAKernelDriverName[] = "mga";
|
||||||
static char MGAClientDriverName[] = "mga";
|
static char MGAClientDriverName[] = "mga";
|
||||||
|
|
||||||
/* Initialize the visual configs that are supported by the hardware.
|
|
||||||
* These are combined with the visual configs that the indirect
|
|
||||||
* rendering core supports, and the intersection is exported to the
|
|
||||||
* client.
|
|
||||||
*/
|
|
||||||
static Bool MGAInitVisualConfigs( ScreenPtr pScreen )
|
|
||||||
{
|
|
||||||
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
|
|
||||||
MGAPtr pMga = MGAPTR(pScrn);
|
|
||||||
int numConfigs = 0;
|
|
||||||
__GLXvisualConfig *pConfigs = 0;
|
|
||||||
MGAConfigPrivPtr pMGAConfigs = 0;
|
|
||||||
MGAConfigPrivPtr *pMGAConfigPtrs = 0;
|
|
||||||
int i, db, depth, stencil, accum;
|
|
||||||
|
|
||||||
switch ( pScrn->bitsPerPixel ) {
|
|
||||||
case 8:
|
|
||||||
case 24:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 16:
|
|
||||||
numConfigs = 8;
|
|
||||||
|
|
||||||
pConfigs = (__GLXvisualConfig*)calloc( sizeof(__GLXvisualConfig),
|
|
||||||
numConfigs );
|
|
||||||
if ( !pConfigs ) {
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
pMGAConfigs = (MGAConfigPrivPtr)calloc( sizeof(MGAConfigPrivRec),
|
|
||||||
numConfigs );
|
|
||||||
if ( !pMGAConfigs ) {
|
|
||||||
free(pConfigs);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
pMGAConfigPtrs = (MGAConfigPrivPtr*)calloc( sizeof(MGAConfigPrivPtr),
|
|
||||||
numConfigs );
|
|
||||||
if ( !pMGAConfigPtrs ) {
|
|
||||||
free(pConfigs);
|
|
||||||
free(pMGAConfigs);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
for ( i = 0 ; i < numConfigs ; i++ ) {
|
|
||||||
pMGAConfigPtrs[i] = &pMGAConfigs[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
i = 0;
|
|
||||||
for ( accum = 0 ; accum <= 1 ; accum++ ) {
|
|
||||||
for ( stencil = 0 ; stencil <= 1 ; stencil++ ) {
|
|
||||||
for ( db = 1 ; db >= 0 ; db-- ) {
|
|
||||||
pConfigs[i].vid = -1;
|
|
||||||
pConfigs[i].class = -1;
|
|
||||||
pConfigs[i].rgba = TRUE;
|
|
||||||
pConfigs[i].redSize = 5;
|
|
||||||
pConfigs[i].greenSize = 6;
|
|
||||||
pConfigs[i].blueSize = 5;
|
|
||||||
pConfigs[i].alphaSize = 0;
|
|
||||||
pConfigs[i].redMask = 0x0000F800;
|
|
||||||
pConfigs[i].greenMask = 0x000007E0;
|
|
||||||
pConfigs[i].blueMask = 0x0000001F;
|
|
||||||
pConfigs[i].alphaMask = 0;
|
|
||||||
if ( accum ) {
|
|
||||||
pConfigs[i].accumRedSize = 16;
|
|
||||||
pConfigs[i].accumGreenSize = 16;
|
|
||||||
pConfigs[i].accumBlueSize = 16;
|
|
||||||
pConfigs[i].accumAlphaSize = 0;
|
|
||||||
} else {
|
|
||||||
pConfigs[i].accumRedSize = 0;
|
|
||||||
pConfigs[i].accumGreenSize = 0;
|
|
||||||
pConfigs[i].accumBlueSize = 0;
|
|
||||||
pConfigs[i].accumAlphaSize = 0;
|
|
||||||
}
|
|
||||||
if ( db ) {
|
|
||||||
pConfigs[i].doubleBuffer = TRUE;
|
|
||||||
} else {
|
|
||||||
pConfigs[i].doubleBuffer = FALSE;
|
|
||||||
}
|
|
||||||
pConfigs[i].stereo = FALSE;
|
|
||||||
pConfigs[i].bufferSize = 16;
|
|
||||||
pConfigs[i].depthSize = 16;
|
|
||||||
if ( stencil ) {
|
|
||||||
pConfigs[i].stencilSize = 8;
|
|
||||||
} else {
|
|
||||||
pConfigs[i].stencilSize = 0;
|
|
||||||
}
|
|
||||||
pConfigs[i].auxBuffers = 0;
|
|
||||||
pConfigs[i].level = 0;
|
|
||||||
if ( accum || stencil ) {
|
|
||||||
pConfigs[i].visualRating = GLX_SLOW_CONFIG;
|
|
||||||
} else {
|
|
||||||
pConfigs[i].visualRating = GLX_NONE;
|
|
||||||
}
|
|
||||||
pConfigs[i].transparentPixel = GLX_NONE;
|
|
||||||
pConfigs[i].transparentRed = 0;
|
|
||||||
pConfigs[i].transparentGreen = 0;
|
|
||||||
pConfigs[i].transparentBlue = 0;
|
|
||||||
pConfigs[i].transparentAlpha = 0;
|
|
||||||
pConfigs[i].transparentIndex = 0;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( i != numConfigs ) {
|
|
||||||
xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
|
|
||||||
"[drm] Incorrect initialization of visuals\n" );
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 32:
|
|
||||||
numConfigs = 8;
|
|
||||||
|
|
||||||
pConfigs = (__GLXvisualConfig*)calloc( sizeof(__GLXvisualConfig),
|
|
||||||
numConfigs );
|
|
||||||
if ( !pConfigs ) {
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
pMGAConfigs = (MGAConfigPrivPtr)calloc( sizeof(MGAConfigPrivRec),
|
|
||||||
numConfigs );
|
|
||||||
if ( !pMGAConfigs ) {
|
|
||||||
free(pConfigs);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
pMGAConfigPtrs = (MGAConfigPrivPtr*)calloc( sizeof(MGAConfigPrivPtr),
|
|
||||||
numConfigs );
|
|
||||||
if ( !pMGAConfigPtrs ) {
|
|
||||||
free(pConfigs);
|
|
||||||
free(pMGAConfigs);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
for ( i = 0 ; i < numConfigs ; i++ ) {
|
|
||||||
pMGAConfigPtrs[i] = &pMGAConfigs[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
i = 0;
|
|
||||||
for ( accum = 0 ; accum <= 1 ; accum++ ) {
|
|
||||||
for ( depth = 0 ; depth <= 1 ; depth++ ) { /* and stencil */
|
|
||||||
for ( db = 1 ; db >= 0 ; db-- ) {
|
|
||||||
pConfigs[i].vid = -1;
|
|
||||||
pConfigs[i].class = -1;
|
|
||||||
pConfigs[i].rgba = TRUE;
|
|
||||||
pConfigs[i].redSize = 8;
|
|
||||||
pConfigs[i].greenSize = 8;
|
|
||||||
pConfigs[i].blueSize = 8;
|
|
||||||
pConfigs[i].alphaSize = 0;
|
|
||||||
pConfigs[i].redMask = 0x00FF0000;
|
|
||||||
pConfigs[i].greenMask = 0x0000FF00;
|
|
||||||
pConfigs[i].blueMask = 0x000000FF;
|
|
||||||
pConfigs[i].alphaMask = 0x0;
|
|
||||||
if ( accum ) {
|
|
||||||
pConfigs[i].accumRedSize = 16;
|
|
||||||
pConfigs[i].accumGreenSize = 16;
|
|
||||||
pConfigs[i].accumBlueSize = 16;
|
|
||||||
pConfigs[i].accumAlphaSize = 0;
|
|
||||||
} else {
|
|
||||||
pConfigs[i].accumRedSize = 0;
|
|
||||||
pConfigs[i].accumGreenSize = 0;
|
|
||||||
pConfigs[i].accumBlueSize = 0;
|
|
||||||
pConfigs[i].accumAlphaSize = 0;
|
|
||||||
}
|
|
||||||
if ( db ) {
|
|
||||||
pConfigs[i].doubleBuffer = TRUE;
|
|
||||||
} else {
|
|
||||||
pConfigs[i].doubleBuffer = FALSE;
|
|
||||||
}
|
|
||||||
pConfigs[i].stereo = FALSE;
|
|
||||||
pConfigs[i].bufferSize = 24;
|
|
||||||
if ( depth ) {
|
|
||||||
pConfigs[i].depthSize = 24;
|
|
||||||
pConfigs[i].stencilSize = 8;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
pConfigs[i].depthSize = 0;
|
|
||||||
pConfigs[i].stencilSize = 0;
|
|
||||||
}
|
|
||||||
pConfigs[i].auxBuffers = 0;
|
|
||||||
pConfigs[i].level = 0;
|
|
||||||
if ( accum ) {
|
|
||||||
pConfigs[i].visualRating = GLX_SLOW_CONFIG;
|
|
||||||
} else {
|
|
||||||
pConfigs[i].visualRating = GLX_NONE;
|
|
||||||
}
|
|
||||||
pConfigs[i].transparentPixel = GLX_NONE;
|
|
||||||
pConfigs[i].transparentRed = 0;
|
|
||||||
pConfigs[i].transparentGreen = 0;
|
|
||||||
pConfigs[i].transparentBlue = 0;
|
|
||||||
pConfigs[i].transparentAlpha = 0;
|
|
||||||
pConfigs[i].transparentIndex = 0;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( i != numConfigs ) {
|
|
||||||
xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
|
|
||||||
"[drm] Incorrect initialization of visuals\n" );
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
/* Unexpected bits/pixels */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
pMga->numVisualConfigs = numConfigs;
|
|
||||||
pMga->pVisualConfigs = pConfigs;
|
|
||||||
pMga->pVisualConfigsPriv = pMGAConfigs;
|
|
||||||
|
|
||||||
GlxSetVisualConfigs( numConfigs, pConfigs, (void **)pMGAConfigPtrs );
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Bool MGACreateContext( ScreenPtr pScreen, VisualPtr visual,
|
static Bool MGACreateContext( ScreenPtr pScreen, VisualPtr visual,
|
||||||
drm_context_t hwContext, void *pVisualConfigPriv,
|
drm_context_t hwContext, void *pVisualConfigPriv,
|
||||||
DRIContextType contextStore )
|
DRIContextType contextStore )
|
||||||
@ -346,12 +121,13 @@ static void MGAWaitForIdleDMA( ScrnInfoPtr pScrn )
|
|||||||
void MGAGetQuiescence( ScrnInfoPtr pScrn )
|
void MGAGetQuiescence( ScrnInfoPtr pScrn )
|
||||||
{
|
{
|
||||||
MGAPtr pMga = MGAPTR(pScrn);
|
MGAPtr pMga = MGAPTR(pScrn);
|
||||||
|
#ifdef USE_XAA
|
||||||
|
MGAFBLayout *pLayout = &pMga->CurrentLayout;
|
||||||
|
#endif /* USE_XAA */
|
||||||
|
|
||||||
pMga->haveQuiescense = 1;
|
pMga->haveQuiescense = 1;
|
||||||
|
|
||||||
if ( pMga->directRenderingEnabled ) {
|
if ( pMga->directRenderingEnabled ) {
|
||||||
MGAFBLayout *pLayout = &pMga->CurrentLayout;
|
|
||||||
|
|
||||||
MGAWaitForIdleDMA( pScrn );
|
MGAWaitForIdleDMA( pScrn );
|
||||||
|
|
||||||
/* FIXME what about EXA? */
|
/* FIXME what about EXA? */
|
||||||
@ -958,7 +734,7 @@ static void MGADRIMoveBuffersXAA(WindowPtr pParent, DDXPointRec ptOldOrg,
|
|||||||
pboxNew1 = 0;
|
pboxNew1 = 0;
|
||||||
pptNew1 = 0;
|
pptNew1 = 0;
|
||||||
pboxNew2 = 0;
|
pboxNew2 = 0;
|
||||||
pboxNew2 = 0;
|
pptNew2 = 0;
|
||||||
pptSrc = &ptOldOrg;
|
pptSrc = &ptOldOrg;
|
||||||
|
|
||||||
dx = pParent->drawable.x - ptOldOrg.x;
|
dx = pParent->drawable.x - ptOldOrg.x;
|
||||||
@ -1095,10 +871,9 @@ Bool MGADRIScreenInit( ScreenPtr pScreen )
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check that the GLX, DRI, and DRM modules have been loaded by testing
|
/* Check that the DRI, and DRM modules have been loaded by testing
|
||||||
* for canonical symbols in each module.
|
* for canonical symbols in each module.
|
||||||
*/
|
*/
|
||||||
if ( !xf86LoaderCheckSymbol( "GlxSetVisualConfigs" ) ) return FALSE;
|
|
||||||
if ( !xf86LoaderCheckSymbol( "drmAvailable" ) ) return FALSE;
|
if ( !xf86LoaderCheckSymbol( "drmAvailable" ) ) return FALSE;
|
||||||
if ( !xf86LoaderCheckSymbol( "DRIQueryVersion" ) ) {
|
if ( !xf86LoaderCheckSymbol( "DRIQueryVersion" ) ) {
|
||||||
xf86DrvMsg( pScreen->myNum, X_ERROR,
|
xf86DrvMsg( pScreen->myNum, X_ERROR,
|
||||||
@ -1350,10 +1125,6 @@ Bool MGADRIScreenInit( ScreenPtr pScreen )
|
|||||||
&scratch_ptr);
|
&scratch_ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !MGAInitVisualConfigs( pScreen ) ) {
|
|
||||||
DRICloseScreen( pScreen );
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[dri] visual configs initialized\n" );
|
xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[dri] visual configs initialized\n" );
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -1495,6 +1266,4 @@ void MGADRICloseScreen( ScreenPtr pScreen )
|
|||||||
}
|
}
|
||||||
free(pMga->DRIServerInfo);
|
free(pMga->DRIServerInfo);
|
||||||
pMga->DRIServerInfo = 0;
|
pMga->DRIServerInfo = 0;
|
||||||
free(pMga->pVisualConfigs);
|
|
||||||
free(pMga->pVisualConfigsPriv);
|
|
||||||
}
|
}
|
||||||
|
@ -28,19 +28,8 @@
|
|||||||
#ifndef __MGA_DRIPRIV_H__
|
#ifndef __MGA_DRIPRIV_H__
|
||||||
#define __MGA_DRIPRIV_H__
|
#define __MGA_DRIPRIV_H__
|
||||||
|
|
||||||
#include "GL/glxint.h"
|
|
||||||
|
|
||||||
#define MGA_MAX_DRAWABLES 256
|
#define MGA_MAX_DRAWABLES 256
|
||||||
|
|
||||||
extern void GlxSetVisualConfigs( int nconfigs,
|
|
||||||
__GLXvisualConfig *configs,
|
|
||||||
void **configprivs );
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
/* Nothing here yet */
|
|
||||||
int dummy;
|
|
||||||
} MGAConfigPrivRec, *MGAConfigPrivPtr;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* Nothing here yet */
|
/* Nothing here yet */
|
||||||
int dummy;
|
int dummy;
|
||||||
|
@ -423,6 +423,21 @@ static const struct mga_device_attributes attribs[] = {
|
|||||||
MGA_HOST_PCI /* Host interface */
|
MGA_HOST_PCI /* Host interface */
|
||||||
},
|
},
|
||||||
|
|
||||||
|
16384, 0x4000, /* Memory probe size & offset values */
|
||||||
|
},
|
||||||
|
|
||||||
|
[17] = { 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 */
|
||||||
|
},
|
||||||
|
|
||||||
16384, 0x4000, /* Memory probe size & offset values */
|
16384, 0x4000, /* Memory probe size & offset values */
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -458,6 +473,8 @@ static const struct pci_id_match mga_device_match[] = {
|
|||||||
|
|
||||||
MGA_DEVICE_MATCH( PCI_CHIP_MGAG200_EW3_PCI, 16 ),
|
MGA_DEVICE_MATCH( PCI_CHIP_MGAG200_EW3_PCI, 16 ),
|
||||||
|
|
||||||
|
MGA_DEVICE_MATCH( PCI_CHIP_MGAG200_EH3_PCI, 17 ),
|
||||||
|
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
@ -479,6 +496,7 @@ static SymTabRec MGAChipsets[] = {
|
|||||||
{ PCI_CHIP_MGAG200_WINBOND_PCI, "mgag200 eW Nuvoton" },
|
{ PCI_CHIP_MGAG200_WINBOND_PCI, "mgag200 eW Nuvoton" },
|
||||||
{ PCI_CHIP_MGAG200_EW3_PCI, "mgag200 eW3 Nuvoton" },
|
{ PCI_CHIP_MGAG200_EW3_PCI, "mgag200 eW3 Nuvoton" },
|
||||||
{ PCI_CHIP_MGAG200_EH_PCI, "mgag200eH" },
|
{ PCI_CHIP_MGAG200_EH_PCI, "mgag200eH" },
|
||||||
|
{ PCI_CHIP_MGAG200_EH3_PCI, "mgag200eH3" },
|
||||||
{ PCI_CHIP_MGAG400, "mgag400" },
|
{ PCI_CHIP_MGAG400, "mgag400" },
|
||||||
{ PCI_CHIP_MGAG550, "mgag550" },
|
{ PCI_CHIP_MGAG550, "mgag550" },
|
||||||
{-1, NULL }
|
{-1, NULL }
|
||||||
@ -507,6 +525,8 @@ static PciChipsets MGAPciChipsets[] = {
|
|||||||
RES_SHARED_VGA },
|
RES_SHARED_VGA },
|
||||||
{ PCI_CHIP_MGAG200_EH_PCI, PCI_CHIP_MGAG200_EH_PCI,
|
{ PCI_CHIP_MGAG200_EH_PCI, PCI_CHIP_MGAG200_EH_PCI,
|
||||||
RES_SHARED_VGA },
|
RES_SHARED_VGA },
|
||||||
|
{ PCI_CHIP_MGAG200_EH3_PCI, PCI_CHIP_MGAG200_EH3_PCI,
|
||||||
|
RES_SHARED_VGA },
|
||||||
{ PCI_CHIP_MGAG400, PCI_CHIP_MGAG400, RES_SHARED_VGA },
|
{ PCI_CHIP_MGAG400, PCI_CHIP_MGAG400, RES_SHARED_VGA },
|
||||||
{ PCI_CHIP_MGAG550, PCI_CHIP_MGAG550, RES_SHARED_VGA },
|
{ PCI_CHIP_MGAG550, PCI_CHIP_MGAG550, RES_SHARED_VGA },
|
||||||
{ -1, -1, RES_UNDEFINED }
|
{ -1, -1, RES_UNDEFINED }
|
||||||
@ -680,7 +700,6 @@ MGAPciProbe(DriverPtr drv, int entity_num, struct pci_device * dev,
|
|||||||
intptr_t match_data)
|
intptr_t match_data)
|
||||||
{
|
{
|
||||||
ScrnInfoPtr pScrn = NULL;
|
ScrnInfoPtr pScrn = NULL;
|
||||||
EntityInfoPtr pEnt;
|
|
||||||
MGAPtr pMga;
|
MGAPtr pMga;
|
||||||
|
|
||||||
if (pci_device_has_kernel_driver(dev)) {
|
if (pci_device_has_kernel_driver(dev)) {
|
||||||
@ -693,6 +712,7 @@ MGAPciProbe(DriverPtr drv, int entity_num, struct pci_device * dev,
|
|||||||
case PCI_CHIP_MGAG200_ER_PCI:
|
case PCI_CHIP_MGAG200_ER_PCI:
|
||||||
case PCI_CHIP_MGAG200_WINBOND_PCI:
|
case PCI_CHIP_MGAG200_WINBOND_PCI:
|
||||||
case PCI_CHIP_MGAG200_EH_PCI:
|
case PCI_CHIP_MGAG200_EH_PCI:
|
||||||
|
case PCI_CHIP_MGAG200_EH3_PCI:
|
||||||
xf86DrvMsg(0, X_ERROR,
|
xf86DrvMsg(0, X_ERROR,
|
||||||
"mga: The PCI device 0x%x at %2.2d@%2.2d:%2.2d:%1.1d has a kernel module claiming it.\n",
|
"mga: The PCI device 0x%x at %2.2d@%2.2d:%2.2d:%1.1d has a kernel module claiming it.\n",
|
||||||
dev->device_id, dev->bus, dev->domain, dev->dev, dev->func);
|
dev->device_id, dev->bus, dev->domain, dev->dev, dev->func);
|
||||||
@ -737,7 +757,6 @@ MGAPciProbe(DriverPtr drv, int entity_num, struct pci_device * dev,
|
|||||||
* For cards that can do dual head per entity, mark the entity
|
* For cards that can do dual head per entity, mark the entity
|
||||||
* as sharable.
|
* as sharable.
|
||||||
*/
|
*/
|
||||||
pEnt = xf86GetEntityInfo(entity_num);
|
|
||||||
if (pMga->chip_attribs->dual_head_possible) {
|
if (pMga->chip_attribs->dual_head_possible) {
|
||||||
MGAEntPtr pMgaEnt = NULL;
|
MGAEntPtr pMgaEnt = NULL;
|
||||||
DevUnion *pPriv;
|
DevUnion *pPriv;
|
||||||
@ -948,6 +967,10 @@ MGAProbe(DriverPtr drv, int flags)
|
|||||||
attrib_no = 16;
|
attrib_no = 16;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PCI_CHIP_MGAG200_EH3_PCI:
|
||||||
|
attrib_no = 17;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -999,7 +1022,9 @@ MGASoftReset(ScrnInfoPtr pScrn)
|
|||||||
MGAPtr pMga = MGAPTR(pScrn);
|
MGAPtr pMga = MGAPTR(pScrn);
|
||||||
|
|
||||||
pMga->FbMapSize = 8192 * 1024;
|
pMga->FbMapSize = 8192 * 1024;
|
||||||
MGAMapMem(pScrn);
|
if (!MGAMapMem(pScrn)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* set soft reset bit */
|
/* set soft reset bit */
|
||||||
OUTREG(MGAREG_Reset, 1);
|
OUTREG(MGAREG_Reset, 1);
|
||||||
@ -1120,7 +1145,9 @@ MGACountRam(ScrnInfoPtr pScrn)
|
|||||||
ProbeSize = 16384;
|
ProbeSize = 16384;
|
||||||
ProbeSizeOffset = 0x10000;
|
ProbeSizeOffset = 0x10000;
|
||||||
pMga->FbMapSize = ProbeSize * 1024;
|
pMga->FbMapSize = ProbeSize * 1024;
|
||||||
MGAMapMem(pScrn);
|
if (!MGAMapMem(pScrn)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
base = pMga->FbBase;
|
base = pMga->FbBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1135,7 +1162,7 @@ MGACountRam(ScrnInfoPtr pScrn)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (pMga->is_G200WB) {
|
if (pMga->is_G200WB) {
|
||||||
CARD32 Option, MaxMapSize;
|
uint32_t Option, MaxMapSize;
|
||||||
|
|
||||||
#ifdef XSERVER_LIBPCIACCESS
|
#ifdef XSERVER_LIBPCIACCESS
|
||||||
pci_device_cfg_read_u32(pMga->PciInfo, &Option,
|
pci_device_cfg_read_u32(pMga->PciInfo, &Option,
|
||||||
@ -1160,7 +1187,9 @@ MGACountRam(ScrnInfoPtr pScrn)
|
|||||||
else {
|
else {
|
||||||
MGAUnmapMem(pScrn);
|
MGAUnmapMem(pScrn);
|
||||||
pMga->FbMapSize = ProbeSize * 1024;
|
pMga->FbMapSize = ProbeSize * 1024;
|
||||||
MGAMapMem(pScrn);
|
if (!MGAMapMem(pScrn)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
base = pMga->FbBase;
|
base = pMga->FbBase;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1567,7 +1596,8 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
|
|||||||
pMga->is_G200EV = (pMga->Chipset == PCI_CHIP_MGAG200_EV_PCI);
|
pMga->is_G200EV = (pMga->Chipset == PCI_CHIP_MGAG200_EV_PCI);
|
||||||
pMga->is_G200WB = (pMga->Chipset == PCI_CHIP_MGAG200_WINBOND_PCI)
|
pMga->is_G200WB = (pMga->Chipset == PCI_CHIP_MGAG200_WINBOND_PCI)
|
||||||
|| (pMga->Chipset == PCI_CHIP_MGAG200_EW3_PCI);
|
|| (pMga->Chipset == PCI_CHIP_MGAG200_EW3_PCI);
|
||||||
pMga->is_G200EH = (pMga->Chipset == PCI_CHIP_MGAG200_EH_PCI);
|
pMga->is_G200EH = (pMga->Chipset == PCI_CHIP_MGAG200_EH_PCI)
|
||||||
|
|| (pMga->Chipset == PCI_CHIP_MGAG200_EH3_PCI);
|
||||||
pMga->is_G200ER = (pMga->Chipset == PCI_CHIP_MGAG200_ER_PCI);
|
pMga->is_G200ER = (pMga->Chipset == PCI_CHIP_MGAG200_ER_PCI);
|
||||||
|
|
||||||
pMga->DualHeadEnabled = FALSE;
|
pMga->DualHeadEnabled = FALSE;
|
||||||
@ -1594,6 +1624,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
|
|||||||
case PCI_CHIP_MGAG200_ER_PCI:
|
case PCI_CHIP_MGAG200_ER_PCI:
|
||||||
case PCI_CHIP_MGAG200_WINBOND_PCI:
|
case PCI_CHIP_MGAG200_WINBOND_PCI:
|
||||||
case PCI_CHIP_MGAG200_EH_PCI:
|
case PCI_CHIP_MGAG200_EH_PCI:
|
||||||
|
case PCI_CHIP_MGAG200_EH3_PCI:
|
||||||
pMga->HWCursor = FALSE;
|
pMga->HWCursor = FALSE;
|
||||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
||||||
"HW cursor is not supported with video redirection on"
|
"HW cursor is not supported with video redirection on"
|
||||||
@ -1933,11 +1964,14 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
|
|||||||
} else {
|
} else {
|
||||||
int from = X_DEFAULT;
|
int from = X_DEFAULT;
|
||||||
#ifdef USE_EXA
|
#ifdef USE_EXA
|
||||||
char *s = xf86GetOptValString(pMga->Options, OPTION_ACCELMETHOD);
|
const char *s = xf86GetOptValString(pMga->Options, OPTION_ACCELMETHOD);
|
||||||
#endif
|
#endif
|
||||||
pMga->NoAccel = FALSE;
|
pMga->NoAccel = FALSE;
|
||||||
pMga->Exa = FALSE;
|
pMga->Exa = FALSE;
|
||||||
#ifdef USE_EXA
|
#ifdef USE_EXA
|
||||||
|
#ifndef USE_XAA
|
||||||
|
pMga->Exa = TRUE;
|
||||||
|
#endif
|
||||||
if (!xf86NameCmp(s, "EXA")) {
|
if (!xf86NameCmp(s, "EXA")) {
|
||||||
pMga->Exa = TRUE;
|
pMga->Exa = TRUE;
|
||||||
from = X_CONFIG;
|
from = X_CONFIG;
|
||||||
@ -2078,6 +2112,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
|
|||||||
case PCI_CHIP_MGAG200_EV_PCI:
|
case PCI_CHIP_MGAG200_EV_PCI:
|
||||||
case PCI_CHIP_MGAG200_EH_PCI:
|
case PCI_CHIP_MGAG200_EH_PCI:
|
||||||
case PCI_CHIP_MGAG200_ER_PCI:
|
case PCI_CHIP_MGAG200_ER_PCI:
|
||||||
|
case PCI_CHIP_MGAG200_EH3_PCI:
|
||||||
case PCI_CHIP_MGAG400:
|
case PCI_CHIP_MGAG400:
|
||||||
case PCI_CHIP_MGAG550:
|
case PCI_CHIP_MGAG550:
|
||||||
MGAGSetupFuncs(pScrn);
|
MGAGSetupFuncs(pScrn);
|
||||||
@ -2192,6 +2227,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
|
|||||||
case PCI_CHIP_MGAG200_EW3_PCI:
|
case PCI_CHIP_MGAG200_EW3_PCI:
|
||||||
case PCI_CHIP_MGAG200_EV_PCI:
|
case PCI_CHIP_MGAG200_EV_PCI:
|
||||||
case PCI_CHIP_MGAG200_EH_PCI:
|
case PCI_CHIP_MGAG200_EH_PCI:
|
||||||
|
case PCI_CHIP_MGAG200_EH3_PCI:
|
||||||
case PCI_CHIP_MGAG200_ER_PCI:
|
case PCI_CHIP_MGAG200_ER_PCI:
|
||||||
pMga->SrcOrg = 0;
|
pMga->SrcOrg = 0;
|
||||||
pMga->DstOrg = 0;
|
pMga->DstOrg = 0;
|
||||||
@ -2377,6 +2413,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
|
|||||||
case PCI_CHIP_MGAG200_EW3_PCI:
|
case PCI_CHIP_MGAG200_EW3_PCI:
|
||||||
case PCI_CHIP_MGAG200_EV_PCI:
|
case PCI_CHIP_MGAG200_EV_PCI:
|
||||||
case PCI_CHIP_MGAG200_EH_PCI:
|
case PCI_CHIP_MGAG200_EH_PCI:
|
||||||
|
case PCI_CHIP_MGAG200_EH3_PCI:
|
||||||
case PCI_CHIP_MGAG200_ER_PCI:
|
case PCI_CHIP_MGAG200_ER_PCI:
|
||||||
case PCI_CHIP_MGAG400:
|
case PCI_CHIP_MGAG400:
|
||||||
case PCI_CHIP_MGAG550:
|
case PCI_CHIP_MGAG550:
|
||||||
@ -2612,7 +2649,7 @@ MGAMapMem(ScrnInfoPtr pScrn)
|
|||||||
#ifdef XSERVER_LIBPCIACCESS
|
#ifdef XSERVER_LIBPCIACCESS
|
||||||
struct pci_device *const dev = pMga->PciInfo;
|
struct pci_device *const dev = pMga->PciInfo;
|
||||||
struct pci_mem_region *region;
|
struct pci_mem_region *region;
|
||||||
int i, err;
|
int err;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -2637,7 +2674,7 @@ MGAMapMem(ScrnInfoPtr pScrn)
|
|||||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
||||||
"MAPPED Framebuffer %08llX %llx to %08llX.\n",
|
"MAPPED Framebuffer %08llX %llx to %08llX.\n",
|
||||||
(long long)fbaddr, (long long)fbsize,
|
(long long)fbaddr, (long long)fbsize,
|
||||||
(long long)pMga->FbBase);
|
(long long)(uintptr_t)pMga->FbBase);
|
||||||
|
|
||||||
if(pMga->entityPrivate == NULL || pMga->entityPrivate->mappedIOUsage == 0) {
|
if(pMga->entityPrivate == NULL || pMga->entityPrivate->mappedIOUsage == 0) {
|
||||||
region = &dev->regions[pMga->io_bar];
|
region = &dev->regions[pMga->io_bar];
|
||||||
@ -2773,7 +2810,7 @@ MGAUnmapMem(ScrnInfoPtr pScrn)
|
|||||||
pMga->entityPrivate->mappedIOBase = NULL;
|
pMga->entityPrivate->mappedIOBase = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "UNMAPPING framebuffer 0x%08llX, 0x%llX.\n", (long long)pMga->FbBase, (long long)pMga->FbMapSize);
|
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "UNMAPPING framebuffer 0x%08llX, 0x%llX.\n", (long long)(uintptr_t)pMga->FbBase, (long long)pMga->FbMapSize);
|
||||||
pci_device_unmap_range(dev, pMga->FbBase,
|
pci_device_unmap_range(dev, pMga->FbBase,
|
||||||
pMga->FbMapSize);
|
pMga->FbMapSize);
|
||||||
#else
|
#else
|
||||||
@ -2941,19 +2978,27 @@ MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
|
|||||||
|
|
||||||
ulMemoryBandwidth = (mode->Clock * ulBitsPerPixel) / 1000;
|
ulMemoryBandwidth = (mode->Clock * ulBitsPerPixel) / 1000;
|
||||||
|
|
||||||
|
if (pMga->reg_1e24 >= 0x04)
|
||||||
|
{
|
||||||
|
ucHiPriLvl = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
if (ulMemoryBandwidth > 3100) ucHiPriLvl = 0;
|
if (ulMemoryBandwidth > 3100) ucHiPriLvl = 0;
|
||||||
else if (ulMemoryBandwidth > 2600) ucHiPriLvl = 1;
|
else if (ulMemoryBandwidth > 2600) ucHiPriLvl = 1;
|
||||||
else if (ulMemoryBandwidth > 1900) ucHiPriLvl = 2;
|
else if (ulMemoryBandwidth > 1900) ucHiPriLvl = 2;
|
||||||
else if (ulMemoryBandwidth > 1160) ucHiPriLvl = 3;
|
else if (ulMemoryBandwidth > 1160) ucHiPriLvl = 3;
|
||||||
else if (ulMemoryBandwidth > 440) ucHiPriLvl = 4;
|
else if (ulMemoryBandwidth > 440) ucHiPriLvl = 4;
|
||||||
else ucHiPriLvl = 5;
|
else ucHiPriLvl = 5;
|
||||||
|
}
|
||||||
|
|
||||||
OUTREG8(0x1FDE, 0x06);
|
OUTREG8(0x1FDE, 0x06);
|
||||||
OUTREG8(0x1FDF, ucHiPriLvl);
|
OUTREG8(0x1FDF, ucHiPriLvl);
|
||||||
|
|
||||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Clock == %d\n", mode->Clock);
|
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Clock == %u\n", mode->Clock);
|
||||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "BitsPerPixel == %d\n", pScrn->bitsPerPixel);
|
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "BitsPerPixel == %u\n", pScrn->bitsPerPixel);
|
||||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "MemoryBandwidth == %d\n", ulMemoryBandwidth);
|
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "MemoryBandwidth == %u\n", (unsigned)ulMemoryBandwidth);
|
||||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "HiPriLvl == %02X\n", ucHiPriLvl);
|
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "HiPriLvl == %02X\n", ucHiPriLvl);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -3103,7 +3148,7 @@ MGACrtc2FillStrip(ScrnInfoPtr pScrn)
|
|||||||
(pScrn->bitsPerPixel >> 3) * pScrn->displayWidth * pScrn->virtualY);
|
(pScrn->bitsPerPixel >> 3) * pScrn->displayWidth * pScrn->virtualY);
|
||||||
} else {
|
} else {
|
||||||
xf86SetLastScrnFlag(pScrn->entityList[0], pScrn->scrnIndex);
|
xf86SetLastScrnFlag(pScrn->entityList[0], pScrn->scrnIndex);
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
pMga->RestoreAccelState(pScrn);
|
pMga->RestoreAccelState(pScrn);
|
||||||
pMga->SetupForSolidFill(pScrn, 0, GXcopy, 0xFFFFFFFF);
|
pMga->SetupForSolidFill(pScrn, 0, GXcopy, 0xFFFFFFFF);
|
||||||
pMga->SubsequentSolidFillRect(pScrn, pScrn->virtualX, 0,
|
pMga->SubsequentSolidFillRect(pScrn, pScrn->virtualX, 0,
|
||||||
@ -3126,16 +3171,12 @@ MGAScreenInit(SCREEN_INIT_ARGS_DECL)
|
|||||||
vgaHWPtr hwp;
|
vgaHWPtr hwp;
|
||||||
MGAPtr pMga;
|
MGAPtr pMga;
|
||||||
MGARamdacPtr MGAdac;
|
MGARamdacPtr MGAdac;
|
||||||
int ret;
|
|
||||||
VisualPtr visual;
|
VisualPtr visual;
|
||||||
unsigned char *FBStart;
|
unsigned char *FBStart;
|
||||||
int width, height, displayWidth;
|
int width, height, displayWidth;
|
||||||
MGAEntPtr pMgaEnt = NULL;
|
MGAEntPtr pMgaEnt = NULL;
|
||||||
int f;
|
int f;
|
||||||
CARD32 VRTemp, FBTemp;
|
CARD32 VRTemp = 0, FBTemp = 0;
|
||||||
#ifdef MGADRI
|
|
||||||
MessageType driFrom = X_DEFAULT;
|
|
||||||
#endif
|
|
||||||
DPMSSetProcPtr mga_dpms_set_proc = NULL;
|
DPMSSetProcPtr mga_dpms_set_proc = NULL;
|
||||||
|
|
||||||
hwp = VGAHWPTR(pScrn);
|
hwp = VGAHWPTR(pScrn);
|
||||||
@ -3317,20 +3358,16 @@ MGAScreenInit(SCREEN_INIT_ARGS_DECL)
|
|||||||
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
|
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
|
||||||
"Not supported by hardware, not initializing the DRI\n");
|
"Not supported by hardware, not initializing the DRI\n");
|
||||||
pMga->directRenderingEnabled = FALSE;
|
pMga->directRenderingEnabled = FALSE;
|
||||||
driFrom = X_PROBED;
|
|
||||||
} else if (!xf86ReturnOptValBool(pMga->Options, OPTION_DRI, TRUE)) {
|
} else if (!xf86ReturnOptValBool(pMga->Options, OPTION_DRI, TRUE)) {
|
||||||
driFrom = X_CONFIG;
|
|
||||||
} else if ( pMga->NoAccel ) {
|
} else if ( pMga->NoAccel ) {
|
||||||
xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
|
xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
|
||||||
"Acceleration disabled, not initializing the DRI\n" );
|
"Acceleration disabled, not initializing the DRI\n" );
|
||||||
pMga->directRenderingEnabled = FALSE;
|
pMga->directRenderingEnabled = FALSE;
|
||||||
driFrom = X_CONFIG;
|
|
||||||
}
|
}
|
||||||
else if ( pMga->TexturedVideo == TRUE ) {
|
else if ( pMga->TexturedVideo == TRUE ) {
|
||||||
xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
|
xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
|
||||||
"Textured video enabled, not initializing the DRI\n" );
|
"Textured video enabled, not initializing the DRI\n" );
|
||||||
pMga->directRenderingEnabled = FALSE;
|
pMga->directRenderingEnabled = FALSE;
|
||||||
driFrom = X_CONFIG;
|
|
||||||
}
|
}
|
||||||
else if (pMga->SecondCrtc == TRUE) {
|
else if (pMga->SecondCrtc == TRUE) {
|
||||||
xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
|
xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
|
||||||
@ -3345,7 +3382,6 @@ MGAScreenInit(SCREEN_INIT_ARGS_DECL)
|
|||||||
"Need at least %d kB video memory at this resolution, bit depth\n",
|
"Need at least %d kB video memory at this resolution, bit depth\n",
|
||||||
(3 * displayWidth * height * (pScrn->bitsPerPixel >> 3)) / 1024 );
|
(3 * displayWidth * height * (pScrn->bitsPerPixel >> 3)) / 1024 );
|
||||||
pMga->directRenderingEnabled = FALSE;
|
pMga->directRenderingEnabled = FALSE;
|
||||||
driFrom = X_PROBED;
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pMga->directRenderingEnabled = MGADRIScreenInit(pScreen);
|
pMga->directRenderingEnabled = MGADRIScreenInit(pScreen);
|
||||||
@ -3712,7 +3748,7 @@ MGACloseScreen(CLOSE_SCREEN_ARGS_DECL)
|
|||||||
vgaHWPtr hwp = VGAHWPTR(pScrn);
|
vgaHWPtr hwp = VGAHWPTR(pScrn);
|
||||||
MGAPtr pMga = MGAPTR(pScrn);
|
MGAPtr pMga = MGAPTR(pScrn);
|
||||||
MGAEntPtr pMgaEnt = NULL;
|
MGAEntPtr pMgaEnt = NULL;
|
||||||
CARD32 VRTemp, FBTemp;
|
CARD32 VRTemp = 0, FBTemp = 0;
|
||||||
|
|
||||||
if (pMga->MergedFB)
|
if (pMga->MergedFB)
|
||||||
MGACloseScreenMerged(pScreen);
|
MGACloseScreenMerged(pScreen);
|
||||||
@ -3853,8 +3889,7 @@ MGAValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags)
|
|||||||
return MODE_VIRTUAL_Y;
|
return MODE_VIRTUAL_Y;
|
||||||
if (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 244)
|
if (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 244)
|
||||||
return MODE_BANDWIDTH;
|
return MODE_BANDWIDTH;
|
||||||
} else {
|
} else if (pMga->reg_1e24 == 0x02) {
|
||||||
if (pMga->reg_1e24 == 0x02) {
|
|
||||||
if (mode->HDisplay > 1920)
|
if (mode->HDisplay > 1920)
|
||||||
return MODE_VIRTUAL_X;
|
return MODE_VIRTUAL_X;
|
||||||
if (mode->VDisplay > 1200)
|
if (mode->VDisplay > 1200)
|
||||||
@ -3862,6 +3897,9 @@ MGAValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags)
|
|||||||
if (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 301)
|
if (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 301)
|
||||||
return MODE_BANDWIDTH;
|
return MODE_BANDWIDTH;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 550)
|
||||||
|
return MODE_BANDWIDTH;
|
||||||
}
|
}
|
||||||
} else if (pMga->is_G200WB){
|
} else if (pMga->is_G200WB){
|
||||||
if (mode->Flags & V_DBLSCAN)
|
if (mode->Flags & V_DBLSCAN)
|
||||||
@ -3878,7 +3916,7 @@ MGAValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags)
|
|||||||
} else if (pMga->is_G200EV
|
} else if (pMga->is_G200EV
|
||||||
&& (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 327)) {
|
&& (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 327)) {
|
||||||
return MODE_BANDWIDTH;
|
return MODE_BANDWIDTH;
|
||||||
} else if (pMga->is_G200EH
|
} else if (pMga->is_G200EH && (pMga->Chipset != PCI_CHIP_MGAG200_EH3_PCI)
|
||||||
&& (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 375)) {
|
&& (xf86ModeBandwidth(mode, pScrn->bitsPerPixel) > 375)) {
|
||||||
return MODE_BANDWIDTH;
|
return MODE_BANDWIDTH;
|
||||||
} else if (pMga->is_G200ER
|
} else if (pMga->is_G200ER
|
||||||
|
@ -695,6 +695,14 @@ mgaComposite(PixmapPtr pDst, int srcx, int srcy, int maskx, int masky,
|
|||||||
OUTREG(MGAREG_YDSTLEN | MGAREG_EXEC, (dsty << 16) | (h & 0xffff));
|
OUTREG(MGAREG_YDSTLEN | MGAREG_EXEC, (dsty << 16) | (h & 0xffff));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct unaligned_32 {
|
||||||
|
uint32_t val;
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
struct unaligned_64 {
|
||||||
|
uint64_t val;
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
mgaUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h,
|
mgaUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h,
|
||||||
char *src, int src_pitch)
|
char *src, int src_pitch)
|
||||||
@ -720,7 +728,15 @@ mgaUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h,
|
|||||||
OUTREG(MGAREG_YDSTLEN | MGAREG_EXEC, (y << 16) | (h & 0xffff));
|
OUTREG(MGAREG_YDSTLEN | MGAREG_EXEC, (y << 16) | (h & 0xffff));
|
||||||
|
|
||||||
while (h--) {
|
while (h--) {
|
||||||
memcpy (pMga->ILOADBase, src, bytes_padded);
|
int i = 0;
|
||||||
|
|
||||||
|
if (sizeof(long) == 8) {
|
||||||
|
for (; i + 4 < bytes_padded; i += 8)
|
||||||
|
*(volatile uint64_t *)(pMga->ILOADBase + i) = ((struct unaligned_64 *)(src + i))->val;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; i < bytes_padded; i += 4)
|
||||||
|
*(volatile uint32_t *)(pMga->ILOADBase + i) = ((struct unaligned_32 *)(src + i))->val;
|
||||||
src += src_pitch;
|
src += src_pitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -737,7 +753,7 @@ mgaWaitMarker(ScreenPtr pScreen, int marker)
|
|||||||
|
|
||||||
WAITFIFO(1);
|
WAITFIFO(1);
|
||||||
|
|
||||||
OUTREG(MGAREG_CACHEFLUSH, 0);
|
OUTREG8(MGAREG_CACHEFLUSH, 0);
|
||||||
|
|
||||||
/* wait until the "drawing engine busy" bit is unset */
|
/* wait until the "drawing engine busy" bit is unset */
|
||||||
while (INREG (MGAREG_Status) & 0x10000);
|
while (INREG (MGAREG_Status) & 0x10000);
|
||||||
|
@ -134,7 +134,7 @@ static CARD32 G450FindNextPLLParam(ScrnInfoPtr pScrn, CARD32 ulFout,
|
|||||||
*pulPLLMNP |= (CARD32)ucP;
|
*pulPLLMNP |= (CARD32)ucP;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
ErrorF("FINS_S: VCO = %d, S = %02X, *pulPLLMNP = %08X\n", ulVCO, (ULONG)ucS, *pulPLLMNP);
|
ErrorF("FINS_S: VCO = %d, S = %02X, *pulPLLMNP = %08X\n", (unsigned)ulVCO, (unsigned)ucS, (unsigned)*pulPLLMNP);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,7 +315,7 @@ double MGAG450SetPLLFreq(ScrnInfoPtr pScrn, long f_out)
|
|||||||
MGAPtr pMga = MGAPTR(pScrn);
|
MGAPtr pMga = MGAPTR(pScrn);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
xf86DrvMsg(pScrn->scrnIndex,X_INFO, "Restoring PLLClk = %d\n",f_out);
|
xf86DrvMsg(pScrn->scrnIndex,X_INFO, "Restoring PLLClk = %ld\n", f_out);
|
||||||
#endif
|
#endif
|
||||||
G450FindFirstPLLParam(pScrn, f_out, &ulMNP);
|
G450FindFirstPLLParam(pScrn, f_out, &ulMNP);
|
||||||
ulMNPTable[0] = ulMNP;
|
ulMNPTable[0] = ulMNP;
|
||||||
@ -489,7 +489,7 @@ MGAG450SavePLLFreq(ScrnInfoPtr pScrn)
|
|||||||
G450ApplyPFactor(pScrn, ucP, &freq);
|
G450ApplyPFactor(pScrn, ucP, &freq);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
xf86DrvMsg(pScrn->scrnIndex,X_INFO,"Saved PLLClk = %d\n",freq);
|
xf86DrvMsg(pScrn->scrnIndex,X_INFO,"Saved PLLClk = %u\n", (unsigned)freq);
|
||||||
#endif
|
#endif
|
||||||
return freq;
|
return freq;
|
||||||
}
|
}
|
||||||
@ -506,7 +506,7 @@ MGAG450PrintPLL(ScrnInfoPtr pScrn)
|
|||||||
ucP = (CARD8)(ulMNP & 0x03);
|
ucP = (CARD8)(ulMNP & 0x03);
|
||||||
G450ApplyPFactor(pScrn, ucP, &freq);
|
G450ApplyPFactor(pScrn, ucP, &freq);
|
||||||
|
|
||||||
xf86DrvMsg(pScrn->scrnIndex,X_INFO,"MGAGClock = %d -- MNP = 0x%x\n",
|
xf86DrvMsg(pScrn->scrnIndex,X_INFO,"MGAGClock = %u -- MNP = 0x%x\n",
|
||||||
freq,ulMNP);
|
(unsigned)freq, (unsigned)ulMNP);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "xf86Module.h"
|
|
||||||
|
|
||||||
#ifdef XFree86LOADER
|
|
||||||
|
|
||||||
#define HAL_MAJOR_VERSION 1
|
|
||||||
#define HAL_MINOR_VERSION 0
|
|
||||||
#define HAL_PATCHLEVEL 0
|
|
||||||
|
|
||||||
static MODULESETUPPROTO(halSetup);
|
|
||||||
|
|
||||||
static XF86ModuleVersionInfo halVersRec =
|
|
||||||
{
|
|
||||||
"mga_hal",
|
|
||||||
MODULEVENDORSTRING,
|
|
||||||
MODINFOSTRING1,
|
|
||||||
MODINFOSTRING2,
|
|
||||||
XORG_VERSION_CURRENT,
|
|
||||||
HAL_MAJOR_VERSION, HAL_MINOR_VERSION, HAL_PATCHLEVEL,
|
|
||||||
ABI_CLASS_VIDEODRV, /* This is a video driver */
|
|
||||||
ABI_VIDEODRV_VERSION,
|
|
||||||
MOD_CLASS_NONE,
|
|
||||||
{0,0,0,0}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is the module init data.
|
|
||||||
* Its name has to be the driver name followed by ModuleData.
|
|
||||||
*/
|
|
||||||
_X_EXPORT XF86ModuleData mga_halModuleData = { &halVersRec, halSetup, NULL };
|
|
||||||
|
|
||||||
static pointer
|
|
||||||
halSetup(pointer module, pointer opts, int *errmaj, int *errmin)
|
|
||||||
{
|
|
||||||
return (pointer)1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* XFree86LOADER */
|
|
@ -18,12 +18,12 @@
|
|||||||
#include "fbdevhw.h"
|
#include "fbdevhw.h"
|
||||||
|
|
||||||
static int
|
static int
|
||||||
StrToRanges(range* r, char* s) {
|
StrToRanges(range* r, const char* s) {
|
||||||
float num=0.0;
|
float num=0.0;
|
||||||
int rangenum=0;
|
int rangenum=0;
|
||||||
Bool gotdash = FALSE;
|
Bool gotdash = FALSE;
|
||||||
Bool nextdash = FALSE;
|
Bool nextdash = FALSE;
|
||||||
char* strnum=NULL;
|
const char* strnum=NULL;
|
||||||
do {
|
do {
|
||||||
switch(*s) {
|
switch(*s) {
|
||||||
case '0': case '1': case '2': case '3': case '4': case '5':
|
case '0': case '1': case '2': case '3': case '4': case '5':
|
||||||
@ -117,7 +117,7 @@ CopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest, DisplayModePtr i, DisplayM
|
|||||||
}
|
}
|
||||||
|
|
||||||
static DisplayModePtr
|
static DisplayModePtr
|
||||||
GetModeFromName(char* str, DisplayModePtr i)
|
GetModeFromName(const char* str, DisplayModePtr i)
|
||||||
{
|
{
|
||||||
DisplayModePtr c = i;
|
DisplayModePtr c = i;
|
||||||
if(!i) return NULL;
|
if(!i) return NULL;
|
||||||
@ -130,9 +130,9 @@ GetModeFromName(char* str, DisplayModePtr i)
|
|||||||
|
|
||||||
/* takes a config file string of MetaModes and generates a MetaModeList */
|
/* takes a config file string of MetaModes and generates a MetaModeList */
|
||||||
static DisplayModePtr
|
static DisplayModePtr
|
||||||
GenerateModeList(ScrnInfoPtr pScrn, char* str,
|
GenerateModeList(ScrnInfoPtr pScrn, const char* str,
|
||||||
DisplayModePtr i, DisplayModePtr j, MgaScrn2Rel srel) {
|
DisplayModePtr i, DisplayModePtr j, MgaScrn2Rel srel) {
|
||||||
char* strmode = str;
|
const char* strmode = str;
|
||||||
char modename[256];
|
char modename[256];
|
||||||
Bool gotdash = FALSE;
|
Bool gotdash = FALSE;
|
||||||
MgaScrn2Rel sr;
|
MgaScrn2Rel sr;
|
||||||
@ -165,7 +165,7 @@ GenerateModeList(ScrnInfoPtr pScrn, char* str,
|
|||||||
} else {
|
} else {
|
||||||
mode1 = GetModeFromName(modename,i);
|
mode1 = GetModeFromName(modename,i);
|
||||||
if(!mode1) {
|
if(!mode1) {
|
||||||
char* tmps = str;
|
const char* tmps = str;
|
||||||
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
|
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
|
||||||
"Mode: \"%s\" is not a supported mode for monitor 1\n",modename);
|
"Mode: \"%s\" is not a supported mode for monitor 1\n",modename);
|
||||||
/* find if a monitor2 mode follows */
|
/* find if a monitor2 mode follows */
|
||||||
@ -232,7 +232,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
|
|||||||
MGAPtr pMga1;
|
MGAPtr pMga1;
|
||||||
MessageType from;
|
MessageType from;
|
||||||
int i;
|
int i;
|
||||||
char* s;
|
const char* s;
|
||||||
ClockRangePtr clockRanges;
|
ClockRangePtr clockRanges;
|
||||||
MgaScrn2Rel Monitor2Pos;
|
MgaScrn2Rel Monitor2Pos;
|
||||||
|
|
||||||
@ -357,6 +357,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
|
|||||||
case PCI_CHIP_MGAG200_EV_PCI:
|
case PCI_CHIP_MGAG200_EV_PCI:
|
||||||
case PCI_CHIP_MGAG200_EH_PCI:
|
case PCI_CHIP_MGAG200_EH_PCI:
|
||||||
case PCI_CHIP_MGAG200_ER_PCI:
|
case PCI_CHIP_MGAG200_ER_PCI:
|
||||||
|
case PCI_CHIP_MGAG200_EH3_PCI:
|
||||||
case PCI_CHIP_MGAG400:
|
case PCI_CHIP_MGAG400:
|
||||||
case PCI_CHIP_MGAG550:
|
case PCI_CHIP_MGAG550:
|
||||||
MGAGSetupFuncs(pScrn);
|
MGAGSetupFuncs(pScrn);
|
||||||
@ -510,6 +511,7 @@ MGAPreInitMergedFB(ScrnInfoPtr pScrn1, int flags)
|
|||||||
case PCI_CHIP_MGAG200_EV_PCI:
|
case PCI_CHIP_MGAG200_EV_PCI:
|
||||||
case PCI_CHIP_MGAG200_EH_PCI:
|
case PCI_CHIP_MGAG200_EH_PCI:
|
||||||
case PCI_CHIP_MGAG200_ER_PCI:
|
case PCI_CHIP_MGAG200_ER_PCI:
|
||||||
|
case PCI_CHIP_MGAG200_EH3_PCI:
|
||||||
case PCI_CHIP_MGAG400:
|
case PCI_CHIP_MGAG400:
|
||||||
case PCI_CHIP_MGAG550:
|
case PCI_CHIP_MGAG550:
|
||||||
maxPitch = 4096;
|
maxPitch = 4096;
|
||||||
|
@ -23,10 +23,6 @@
|
|||||||
#include "miline.h"
|
#include "miline.h"
|
||||||
#include "servermd.h"
|
#include "servermd.h"
|
||||||
|
|
||||||
#ifdef MGADRI
|
|
||||||
#include "GL/glxtokens.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "mga.h"
|
#include "mga.h"
|
||||||
#include "mga_reg.h"
|
#include "mga_reg.h"
|
||||||
#include "mga_macros.h"
|
#include "mga_macros.h"
|
||||||
@ -61,7 +57,7 @@ do { \
|
|||||||
XAAMoveDWORDS((d),(s),(c)); \
|
XAAMoveDWORDS((d),(s),(c)); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
static void mgaSetupForSolidFill( ScrnInfoPtr pScrn, int color,
|
static void mgaSetupForSolidFill( ScrnInfoPtr pScrn, int color,
|
||||||
int rop, unsigned int planemask );
|
int rop, unsigned int planemask );
|
||||||
|
|
||||||
@ -576,20 +572,29 @@ MGASubsequentCPUToScreenTexture (
|
|||||||
|
|
||||||
Bool mgaAccelInit( ScreenPtr pScreen )
|
Bool mgaAccelInit( ScreenPtr pScreen )
|
||||||
{
|
{
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
XAAInfoRecPtr infoPtr;
|
XAAInfoRecPtr infoPtr;
|
||||||
#endif
|
#endif
|
||||||
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
|
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
|
||||||
MGAPtr pMga = MGAPTR(pScrn);
|
MGAPtr pMga = MGAPTR(pScrn);
|
||||||
int maxFastBlitMem, maxlines;
|
// int maxFastBlitMem, maxlines;
|
||||||
|
#ifdef USE_XAA
|
||||||
|
int maxFastBlitMem;
|
||||||
|
#endif /* USE_XAA */
|
||||||
|
int maxlines;
|
||||||
|
|
||||||
|
#if defined(USE_XAA) && defined(RENDER)
|
||||||
Bool doRender = FALSE;
|
Bool doRender = FALSE;
|
||||||
|
#endif /* defined(USE_XAA) && defined(RENDER) */
|
||||||
BoxRec AvailFBArea;
|
BoxRec AvailFBArea;
|
||||||
|
#ifdef USE_XAA
|
||||||
int i;
|
int i;
|
||||||
|
#endif /* USE_XAA */
|
||||||
|
|
||||||
pMga->ScratchBuffer = malloc(((pScrn->displayWidth * pMga->CurrentLayout.bitsPerPixel) + 127) >> 3);
|
pMga->ScratchBuffer = malloc(((pScrn->displayWidth * pMga->CurrentLayout.bitsPerPixel) + 127) >> 3);
|
||||||
if(!pMga->ScratchBuffer) return FALSE;
|
if(!pMga->ScratchBuffer) return FALSE;
|
||||||
|
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
pMga->AccelInfoRec = infoPtr = XAACreateInfoRec();
|
pMga->AccelInfoRec = infoPtr = XAACreateInfoRec();
|
||||||
if(!infoPtr) return FALSE;
|
if(!infoPtr) return FALSE;
|
||||||
#endif
|
#endif
|
||||||
@ -625,7 +630,7 @@ Bool mgaAccelInit( ScreenPtr pScreen )
|
|||||||
pMga->AtypeNoBLK = MGAAtypeNoBLK;
|
pMga->AtypeNoBLK = MGAAtypeNoBLK;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
/* fill out infoPtr here */
|
/* fill out infoPtr here */
|
||||||
infoPtr->Flags = PIXMAP_CACHE |
|
infoPtr->Flags = PIXMAP_CACHE |
|
||||||
OFFSCREEN_PIXMAPS |
|
OFFSCREEN_PIXMAPS |
|
||||||
@ -932,7 +937,7 @@ Bool mgaAccelInit( ScreenPtr pScreen )
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
for (i = 0; i < pScrn->numEntities; i++) {
|
for (i = 0; i < pScrn->numEntities; i++) {
|
||||||
if (xf86IsEntityShared(pScrn->entityList[i])) {
|
if (xf86IsEntityShared(pScrn->entityList[i])) {
|
||||||
infoPtr->RestoreAccelState = mgaRestoreAccelState;
|
infoPtr->RestoreAccelState = mgaRestoreAccelState;
|
||||||
@ -971,7 +976,7 @@ Bool mgaAccelInit( ScreenPtr pScreen )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
/* Support for multiscreen */
|
/* Support for multiscreen */
|
||||||
static void mgaRestoreAccelState(ScrnInfoPtr pScrn)
|
static void mgaRestoreAccelState(ScrnInfoPtr pScrn)
|
||||||
{
|
{
|
||||||
@ -1100,7 +1105,7 @@ void MGAStormEngineInit( ScrnInfoPtr pScrn )
|
|||||||
opmode &= ~0x30000;
|
opmode &= ~0x30000;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
pMga->SetupForSolidFill = mgaSetupForSolidFill;
|
pMga->SetupForSolidFill = mgaSetupForSolidFill;
|
||||||
pMga->SubsequentSolidFillRect = mgaSubsequentSolidFillRect;
|
pMga->SubsequentSolidFillRect = mgaSubsequentSolidFillRect;
|
||||||
pMga->RestoreAccelState = mgaRestoreAccelState;
|
pMga->RestoreAccelState = mgaRestoreAccelState;
|
||||||
@ -1152,6 +1157,7 @@ void MGAStormEngineInit( ScrnInfoPtr pScrn )
|
|||||||
case PCI_CHIP_MGAG200_EV_PCI:
|
case PCI_CHIP_MGAG200_EV_PCI:
|
||||||
case PCI_CHIP_MGAG200_EH_PCI:
|
case PCI_CHIP_MGAG200_EH_PCI:
|
||||||
case PCI_CHIP_MGAG200_ER_PCI:
|
case PCI_CHIP_MGAG200_ER_PCI:
|
||||||
|
case PCI_CHIP_MGAG200_EH3_PCI:
|
||||||
pMga->SrcOrg = 0;
|
pMga->SrcOrg = 0;
|
||||||
OUTREG(MGAREG_SRCORG, pMga->realSrcOrg);
|
OUTREG(MGAREG_SRCORG, pMga->realSrcOrg);
|
||||||
OUTREG(MGAREG_DSTORG, pMga->DstOrg);
|
OUTREG(MGAREG_DSTORG, pMga->DstOrg);
|
||||||
@ -1178,7 +1184,7 @@ void MGAStormEngineInit( ScrnInfoPtr pScrn )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
static void
|
static void
|
||||||
MGASetClippingRectangle(
|
MGASetClippingRectangle(
|
||||||
ScrnInfoPtr pScrn,
|
ScrnInfoPtr pScrn,
|
||||||
|
@ -565,8 +565,12 @@ MGAAllocateMemory(
|
|||||||
void **mem_struct,
|
void **mem_struct,
|
||||||
int size
|
int size
|
||||||
){
|
){
|
||||||
|
#if defined(USE_XAA) || defined(USE_EXA)
|
||||||
MGAPtr pMga = MGAPTR(pScrn);
|
MGAPtr pMga = MGAPTR(pScrn);
|
||||||
|
#endif /* defined(USE_XAA) || defined(USE_EXA) */
|
||||||
|
#ifdef USE_XAA
|
||||||
ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
|
ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
|
||||||
|
#endif /* USE_XAA */
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
|
|
||||||
#ifdef USE_EXA
|
#ifdef USE_EXA
|
||||||
@ -644,7 +648,9 @@ MGAAllocateMemory(
|
|||||||
static void
|
static void
|
||||||
MGAFreeMemory(ScrnInfoPtr pScrn, void *mem_struct)
|
MGAFreeMemory(ScrnInfoPtr pScrn, void *mem_struct)
|
||||||
{
|
{
|
||||||
|
#if defined(USE_XAA) || defined(USE_EXA)
|
||||||
MGAPtr pMga = MGAPTR(pScrn);
|
MGAPtr pMga = MGAPTR(pScrn);
|
||||||
|
#endif /* defined(USE_XAA) || defined(USE_EXA) */
|
||||||
|
|
||||||
#ifdef USE_EXA
|
#ifdef USE_EXA
|
||||||
if (pMga->Exa) {
|
if (pMga->Exa) {
|
||||||
@ -1374,6 +1380,7 @@ static void CopyMungedScanline_AXP(CARD32 *fb_ptr, short src_w,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static void CopyMungedScanline_AXP2(CARD32 *fb_ptr, short src_w,
|
static void CopyMungedScanline_AXP2(CARD32 *fb_ptr, short src_w,
|
||||||
CARD32 *tsp, CARD32 *tpu, CARD32 *tpv)
|
CARD32 *tsp, CARD32 *tpu, CARD32 *tpv)
|
||||||
{
|
{
|
||||||
@ -1393,6 +1400,7 @@ static void CopyMungedScanline_AXP2(CARD32 *fb_ptr, short src_w,
|
|||||||
fb_ptr+=4;
|
fb_ptr+=4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void CopyMungedScanlineFilter_AXP(CARD32 *fb_ptr, short src_w,
|
static void CopyMungedScanlineFilter_AXP(CARD32 *fb_ptr, short src_w,
|
||||||
@ -1466,6 +1474,7 @@ static void CopyMungedScanlineFilter_AXP(CARD32 *fb_ptr, short src_w,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static void CopyMungedScanlineFilterDown_AXP(CARD32 *fb_ptr, short src_w,
|
static void CopyMungedScanlineFilterDown_AXP(CARD32 *fb_ptr, short src_w,
|
||||||
CARD32 *tsp1, CARD32 *tpu1, CARD32 *tpv1,
|
CARD32 *tsp1, CARD32 *tpu1, CARD32 *tpv1,
|
||||||
CARD32 *tsp2, CARD32 *tpu2, CARD32 *tpv2,
|
CARD32 *tsp2, CARD32 *tpu2, CARD32 *tpv2,
|
||||||
@ -1504,6 +1513,7 @@ static void CopyMungedScanlineFilterDown_AXP(CARD32 *fb_ptr, short src_w,
|
|||||||
fb_ptr+=4;
|
fb_ptr+=4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void MGACopyScaledILOAD(
|
static void MGACopyScaledILOAD(
|
||||||
ScrnInfoPtr pScrn,
|
ScrnInfoPtr pScrn,
|
||||||
@ -1520,7 +1530,12 @@ static void MGACopyScaledILOAD(
|
|||||||
CARD32 *fb_ptr;
|
CARD32 *fb_ptr;
|
||||||
unsigned char *ubuf, *vbuf, *tbuf;
|
unsigned char *ubuf, *vbuf, *tbuf;
|
||||||
CARD32 *pu, *pv;
|
CARD32 *pu, *pv;
|
||||||
int k,l, pl, dl, xds, yds;
|
int k,l;
|
||||||
|
#ifdef MGA2164_BLIT_DUP
|
||||||
|
int pl;
|
||||||
|
#endif /* MGA2164_BLIT_DUP */
|
||||||
|
int dl;
|
||||||
|
int xds, yds;
|
||||||
short box_h;
|
short box_h;
|
||||||
short scr_pitch = ( pScrn->virtualX + 15) & ~15;
|
short scr_pitch = ( pScrn->virtualX + 15) & ~15;
|
||||||
|
|
||||||
@ -1606,8 +1621,10 @@ static void MGACopyScaledILOAD(
|
|||||||
ubuf=vbuf+width*height/4;
|
ubuf=vbuf+width*height/4;
|
||||||
pu = (CARD32 *)(ubuf+(src_y/2)*(width/2));
|
pu = (CARD32 *)(ubuf+(src_y/2)*(width/2));
|
||||||
pv = (CARD32 *)(vbuf+(src_y/2)*(width/2));
|
pv = (CARD32 *)(vbuf+(src_y/2)*(width/2));
|
||||||
|
#ifdef MGA2164_BLIT_DUP
|
||||||
for(pl=-1,dl=0;dl<box_h;dl++) {
|
pl = -1;
|
||||||
|
#endif /* MGA2164_BLIT_DUP */
|
||||||
|
for(dl=0;dl<box_h;dl++) {
|
||||||
int beta;
|
int beta;
|
||||||
l=(dl+(pbox->y1-drw_y))*src_h/drw_h;
|
l=(dl+(pbox->y1-drw_y))*src_h/drw_h;
|
||||||
/* FIXME: check the math */
|
/* FIXME: check the math */
|
||||||
@ -1764,7 +1781,9 @@ static void MGACopyScaledILOAD(
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#ifdef MGA2164_BLIT_DUP
|
||||||
pl=l;
|
pl=l;
|
||||||
|
#endif /* MGA2164_BLIT_DUP */
|
||||||
} else {
|
} else {
|
||||||
/* dup lines */
|
/* dup lines */
|
||||||
|
|
||||||
@ -1801,7 +1820,10 @@ static void MGACopyILOAD(
|
|||||||
CARD32 *fb_ptr;
|
CARD32 *fb_ptr;
|
||||||
CARD8 *ubuf, *vbuf;
|
CARD8 *ubuf, *vbuf;
|
||||||
CARD32 *pu, *pv;
|
CARD32 *pu, *pv;
|
||||||
int k,l;
|
#ifdef CUSTOM_MEMCOPY
|
||||||
|
int k;
|
||||||
|
#endif /* CUSTOM_MEMCOPY */
|
||||||
|
int l;
|
||||||
short clip_x1, clip_x2, tmp_w;
|
short clip_x1, clip_x2, tmp_w;
|
||||||
|
|
||||||
#ifdef DEBUG_MGA2164
|
#ifdef DEBUG_MGA2164
|
||||||
@ -1968,7 +1990,6 @@ MGAPutImageILOAD(
|
|||||||
MGAPortPrivPtr pPriv = pMga->portPrivate;
|
MGAPortPrivPtr pPriv = pMga->portPrivate;
|
||||||
INT32 x1, x2, y1, y2;
|
INT32 x1, x2, y1, y2;
|
||||||
int dstPitch = 0;
|
int dstPitch = 0;
|
||||||
int bpp;
|
|
||||||
BoxRec dstBox;
|
BoxRec dstBox;
|
||||||
int nbox;
|
int nbox;
|
||||||
BoxPtr pbox;
|
BoxPtr pbox;
|
||||||
@ -1984,9 +2005,7 @@ MGAPutImageILOAD(
|
|||||||
clipBoxes, width, height))
|
clipBoxes, width, height))
|
||||||
return Success;
|
return Success;
|
||||||
|
|
||||||
bpp = pScrn->bitsPerPixel >> 3;
|
#ifdef USE_XAA
|
||||||
|
|
||||||
#ifdef HAVE_XAA_H
|
|
||||||
if( pMga->AccelInfoRec->NeedToSync && ((long)data != pPriv->lastPort) ) {
|
if( pMga->AccelInfoRec->NeedToSync && ((long)data != pPriv->lastPort) ) {
|
||||||
MGAStormSync(pScrn);
|
MGAStormSync(pScrn);
|
||||||
}
|
}
|
||||||
@ -2020,7 +2039,7 @@ MGAPutImageILOAD(
|
|||||||
pbox++;
|
pbox++;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_XAA_H
|
#ifdef USE_XAA
|
||||||
pMga->AccelInfoRec->NeedToSync = TRUE;
|
pMga->AccelInfoRec->NeedToSync = TRUE;
|
||||||
#endif
|
#endif
|
||||||
pPriv->videoStatus = FREE_TIMER;
|
pPriv->videoStatus = FREE_TIMER;
|
||||||
|
Loading…
Reference in New Issue
Block a user