diff --git a/COPYING b/COPYING index 7f33cbf..727ca51 100644 --- a/COPYING +++ b/COPYING @@ -1,12 +1,60 @@ -This is a stub file. This package has not yet had its complete licensing -information compiled. Please see the individual source files for details on -your rights to use and modify this software. +Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved. -Please submit updated COPYING files to the Xorg bugzilla: +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: -https://bugs.freedesktop.org/enter_bug.cgi?product=xorg +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -All licensing questions regarding this software should be directed at the -Xorg mailing list: +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the XFree86 Project. + +Written by Jake Richter Copyright (c) 1989, 1990 Panacea Inc., Londonderry, +NH - All Rights Reserved + +This code may be freely incorporated in any program without royalty, as long +as the copyright notice stays intact. + +Additions by Kevin E. Martin (martin@cs.unc.edu) + +KEVIN E. MARTIN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL KEVIN E. MARTIN BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +Copyright 2007 George Sapountzis + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. -http://lists.freedesktop.org/mailman/listinfo/xorg diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 8ef0a7c..0000000 --- a/ChangeLog +++ /dev/null @@ -1,69 +0,0 @@ -2006-04-07 Adam Jackson - - * configure.ac: - * src/s3v_driver.c: - Bump to 1.9.1 for Xv changes. - -2006-04-07 Aaron Plattner - - * src/s3v_xv.c: - Add a DrawablePtr argument to the XV functions to pave the way for - redirected video. - -2006-04-07 Adam Jackson - - * configure.ac: - * src/s3v.h: - * src/s3v_dga.c: - * src/s3v_driver.c: - * src/s3v_i2c.c: - * src/s3v_shadow.c: - Unlibcwrap. Bump server version requirement. Bump to 1.9.0. - -2006-02-08 Luc Verhaegen - - * src/s3v.h: - * src/s3v_driver.c: (S3VPreInit): - - Remove another insane use of pScrn->clock. Code ended up being ignored - anyway. - -2005-12-20 Kevin E. Martin - - * configure.ac: - Update package version for X11R7 release. - -2005-12-14 Kevin E. Martin - - * configure.ac: - Update package version number for final X11R7 release candidate. - -2005-12-06 Kevin E. Martin - - * man/Makefile.am: - Change *man_SOURCES ==> *man_PRE to fix autotools warnings. - -2005-12-03 Kevin E. Martin - - * configure.ac: - Update package version number for X11R7 RC3 release. - -2005-12-01 Kevin E. Martin - - * configure.ac: - Remove extraneous AC_MSG_RESULT. - -2005-11-29 Adam Jackson - - * configure.ac: - Only build dlloader modules by default. - -2005-11-09 Kevin E. Martin - - * configure.ac: - Update package version number for X11R7 RC2 release. - -2005-11-01 Kevin E. Martin - - * configure.ac: - Update pkgcheck dependencies to work with separate build roots. diff --git a/Makefile.am b/Makefile.am index 4443535..8467821 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,12 +18,17 @@ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -AUTOMAKE_OPTIONS = foreign SUBDIRS = src man +MAINTAINERCLEANFILES = ChangeLog INSTALL -if BUILD_LINUXDOC -README: README.sgml - $(MAKE_TEXT) README.sgml && mv README.txt README -endif +EXTRA_DIST = CALLMAP -EXTRA_DIST = CALLMAP TODO_NOTES README.sgml +.PHONY: ChangeLog INSTALL + +INSTALL: + $(INSTALL_CMD) + +ChangeLog: + $(CHANGELOG_CMD) + +dist-hook: ChangeLog INSTALL diff --git a/README b/README index 72b75b2..036eec8 100644 --- a/README +++ b/README @@ -1,112 +1,88 @@ -xf86-video-s3virge - S3 ViRGE video driver for the Xorg X server - -Please submit bugs & patches to the Xorg bugzilla: - - https://bugs.freedesktop.org/enter_bug.cgi?product=xorg - -All questions regarding this software should be directed at the -Xorg mailing list: - - http://lists.freedesktop.org/mailman/listinfo/xorg - -The master development code repository can be found at: - - git://anongit.freedesktop.org/git/xorg/driver/xf86-video-s3virge - - http://cgit.freedesktop.org/xorg/driver/xf86-video-s3virge - -For more information on the git code manager, see: - - http://wiki.x.org/wiki/GitPage - ------------------------------------------------------------------------- -What works: -- Supports 8bpp, 15/16bpp, 24bpp and 32bpp. Heavy testing on ViRGE DX. -- There is some known instability in ViRGE GX2, please report problems. -- Silken Mouse is enabled by default, use the generic server option of - -nosilk to disable it. - -XCONFIG options: - -The driver supports quite a few different XConfig options, which can -be used to tune the driver and improve performance. Without any options, -the driver will use conservative settings which should work on most -hardware. Large improvements in performance are possible by selecting -the proper options, which will probably work on most systems. - -Cursor: - -- "hwcursor" "off" behaves exactly like "swcursor". Default: "on" -- "swcursor" will disable the HW Cursor. HW Cursor is used by default and - no option is needed to enable it. - -Display: -- "ShadowFB" Use shadow framebuffer. Disables HW acceleration. Default: off. -- "Rotate" " cw "|" ccw " Rotate the screen CW - clockwise or CCW - counter - clockwise. Disables HW Acceleration and HW Cursor, uses ShadowFB. - Default: no rotation. -- "XVideo" Disable XVideo support by using the off option. This changes FIFO - settings which prevent screen noise for high-res modes. Default: on - -Video memory: - -- "slow_edodram" will switch the standard ViRGE to 2-cycle edo mode. Try this - if you encounter pixel corruption on the ViRGE. Using this option will - cause a large decrease in performance. -- "fpm_vram" will switch the ViRGE/VX to fast page mode vram mode -- "slow_dram " | " fast_dram" Change Trio 3D and 3D/2X memory options. - Default: Use BIOS defaults. -- "early_ras_precharge", "late_ras_precharge" adjust memory parameters. One - of these will us the same settings as your video card defaults, and - using neither in the config file does the same. -- "set_mclk" sets the memory clock, format is: - Option "set_mclk" "50000" - in the XF86Config file. Valid values are any - integer <= 100000, where 100000 == 100 MHz. -- "set_refclk" sets the ref clock for ViRGE MX, format is: - Option "set_refclk" "50000" - -Acceleration and graphic engine: - -- "NoAccel" turns off all acceleration -- "fifo_aggressive", "fifo_moderate" and "fifo_conservative" alter the settings - for the threshold at which the pixel FIFO takes over the internal - memory bus to refill itself. The smaller this threshold, the better - the acceleration performance of the card. You may try the fastest - setting ("aggressive") and move down if you encounter pixel corruption. - The optimal setting will probably depend on dot-clock and on color - depth. Note that specifying any of these options will also alter other - memory settings which should increase performance, so you should at - least use "fifo_conservative" (this uses the chip defaults). -- Common XAA acceleration options to disable primitives for test purposes: - "XaaNoScreenToScreenCopy" - "XaaNoSolidFillRect" - "XaaNoColor8x8PatternFillRect" - "XaaNoImageWriteRect" - "XaaNoPixmapCache" - -PCI bus: -- "pci_burst" will enable PCI burst mode. This should work on all but a - few "broken" PCI chipsets, and will increase performance. Option may - take a parameter "on", "off", "yes", etc... -- "pci_retry" will allow the driver to rely on PCI Retry to program the - ViRGE registers. "pci_burst" must be enabled for this to work. - This will increase performance, especially for small fills/blits, - because the driver does not have to poll the ViRGE before sending it - commands to make sure it is ready. It should work on most - recent PCI chipsets. - -ViRGE MX LCD options: -- "lcd_center" -- "set_lcdclk" allows setting the clock for a ViRGE MX LCD display. Format is: - Option "set_lcdclk" "30000" - in the config file. Valid values are ? - -Debug: -- "ShowCache" Enable or disable viewing offscreen cache memory. A - development debug option. Default: off. -- "mx_cr3a_fix" Enable or disable a cr3a fix added for ViRGE MX. - Default: on. - - -$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/README,v 1.9 2000/06/14 21:57:54 dawes Exp $ + Information for S3 ViRGE Users + The XFree86 Project Inc. + 19 Dec 2001 + ____________________________________________________________ + + Table of Contents + + + 1. Supported hardware + 2. Features: + 3. Configuration: + 4. Documentation: + 5. Support: + 6. Authors + + + ______________________________________________________________________ + + 1. Supported hardware + + The s3virge driver in X11R7.5 supports the S3 ViRGE, ViRGE DX, GX, + GX2, MX, MX+, and VX chipsets. It also supports Trio3D and Trio3D/2x + chips. A majority of testing is done on ViRGE DX chips, making them + the most stable to date. This release has added support for doublescan + modes on DX. + + This driver is moderately stable, however please use caution with any + new install. Please report any problems to bugzilla.freedesktop.org, + using the xorg component. + + + 2. Features: + + + + o Fully accelerated support for S3 ViRGE family video adapters + + o uses linear frame buffer + + o supports resolutions up to 2048x2048 + + o supports color depths of 8, 15, 16 and 24 + + o full use of video card memory for acceleration caching when visible + framebuffer leaves extra memory + + o XVideo on DX, GX, GX2, MX, MX+ and Trio3D/2X at depth 16 and 24 + + o Doublescan modes on DX, possibly others (untested) + + + 3. Configuration: + + + The driver auto-detects RAM size, RAMDAC and ClockChip. Do not bother + putting these in your "Device" section. + + + 4. Documentation: + + + The driver has several supported options which are documented in the + s3virge man page. Please refer to it for additional details about + configuration options. + + + 5. Support: + + For support with X11R7.5 video drivers please refer to our web site at + wiki.x.org . + + + 6. Authors + + + + o Mark Vojkovich + + o Sebastien Marineau + + o Harald Koenig + + o Matt Grossman + + o Kevin Brosius + + + diff --git a/README.sgml b/README.sgml deleted file mode 100644 index e47b8c4..0000000 --- a/README.sgml +++ /dev/null @@ -1,61 +0,0 @@ - %defs; -]> - -
- Information for S3 ViRGE Users -<author>The XFree86 Project Inc. -<date>19 Dec 2001 - -<ident> -</ident> - -<toc> - -<sect> Supported hardware -<p> -The s3virge driver in X11R&relvers; supports the S3 ViRGE, ViRGE DX, GX, GX2, MX, MX+, and VX chipsets. It also supports Trio3D and Trio3D/2x chips. A majority of testing is done on ViRGE DX chips, making them the most stable to date. This release has added support for doublescan modes on DX. - -This driver is moderately stable, however please use caution with any new install. Please report any problems to bugzilla.freedesktop.org, using the xorg component. - -<sect>Features: -<p> - -<itemize> -<item>Fully accelerated support for S3 ViRGE family video adapters -<item>uses linear frame buffer -<item>supports resolutions up to 2048x2048 -<item>supports color depths of 8, 15, 16 and 24 -<item>full use of video card memory for acceleration caching when visible framebuffer leaves extra memory -<item>XVideo on DX, GX, GX2, MX, MX+ and Trio3D/2X at depth 16 and 24 -<item>Doublescan modes on DX, possibly others (untested) -</itemize> - -<sect>Configuration: -<p> - -The driver auto-detects RAM size, RAMDAC and ClockChip. Do not bother putting -these in your "Device" section. - -<sect>Documentation: -<p> - -The driver has several supported options which are documented in the s3virge man -page. Please refer to it for additional details about configuration options. - -<sect>Support: -<p> -For support with X11R&relvers video drivers please refer to our web site at <url name="wiki.x.org" url="http://wiki.x.org">. - -<sect>Authors -<p> - -<itemize> -<item>Mark Vojkovich <email>mvojkovich@nvidia.com</email> -<item>Sebastien Marineau -<item>Harald Koenig <email>koenig@tat.physik.uni-tuebingen.de</email> -<item>Matt Grossman <email>mattg@oz.net</email> -<item>Kevin Brosius <email>cobra@compuserve.com</email> -</itemize> - -</article> diff --git a/TODO b/TODO new file mode 100644 index 0000000..de5920b --- /dev/null +++ b/TODO @@ -0,0 +1,326 @@ +S3 ViRGE 4.0 devel notes + + + +Status +------ +1/26/2003 +Ver 1.8.6 +Pre-4.3.0 release. 320x240 doublescan support w/mouse adjust, +power management printouts, DAC error printout fix, log XVideo status based +on chipset, preliminary support for disabling XV when a mode doesn't +support it. + +5/18/2002 +Ver 1.8.5 +320x240 mode support (doublescan). + +2/2/02 +Ver 1.8.4 +Make 320x240 mode work in depth 15 & 16. +Testing, need to switch streams on/off based on dblscan_v flag and mode. +Virge MX panel_on test (doesn't work.) + +1/10/02 +Ver 1.8.3 +DGA fix, buffer pointer used wrong value. Submitted for 4.2.0 (late). + +Ver 1.8.2 +DPMS testing (display DPMS status, disable MX LCD panel), DGA testing. + +11/11/01 KJB +Ver 1.8.1 +ViRGE MX (& GX2) fix to CR63 for problems with modes < 1024x768 from +max <sunmax@libero.it>. Submitted for 4.2.0. + +11/5/01 KJB +Ver 1.8.0 +ViRGE MX & GX2 XVideo changes. Fix overlap/color keying on MX, fix +and enable GX2 XVideo. +Submitted for 4.2.0. + +11/4/01 KJB +Ver 1.7.0 +Bump version for 4.2.0. Update man and README. + +11/3/01 KJB +Ver 1.6.16 +Pre-4.2.0 patch. cr3a fix, virge mx xvideo support, xvideo disable option +(helps with high res modes on dx and screen noise), remove accel solid +fill rect for trio3d, bring over some trio3d and mx fixes from 4.0.3 test +drivers. Includes VERBLEV bump to 5 to remove register dumps in log file. + +Ver 1.6.15 +Experimental - Scanline color expand - GX2 + +9/21/01 KJB +Ver 1.6.14 +ModeInit - cr3a for MX/GX2, don't clear reserved bit 0x40 (revert change). +Back out previous cr3a patch for testing. + +9/18/01 KJB +Ver 1.6.13 +Option "xvideo" added. Add patch provided by Sven Menke +<Menke@SLAC.Stanford.EDU> for XV support on MX (slight changes to logic). + +Ver 1.6.12 +Adam J. Richter's cr3a fix (possibly temporary). + +5/30/01 KJB +Ver 1.6.10 +Disable MaxHValue & MaxVValue setting. + +1/03/01 KJB +Ver 1.6.0 +Revert ViRGE to pre-Xv changes. ViRGE DX still supports Xv, but changes +added for Xv and ViRGE caused problems with normal display. + +11/27/00 KJB +Ver 1.5.0 +Clean up, bump version for 4.0.2 submission. +CR3A, bit 0x40 (reserved) cleared for MX/GX2. Update man page. + +11/24/00 KJB +Disable CPU to screen color expansion on GX2, causes lockups on GX2 with +'locate html' in an xterm. Add WaitCmd code to prevent accelerator and +reg command path activity at the same time on GX2. +XVideo fixes, left side clipping fixed for video windows extending off left +side of screen. Add horizontal filtering modes for 1-2x and >3x scaling. + +11/7/00 KJB +Ver 1.4.0 +Enable MX fixes, testing with accel BLT_BUG set is worse on GX2, so left +it out. BLT_BUG wasn't being enabled on ViRGE & VX because of case usage, +enabled now. Re-enable silken mouse for GX2. Add Render/fbPicture support. +Fix a few compiler warnings. + +11/5/00 KJB +Continued work on GX2, much stabler now, but I think there is a lockup case +left if you enable pci_burst and pci_retry with accel. I still see screen +flashes with vertical bars once in a while, and the log reports a GEReset. +Added fbPicture (render) support, untested. XV code for GX2 is added, +but not working yet. + +10/29/00 KJB +Much work on GX2, now SWCursor locks up but HWCursor is stable, go figure. +Loading Netscape a couple times with the mail window was enough to lock it +up twice in a row. Server was locked but not a box (PCI) lock. Also, +vertical barring still occurred a couple times, so HW cursor wasn't causing +that. Try blt_bug flag again for lock up case. And attach to debug server +and bt... Sleep now... + +10/21/00 KJB +Ver 1.3.0 +Depth 16 Xv support added. Testing on ViRGE DX. 1280x1024x24 is noisy, so +needs FIFO tuning. + +9/27/00 KJB +Initial Xv support in depth 24. + +9/10/00 KJB +Convert to FB. Add option "UseFB", default true. Added +VerticalRetraceWait timeout back as default. #if0 out the line accel +code in s3v_accel.c. The Subsequent...Bresenham line code causes a lockup +when used with fb. We didn't have any hardware accel in there anyway... + +7/25/00 KJB +Started Xv additions. + +6/26/00 KJB +GX2 seems to have an accel bug. I see the entire screen go solid color or +a wide stripe pattern for about 1 second. The S3VGEReset gets called twice, +and then everything is okay. Unless SilkenMouse is enabled... That seems to +get you a server lock instead. Short term is to disable SilkenMouse for GX2 +only. SilkenMouse isn't really the problem of course, it just happens that if +we move the mouse during the 1 second engine lockup we appear more likely to +never recover. + +6/23/00 KJB +Ver 1.2.0 - Fix console corruption on GX2 caused by reserved bit use in CR3A. +Fix GX2 noise on screen in hi-res depth 24 by increasing FIFO fill threshold. + +6/12/00 KJB +Ver 1.1.0 - Add Init for SilkenMouse, add xf86SetBackingStore call, move +int10Symbols[] to remove warnings. + +3/3/00 KJB +Ver 1.0.0 - S3VProbeDDC code for X -configure option added, add timeout to +WAITIDLE macro in s3v_macros.h, change ImageWriteFlags adding NO_GXCOPY. +Start of GX2 fixes, use CR regs for FIFO settings. Update copyrights. + +2/11/00 KJB +Ver 0.11.0 - Add cfb16/24BresS to module symbols to remove warnings. +Fix viewport restore problem after EnterVT in 24 bpp. +Clean up log output, removing register dumps from normal console log. + +6/26/99 KJB +Make the memory settings for fifo_conservative the default, 'fifo_conservative' +does nothing additional now. Patch includes DGA2 additions below, non-working. +Expected to be included in 3.9Pu. + +Changes in 3.9Pt by others include additions for newer RAC support. Some reports +say multi-head works now with ViRGE. + +6/17/99 KJB +Ver 0.9.0 - Prelim DGA2 support modeled after MGA. + +5/28/99 KJB +Ver 0.8.0 - Changes to 3.9Po - Cleaned up debug register printing function, minor +changes to man page, remove S3V.sgml and add new s3virge.sgml in doc/sgml, also +remove README.S3V from doc directory. + + +4/5/99 KJB +3.9Ph - Ver 0.7.0 - Virge man page added, HW Cursor fixed, rename chipsets removing +slashes in the names. + +03/27/99 KJB +Ver 0.6.0 - hwcursor additions, added s3v_hwcurs.c and Option "swcursor". +Default is hwcursor, Option "swcursor" will disable it. + +Ver 0.5.0 - patch against 3.9Pf (seq 2615), fix depth 24 and Accel flags, sync pci_burst option to previous changes, remove s3v_comp.h and s3v_pio.c and merge as needed. + +03/21/99 KJB +3.9Pf has Matt Grossman's Alpha changes. +For next patch - remove s3v_pio.c and s3v_comp.h. Include the EnableMMIO and +DisableMMIO functions from s3v_pio.c in s3v_driver.c. + +03/02/99 KJB +3.9Pc - depth 24 doesn't work on my ViRGE DX. NoAccel doesn't start, accel does +but has blocky noise. + +03/01/99 KJB +Macro change done, VGAIN/VGAOUT for register access, INREG/OUTREG for s3v_accel.c. +Added Mark Vojkovich's re-write of the accel code. It may only be clean for ViRGE DX +at the moment. x11perf showed a couple artifacts in 'move window via parent'. +In progress, attempt to call cfbScreenInit() functions after MapMem/EnterVT. Not +working yet. Version stamped 0.4.0. + +02/22/99 KJB +Macro change coming to add Mark's accel update. VGAOUT for old stuff and MEMOUT +for new stuff? That way there's no confusion with the old INREG/OUTREG macros. +Or maybe just stick with INREG/OUTREG for new stuff. + +01/30/99 KJB +Version stamp 0.3.0. Changed Chipset flags to use PCI IDs exclusively, also use +common/xf86PciInfo.h for PCI IDs rather than coding them in regs3v.h. + +11/28/98 KJB +Bumped version stamp to 0.2, expect code in 3.9No. Cleaned up s3v.h and +s3v_driver.c by removing unused definition & code sections. Added +options set_mclk (from 3.3.2) and set_lcdclk (3.3.3 MX). Code support +from 3.3.3 for ViRGE GX2 and MX+ is included. +Disabled call to 32 bpp AccelInit to get -depth 24 -bpp 32 working again. + +11/27/98 KJB +More 3.3.3 import. +New registers saved, CR40,CR45,SR8,(for MX) SR29,SR45,SR55,SR56,SR57. +Reviewed s3vdriver.h, rehs3v.h, newmmio.h, s3v_accel.c, s3v_driver.c. +Added ViRGE MX, MX+ & GX2 support. Re-synced parts of mode save and init +with 3.3.3 versions. Added timeout ability for WaitIdle() and friends. +Added chipnames and numbers to Chipsets struct. + +11/26/98 KJB +Import additions from 3.3.3, newmmio.h, regs3v.h, + +Trap fills disabled because they don't match cfb, pixmap cache & ImageWrite +working, fixed depth 8 color loss on VT switches, INREG & OUTREG modified to +use a single offset value instead of adding the base and offset together. + +11/18/98 KJB +3.9Nn +Acceleration working for Bitblt, ScreenToScreenCopy, Color 8x8 Rect fills, +and Rect/Trap fills. +Trap fills do not support transparency, so that needs to be exported to XAA. + + +10/31/98 KJB +Working depth 8, discolored dep 16 but runs, dep 24 screen goes black, +C-A-Bkspc restores text console. At 3.9Nk tree level, module would not +load in Loader server. why? Static server tested. + +10/29/98 KJB +ModeInit() needs work, options are heavily #if'd to try and get 8bpp +working. + +10/16/98 KJB +General 4.0 architecture is setup. Presently at 3.9Nc level, if moved +to a newer tree you will need to add the resource handling functions from +Egbert (I haven't tackled that yet). + +At the moment the ScreenInit() function is coded to return FALSE. On my +ViRGE DX card this version does not lock up, but it does destroy the +video mode. Make sure you have an external terminal or network connection +if you run it (or blindly do a restart from your main terminal). I make +no guarantees that it won't hard lock other versions of ViRGE. + +I've left out the Alpha memory mapping, along with all option processing. +Those will need to be done once the driver is minimally working. + +Note that everything in s3v_driver.c is MMIO only. There are a pair of +PIO functions in s3v_pio.c, but that is the only place. See notes below +about my ViRGE DX BIOS and why I needed to do this on my hardware. + +Other stuff... +Some test stuff is assuming 8bpp, so 16 & 24 are broken. +On my hardware, I am presently trying to get the Save/Restore sequence to +recover the video mode. At the moment, when I run this driver, I get: +ScreenInit() runs to completion. +It returns FALSE, so the Server aborts. +LeaveVT() is called, and runs to completion. +The Server exits gracefully, but my monitor goes powersaver and the video +mode is not recovered. + + + +TODO items +---------- +1/30/03 General option "videoram" is ignored by the virge driver. + (Meelis Roos) +3/24/02 Xv reported to not work as secondary in Xinerama multihead. + (xav on irc) +3/24/02 DPMS doesn't fully disable the screen. Blue line across the + center in all modes. (xav on irc) +3/25/02 Secondary reports primary BIOS during int10 detection. ie: + +(II) S3VIRGE(1): VESA BIOS detected +(II) S3VIRGE(1): VESA VBE Version 2.0 +(II) S3VIRGE(1): VESA VBE Total Mem: 4194240 kB +(II) S3VIRGE(1): VESA VBE OEM: ATI RAGE128 +(II) S3VIRGE(1): VESA VBE OEM Software Rev: 1.0 +(II) S3VIRGE(1): VESA VBE OEM Vendor: ATI Technologies Inc. +(II) S3VIRGE(1): VESA VBE OEM Product: R128 +(II) S3VIRGE(1): VESA VBE OEM Product Rev: 01.00 + +(xav on irc) + + +Check CR65 usage, bit 2 set based on S3_EARLY_SC? In my manual bit 2 is +enable MMIO to RAMDAC registers. + +Notes: +---------- + +/config/cf/xfree86.cf + +have to add s3v to XF86CardDrivers for imake to make the +drivers/s3v Makefile. + +To remake makefiles, after editing Imakefile, go to dir above drivers/s3v +and do a 'make Makefiles'. + +For debug, make CDEBUGFLAGS='-g -DDEBUG', adding -DMetroLink enables +timeout for VerticalRetraceWait(). + + + +S3 ViRGE DX stuff: + +Card seems to power up (or BIOS forces) with MMIO disabled. All flavors are +disabled, because CR53 comes up as 0. This may preclude using this card +as the second device in a multi-head situation although David D. says that +the new config. management stuff may help here. + + + +$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES,v 1.23 2003/02/13 03:21:33 dawes Exp $ diff --git a/TODO_NOTES b/TODO_NOTES deleted file mode 100644 index de5920b..0000000 --- a/TODO_NOTES +++ /dev/null @@ -1,326 +0,0 @@ -S3 ViRGE 4.0 devel notes - - - -Status ------- -1/26/2003 -Ver 1.8.6 -Pre-4.3.0 release. 320x240 doublescan support w/mouse adjust, -power management printouts, DAC error printout fix, log XVideo status based -on chipset, preliminary support for disabling XV when a mode doesn't -support it. - -5/18/2002 -Ver 1.8.5 -320x240 mode support (doublescan). - -2/2/02 -Ver 1.8.4 -Make 320x240 mode work in depth 15 & 16. -Testing, need to switch streams on/off based on dblscan_v flag and mode. -Virge MX panel_on test (doesn't work.) - -1/10/02 -Ver 1.8.3 -DGA fix, buffer pointer used wrong value. Submitted for 4.2.0 (late). - -Ver 1.8.2 -DPMS testing (display DPMS status, disable MX LCD panel), DGA testing. - -11/11/01 KJB -Ver 1.8.1 -ViRGE MX (& GX2) fix to CR63 for problems with modes < 1024x768 from -max <sunmax@libero.it>. Submitted for 4.2.0. - -11/5/01 KJB -Ver 1.8.0 -ViRGE MX & GX2 XVideo changes. Fix overlap/color keying on MX, fix -and enable GX2 XVideo. -Submitted for 4.2.0. - -11/4/01 KJB -Ver 1.7.0 -Bump version for 4.2.0. Update man and README. - -11/3/01 KJB -Ver 1.6.16 -Pre-4.2.0 patch. cr3a fix, virge mx xvideo support, xvideo disable option -(helps with high res modes on dx and screen noise), remove accel solid -fill rect for trio3d, bring over some trio3d and mx fixes from 4.0.3 test -drivers. Includes VERBLEV bump to 5 to remove register dumps in log file. - -Ver 1.6.15 -Experimental - Scanline color expand - GX2 - -9/21/01 KJB -Ver 1.6.14 -ModeInit - cr3a for MX/GX2, don't clear reserved bit 0x40 (revert change). -Back out previous cr3a patch for testing. - -9/18/01 KJB -Ver 1.6.13 -Option "xvideo" added. Add patch provided by Sven Menke -<Menke@SLAC.Stanford.EDU> for XV support on MX (slight changes to logic). - -Ver 1.6.12 -Adam J. Richter's cr3a fix (possibly temporary). - -5/30/01 KJB -Ver 1.6.10 -Disable MaxHValue & MaxVValue setting. - -1/03/01 KJB -Ver 1.6.0 -Revert ViRGE to pre-Xv changes. ViRGE DX still supports Xv, but changes -added for Xv and ViRGE caused problems with normal display. - -11/27/00 KJB -Ver 1.5.0 -Clean up, bump version for 4.0.2 submission. -CR3A, bit 0x40 (reserved) cleared for MX/GX2. Update man page. - -11/24/00 KJB -Disable CPU to screen color expansion on GX2, causes lockups on GX2 with -'locate html' in an xterm. Add WaitCmd code to prevent accelerator and -reg command path activity at the same time on GX2. -XVideo fixes, left side clipping fixed for video windows extending off left -side of screen. Add horizontal filtering modes for 1-2x and >3x scaling. - -11/7/00 KJB -Ver 1.4.0 -Enable MX fixes, testing with accel BLT_BUG set is worse on GX2, so left -it out. BLT_BUG wasn't being enabled on ViRGE & VX because of case usage, -enabled now. Re-enable silken mouse for GX2. Add Render/fbPicture support. -Fix a few compiler warnings. - -11/5/00 KJB -Continued work on GX2, much stabler now, but I think there is a lockup case -left if you enable pci_burst and pci_retry with accel. I still see screen -flashes with vertical bars once in a while, and the log reports a GEReset. -Added fbPicture (render) support, untested. XV code for GX2 is added, -but not working yet. - -10/29/00 KJB -Much work on GX2, now SWCursor locks up but HWCursor is stable, go figure. -Loading Netscape a couple times with the mail window was enough to lock it -up twice in a row. Server was locked but not a box (PCI) lock. Also, -vertical barring still occurred a couple times, so HW cursor wasn't causing -that. Try blt_bug flag again for lock up case. And attach to debug server -and bt... Sleep now... - -10/21/00 KJB -Ver 1.3.0 -Depth 16 Xv support added. Testing on ViRGE DX. 1280x1024x24 is noisy, so -needs FIFO tuning. - -9/27/00 KJB -Initial Xv support in depth 24. - -9/10/00 KJB -Convert to FB. Add option "UseFB", default true. Added -VerticalRetraceWait timeout back as default. #if0 out the line accel -code in s3v_accel.c. The Subsequent...Bresenham line code causes a lockup -when used with fb. We didn't have any hardware accel in there anyway... - -7/25/00 KJB -Started Xv additions. - -6/26/00 KJB -GX2 seems to have an accel bug. I see the entire screen go solid color or -a wide stripe pattern for about 1 second. The S3VGEReset gets called twice, -and then everything is okay. Unless SilkenMouse is enabled... That seems to -get you a server lock instead. Short term is to disable SilkenMouse for GX2 -only. SilkenMouse isn't really the problem of course, it just happens that if -we move the mouse during the 1 second engine lockup we appear more likely to -never recover. - -6/23/00 KJB -Ver 1.2.0 - Fix console corruption on GX2 caused by reserved bit use in CR3A. -Fix GX2 noise on screen in hi-res depth 24 by increasing FIFO fill threshold. - -6/12/00 KJB -Ver 1.1.0 - Add Init for SilkenMouse, add xf86SetBackingStore call, move -int10Symbols[] to remove warnings. - -3/3/00 KJB -Ver 1.0.0 - S3VProbeDDC code for X -configure option added, add timeout to -WAITIDLE macro in s3v_macros.h, change ImageWriteFlags adding NO_GXCOPY. -Start of GX2 fixes, use CR regs for FIFO settings. Update copyrights. - -2/11/00 KJB -Ver 0.11.0 - Add cfb16/24BresS to module symbols to remove warnings. -Fix viewport restore problem after EnterVT in 24 bpp. -Clean up log output, removing register dumps from normal console log. - -6/26/99 KJB -Make the memory settings for fifo_conservative the default, 'fifo_conservative' -does nothing additional now. Patch includes DGA2 additions below, non-working. -Expected to be included in 3.9Pu. - -Changes in 3.9Pt by others include additions for newer RAC support. Some reports -say multi-head works now with ViRGE. - -6/17/99 KJB -Ver 0.9.0 - Prelim DGA2 support modeled after MGA. - -5/28/99 KJB -Ver 0.8.0 - Changes to 3.9Po - Cleaned up debug register printing function, minor -changes to man page, remove S3V.sgml and add new s3virge.sgml in doc/sgml, also -remove README.S3V from doc directory. - - -4/5/99 KJB -3.9Ph - Ver 0.7.0 - Virge man page added, HW Cursor fixed, rename chipsets removing -slashes in the names. - -03/27/99 KJB -Ver 0.6.0 - hwcursor additions, added s3v_hwcurs.c and Option "swcursor". -Default is hwcursor, Option "swcursor" will disable it. - -Ver 0.5.0 - patch against 3.9Pf (seq 2615), fix depth 24 and Accel flags, sync pci_burst option to previous changes, remove s3v_comp.h and s3v_pio.c and merge as needed. - -03/21/99 KJB -3.9Pf has Matt Grossman's Alpha changes. -For next patch - remove s3v_pio.c and s3v_comp.h. Include the EnableMMIO and -DisableMMIO functions from s3v_pio.c in s3v_driver.c. - -03/02/99 KJB -3.9Pc - depth 24 doesn't work on my ViRGE DX. NoAccel doesn't start, accel does -but has blocky noise. - -03/01/99 KJB -Macro change done, VGAIN/VGAOUT for register access, INREG/OUTREG for s3v_accel.c. -Added Mark Vojkovich's re-write of the accel code. It may only be clean for ViRGE DX -at the moment. x11perf showed a couple artifacts in 'move window via parent'. -In progress, attempt to call cfbScreenInit() functions after MapMem/EnterVT. Not -working yet. Version stamped 0.4.0. - -02/22/99 KJB -Macro change coming to add Mark's accel update. VGAOUT for old stuff and MEMOUT -for new stuff? That way there's no confusion with the old INREG/OUTREG macros. -Or maybe just stick with INREG/OUTREG for new stuff. - -01/30/99 KJB -Version stamp 0.3.0. Changed Chipset flags to use PCI IDs exclusively, also use -common/xf86PciInfo.h for PCI IDs rather than coding them in regs3v.h. - -11/28/98 KJB -Bumped version stamp to 0.2, expect code in 3.9No. Cleaned up s3v.h and -s3v_driver.c by removing unused definition & code sections. Added -options set_mclk (from 3.3.2) and set_lcdclk (3.3.3 MX). Code support -from 3.3.3 for ViRGE GX2 and MX+ is included. -Disabled call to 32 bpp AccelInit to get -depth 24 -bpp 32 working again. - -11/27/98 KJB -More 3.3.3 import. -New registers saved, CR40,CR45,SR8,(for MX) SR29,SR45,SR55,SR56,SR57. -Reviewed s3vdriver.h, rehs3v.h, newmmio.h, s3v_accel.c, s3v_driver.c. -Added ViRGE MX, MX+ & GX2 support. Re-synced parts of mode save and init -with 3.3.3 versions. Added timeout ability for WaitIdle() and friends. -Added chipnames and numbers to Chipsets struct. - -11/26/98 KJB -Import additions from 3.3.3, newmmio.h, regs3v.h, - -Trap fills disabled because they don't match cfb, pixmap cache & ImageWrite -working, fixed depth 8 color loss on VT switches, INREG & OUTREG modified to -use a single offset value instead of adding the base and offset together. - -11/18/98 KJB -3.9Nn -Acceleration working for Bitblt, ScreenToScreenCopy, Color 8x8 Rect fills, -and Rect/Trap fills. -Trap fills do not support transparency, so that needs to be exported to XAA. - - -10/31/98 KJB -Working depth 8, discolored dep 16 but runs, dep 24 screen goes black, -C-A-Bkspc restores text console. At 3.9Nk tree level, module would not -load in Loader server. why? Static server tested. - -10/29/98 KJB -ModeInit() needs work, options are heavily #if'd to try and get 8bpp -working. - -10/16/98 KJB -General 4.0 architecture is setup. Presently at 3.9Nc level, if moved -to a newer tree you will need to add the resource handling functions from -Egbert (I haven't tackled that yet). - -At the moment the ScreenInit() function is coded to return FALSE. On my -ViRGE DX card this version does not lock up, but it does destroy the -video mode. Make sure you have an external terminal or network connection -if you run it (or blindly do a restart from your main terminal). I make -no guarantees that it won't hard lock other versions of ViRGE. - -I've left out the Alpha memory mapping, along with all option processing. -Those will need to be done once the driver is minimally working. - -Note that everything in s3v_driver.c is MMIO only. There are a pair of -PIO functions in s3v_pio.c, but that is the only place. See notes below -about my ViRGE DX BIOS and why I needed to do this on my hardware. - -Other stuff... -Some test stuff is assuming 8bpp, so 16 & 24 are broken. -On my hardware, I am presently trying to get the Save/Restore sequence to -recover the video mode. At the moment, when I run this driver, I get: -ScreenInit() runs to completion. -It returns FALSE, so the Server aborts. -LeaveVT() is called, and runs to completion. -The Server exits gracefully, but my monitor goes powersaver and the video -mode is not recovered. - - - -TODO items ----------- -1/30/03 General option "videoram" is ignored by the virge driver. - (Meelis Roos) -3/24/02 Xv reported to not work as secondary in Xinerama multihead. - (xav on irc) -3/24/02 DPMS doesn't fully disable the screen. Blue line across the - center in all modes. (xav on irc) -3/25/02 Secondary reports primary BIOS during int10 detection. ie: - -(II) S3VIRGE(1): VESA BIOS detected -(II) S3VIRGE(1): VESA VBE Version 2.0 -(II) S3VIRGE(1): VESA VBE Total Mem: 4194240 kB -(II) S3VIRGE(1): VESA VBE OEM: ATI RAGE128 -(II) S3VIRGE(1): VESA VBE OEM Software Rev: 1.0 -(II) S3VIRGE(1): VESA VBE OEM Vendor: ATI Technologies Inc. -(II) S3VIRGE(1): VESA VBE OEM Product: R128 -(II) S3VIRGE(1): VESA VBE OEM Product Rev: 01.00 - -(xav on irc) - - -Check CR65 usage, bit 2 set based on S3_EARLY_SC? In my manual bit 2 is -enable MMIO to RAMDAC registers. - -Notes: ----------- - -/config/cf/xfree86.cf - -have to add s3v to XF86CardDrivers for imake to make the -drivers/s3v Makefile. - -To remake makefiles, after editing Imakefile, go to dir above drivers/s3v -and do a 'make Makefiles'. - -For debug, make CDEBUGFLAGS='-g -DDEBUG', adding -DMetroLink enables -timeout for VerticalRetraceWait(). - - - -S3 ViRGE DX stuff: - -Card seems to power up (or BIOS forces) with MMIO disabled. All flavors are -disabled, because CR53 comes up as 0. This may preclude using this card -as the second device in a multi-head situation although David D. says that -the new config. management stuff may help here. - - - -$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES,v 1.23 2003/02/13 03:21:33 dawes Exp $ diff --git a/configure.ac b/configure.ac index 317b5bf..1c7e9f7 100644 --- a/configure.ac +++ b/configure.ac @@ -20,46 +20,51 @@ # # Process this file with autoconf to produce a configure script -AC_PREREQ(2.57) +# Initialize Autoconf +AC_PREREQ([2.60]) AC_INIT([xf86-video-s3virge], - 1.10.4, + [1.10.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], - xf86-video-s3virge) - + [xf86-video-s3virge]) AC_CONFIG_SRCDIR([Makefile.am]) -AM_CONFIG_HEADER([config.h]) +AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR(.) -AM_INIT_AUTOMAKE([dist-bzip2]) - +# Initialize Automake +AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE -# Checks for programs. +# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS +m4_ifndef([XORG_MACROS_VERSION], + [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])]) +XORG_MACROS_VERSION(1.8) +XORG_DEFAULT_OPTIONS + +# Initialize libtool AC_DISABLE_STATIC AC_PROG_LIBTOOL -AC_PROG_CC AH_TOP([#include "xorg-server.h"]) +# Define a configure option for an alternate module directory AC_ARG_WITH(xorg-module-dir, - AC_HELP_STRING([--with-xorg-module-dir=DIR], + AS_HELP_STRING([--with-xorg-module-dir=DIR], [Default xorg module directory [[default=$libdir/xorg/modules]]]), [moduledir="$withval"], [moduledir="$libdir/xorg/modules"]) -# Checks for extensions +# Store the list of server defined optional extensions in REQUIRED_MODULES XORG_DRIVER_CHECK_EXT(RANDR, randrproto) XORG_DRIVER_CHECK_EXT(RENDER, renderproto) XORG_DRIVER_CHECK_EXT(XV, videoproto) XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) -# Checks for pkg-config packages +# Obtain compiler/linker options for the driver dependencies PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto $REQUIRED_MODULES]) PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]), HAVE_XEXTPROTO_71="no") AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ]) -sdkdir=$(pkg-config --variable=sdkdir xorg-server) # Checks for libraries. SAVE_CPPFLAGS="$CPPFLAGS" @@ -69,8 +74,6 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS, [#include "xorg-server.h"]) CPPFLAGS="$SAVE_CPPFLAGS" -# Checks for header files. -AC_HEADER_STDC if test "x$XSERVER_LIBPCIACCESS" = xyes; then PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0]) @@ -78,20 +81,14 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then fi AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) - -AC_SUBST([XORG_CFLAGS]) AC_SUBST([moduledir]) DRIVER_NAME=s3virge AC_SUBST([DRIVER_NAME]) -XORG_MANPAGE_SECTIONS -XORG_RELEASE_VERSION - -XORG_CHECK_LINUXDOC - -AC_OUTPUT([ - Makefile - src/Makefile - man/Makefile +AC_CONFIG_FILES([ + Makefile + src/Makefile + man/Makefile ]) +AC_OUTPUT diff --git a/man/Makefile.am b/man/Makefile.am index f0eb29b..b3688ce 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -1,27 +1,24 @@ # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation. -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the copyright holders shall -# not be used in advertising or otherwise to promote the sale, use or -# other dealings in this Software without prior written authorization -# from the copyright holders. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. # drivermandir = $(DRIVER_MAN_DIR) @@ -34,25 +31,11 @@ EXTRA_DIST = @DRIVER_NAME@.man CLEANFILES = $(driverman_DATA) -SED = sed -# Strings to replace in man pages -XORGRELSTRING = @PACKAGE_STRING@ - XORGMANNAME = X Version 11 +# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure -MAN_SUBSTS = \ - -e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \ - -e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \ - -e 's|__xservername__|Xorg|g' \ - -e 's|__xconfigfile__|xorg.conf|g' \ - -e 's|__projectroot__|$(prefix)|g' \ - -e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \ - -e 's|__drivermansuffix__|$(DRIVER_MAN_SUFFIX)|g' \ - -e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \ - -e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \ - -e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g' SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man .man.$(DRIVER_MAN_SUFFIX): - sed $(MAN_SUBSTS) < $< > $@ + $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ diff --git a/src/s3v.h b/src/s3v.h index 42b1f83..f4976ca 100644 --- a/src/s3v.h +++ b/src/s3v.h @@ -40,9 +40,6 @@ in this Software without prior written authorization from the XFree86 Project. /* Everything using inb/outb, etc needs "compiler.h" */ #include "compiler.h" -/* Drivers for PCI hardware need this */ -#include "xf86PciInfo.h" - /* Drivers that need to access the PCI config space directly need this */ #include "xf86Pci.h" diff --git a/src/s3v_accel.c b/src/s3v_accel.c index 528ab8a..7837e4a 100644 --- a/src/s3v_accel.c +++ b/src/s3v_accel.c @@ -28,7 +28,9 @@ in this Software without prior written authorization from the XFree86 Project. #include "config.h" #endif +#include <unistd.h> #include "s3v.h" +#include "s3v_pciids.h" #include "miline.h" /* fb includes are in s3v.h */ diff --git a/src/s3v_dga.c b/src/s3v_dga.c index 7ad42db..ecf8571 100644 --- a/src/s3v_dga.c +++ b/src/s3v_dga.c @@ -62,7 +62,6 @@ in this Software without prior written authorization from the XFree86 Project. #include "xf86.h" #include "xf86_OSproc.h" #include "xf86Pci.h" -#include "xf86PciInfo.h" #include "xaa.h" #include "xaalocal.h" #include "s3v.h" @@ -116,15 +115,15 @@ S3VDGAInit(ScreenPtr pScreen) to be rewritten to accommodate depth changes in DGA mode */ if(0 /*pScrn->displayWidth != pMode->HDisplay*/) { - newmodes = xrealloc(modes, (num + 2) * sizeof(DGAModeRec)); + newmodes = realloc(modes, (num + 2) * sizeof(DGAModeRec)); oneMore = TRUE; } else { - newmodes = xrealloc(modes, (num + 1) * sizeof(DGAModeRec)); + newmodes = realloc(modes, (num + 1) * sizeof(DGAModeRec)); oneMore = FALSE; } if(!newmodes) { - xfree(modes); + free(modes); return FALSE; } modes = newmodes; diff --git a/src/s3v_driver.c b/src/s3v_driver.c index 0928a7f..7064b1e 100644 --- a/src/s3v_driver.c +++ b/src/s3v_driver.c @@ -57,8 +57,9 @@ in this Software without prior written authorization from the XFree86 Project. */ - /* Most xf86 commons are already in s3v.h */ -#include "s3v.h" +/* Most xf86 commons are already in s3v.h */ +#include "s3v.h" +#include "s3v_pciids.h" #include "globals.h" @@ -383,7 +384,7 @@ S3VFreeRec(ScrnInfoPtr pScrn) PVERB5(" S3VFreeRec\n"); if (pScrn->driverPrivate == NULL) return; - xfree(pScrn->driverPrivate); + free(pScrn->driverPrivate); pScrn->driverPrivate = NULL; } @@ -435,7 +436,7 @@ S3VProbe(DriverPtr drv, int flags) numDevSections, drv, &usedChips); /* Free it since we don't need that list after this */ - xfree(devSections); + free(devSections); if (numUsed <= 0) return FALSE; @@ -463,7 +464,7 @@ S3VProbe(DriverPtr drv, int flags) foundScreen = TRUE; } } - xfree(usedChips); + free(usedChips); PVERB5(" S3VProbe end\n"); return foundScreen; } @@ -519,7 +520,7 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags) */ if (!vgaHWGetHWRec(pScrn)) return FALSE; - + vgaHWSetStdFuncs(VGAHWPTR(pScrn)); /* Set pScrn->monitor */ pScrn->monitor = pScrn->confScreen->monitor; @@ -601,7 +602,7 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags) } /* Process the options */ - if (!(ps3v->Options = xalloc(sizeof(S3VOptions)))) + if (!(ps3v->Options = malloc(sizeof(S3VOptions)))) return FALSE; memcpy(ps3v->Options, S3VOptions, sizeof(S3VOptions)); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, ps3v->Options); @@ -797,7 +798,7 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags) #ifndef XSERVER_LIBPCIACCESS if (pEnt->resources) { - xfree(pEnt); + free(pEnt); S3VFreeRec(pScrn); return FALSE; } @@ -851,7 +852,7 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags) } else { ps3v->ChipRev = PCI_DEV_REVISION(ps3v->PciInfo); } - xfree(pEnt); + free(pEnt); /* * This shouldn't happen because such problems should be caught in @@ -1328,8 +1329,11 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags) /* Load XAA if needed */ if (!ps3v->NoAccel || ps3v->hwcursor ) { if (!xf86LoadSubModule(pScrn, "xaa")) { - S3VFreeRec(pScrn); - return FALSE; + xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, VERBLEV, + "Falling back to shadowfb\n"); + ps3v->NoAccel = 1; + ps3v->hwcursor = 0; + ps3v->shadowFB = 1; } } @@ -2326,8 +2330,6 @@ S3VScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) pScrn = xf86Screens[pScreen->myNum]; /* Get S3V rec */ ps3v = S3VPTR(pScrn); - /* Make sure we have card access */ -/* xf86EnableAccess(pScrn);*/ /* Map MMIO regs and framebuffer */ if( !S3VMapMem(pScrn) ) return FALSE; @@ -2525,7 +2527,7 @@ S3VInternalScreenInit( int scrnIndex, ScreenPtr pScreen) if(ps3v->shadowFB) { ps3v->ShadowPitch = BitmapBytePad(pScrn->bitsPerPixel * width); - ps3v->ShadowPtr = xalloc(ps3v->ShadowPitch * height); + ps3v->ShadowPtr = malloc(ps3v->ShadowPitch * height); displayWidth = ps3v->ShadowPitch / (pScrn->bitsPerPixel >> 3); FBStart = ps3v->ShadowPtr; } else { @@ -3309,7 +3311,7 @@ S3VCloseScreen(int scrnIndex, ScreenPtr pScreen) if (ps3v->AccelInfoRec) XAADestroyInfoRec(ps3v->AccelInfoRec); if (ps3v->DGAModes) - xfree(ps3v->DGAModes); + free(ps3v->DGAModes); pScrn->vtSema = FALSE; @@ -3518,11 +3520,17 @@ S3VEnableMmio(ScrnInfoPtr pScrn) S3VPtr ps3v; IOADDRESS vgaCRIndex, vgaCRReg; unsigned char val; - + unsigned int PIOOffset = 0; + PVERB5(" S3VEnableMmio\n"); hwp = VGAHWPTR(pScrn); ps3v = S3VPTR(pScrn); + +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 + PIOOffset = hwp->PIOOffset; +#endif + /* * enable chipset (seen on uninitialized secondary cards) * might not be needed once we use the VGA softbooter @@ -3535,17 +3543,17 @@ S3VEnableMmio(ScrnInfoPtr pScrn) * to be set correctly already and MMIO _has_ to be * enabled. */ - val = inb(hwp->PIOOffset + 0x3C3); /*@@@EE*/ - outb(hwp->PIOOffset + 0x3C3, val | 0x01); + val = inb(PIOOffset + 0x3C3); /*@@@EE*/ + outb(PIOOffset + 0x3C3, val | 0x01); /* * set CR registers to color mode * in mono mode extended CR registers * are not accessible. (EE 05/04/99) */ - val = inb(hwp->PIOOffset + VGA_MISC_OUT_R); /*@@@EE*/ - outb(hwp->PIOOffset + VGA_MISC_OUT_W, val | 0x01); + val = inb(PIOOffset + VGA_MISC_OUT_R); /*@@@EE*/ + outb(PIOOffset + VGA_MISC_OUT_W, val | 0x01); vgaHWGetIOBase(hwp); /* Get VGA I/O base */ - vgaCRIndex = hwp->PIOOffset + hwp->IOBase + 4; + vgaCRIndex = PIOOffset + hwp->IOBase + 4; vgaCRReg = vgaCRIndex + 1; #if 1 /* @@ -3564,7 +3572,7 @@ S3VEnableMmio(ScrnInfoPtr pScrn) /* Enable new MMIO, if TRIO mmio is already */ /* enabled, then it stays enabled. */ outb(vgaCRReg, ps3v->EnableMmioCR53 | 0x08); - outb(hwp->PIOOffset + VGA_MISC_OUT_W, val); + outb(PIOOffset + VGA_MISC_OUT_W, val); if (S3_TRIO_3D_SERIES(ps3v->Chipset)) { outb(vgaCRIndex, 0x40); val = inb(vgaCRReg); @@ -3586,7 +3594,10 @@ S3VDisableMmio(ScrnInfoPtr pScrn) hwp = VGAHWPTR(pScrn); ps3v = S3VPTR(pScrn); - vgaCRIndex = hwp->PIOOffset + hwp->IOBase + 4; + vgaCRIndex = hwp->IOBase + 4; +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 + vgaCRIndex += hwp->PIOOffset; +#endif vgaCRReg = vgaCRIndex + 1; outb(vgaCRIndex, 0x53); /* Restore register's original state */ diff --git a/src/s3v_hwcurs.c b/src/s3v_hwcurs.c index 53c539f..58e8fd9 100644 --- a/src/s3v_hwcurs.c +++ b/src/s3v_hwcurs.c @@ -39,6 +39,7 @@ in this Software without prior written authorization from the XFree86 Project. #include "s3v.h" +#include "s3v_pciids.h" /* protos */ diff --git a/src/s3v_i2c.c b/src/s3v_i2c.c index cbac21f..6bbfd1e 100644 --- a/src/s3v_i2c.c +++ b/src/s3v_i2c.c @@ -58,7 +58,6 @@ in this Software without prior written authorization from the XFree86 Project. #include "compiler.h" #include "xf86Pci.h" -#include "xf86PciInfo.h" #include "vgaHW.h" diff --git a/src/s3v_pciids.h b/src/s3v_pciids.h new file mode 100644 index 0000000..5d11333 --- /dev/null +++ b/src/s3v_pciids.h @@ -0,0 +1,18 @@ +#ifndef S3V_PCIIDS_H +#define S3V_PCIIDS_H + +#define PCI_VENDOR_S3 0x5333 +#define PCI_CHIP_VIRGE 0x5631 +#define PCI_CHIP_TRIO 0x8811 +#define PCI_CHIP_TRIO64UVP 0x8814 +#define PCI_CHIP_VIRGE_VX 0x883D +#define PCI_CHIP_TRIO64V2_DXGX 0x8901 +#define PCI_CHIP_Trio3D 0x8904 +#define PCI_CHIP_VIRGE_DXGX 0x8A01 +#define PCI_CHIP_VIRGE_GX2 0x8A10 +#define PCI_CHIP_Trio3D_2X 0x8A13 +#define PCI_CHIP_VIRGE_MX 0x8C01 +#define PCI_CHIP_VIRGE_MXPLUS 0x8C02 +#define PCI_CHIP_VIRGE_MXP 0x8C03 + +#endif /* S3V_PCIIDS_H */ diff --git a/src/s3v_shadow.c b/src/s3v_shadow.c index e2e1269..82b763f 100644 --- a/src/s3v_shadow.c +++ b/src/s3v_shadow.c @@ -60,7 +60,6 @@ in this Software without prior written authorization from the XFree86 Project. #include "xf86.h" #include "xf86_OSproc.h" -#include "xf86PciInfo.h" #include "xf86Pci.h" #include "shadowfb.h" #include "servermd.h" diff --git a/src/s3v_xv.c b/src/s3v_xv.c index 7e7c243..2466789 100644 --- a/src/s3v_xv.c +++ b/src/s3v_xv.c @@ -40,8 +40,9 @@ in this Software without prior written authorization from the XFree86 Project. #include "config.h" #endif - /* Most xf86 commons are already in s3v.h */ -#include "s3v.h" +/* Most xf86 commons are already in s3v.h */ +#include "s3v.h" +#include "s3v_pciids.h" #if 0 #define OFF_DELAY 250 /* milliseconds */ @@ -137,7 +138,7 @@ void S3VInitVideo(ScreenPtr pScreen) adaptors = &newAdaptor; } else { newAdaptors = /* need to free this someplace */ - xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*)); + malloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*)); if(newAdaptors) { memcpy(newAdaptors, adaptors, num_adaptors * sizeof(XF86VideoAdaptorPtr)); @@ -152,7 +153,7 @@ void S3VInitVideo(ScreenPtr pScreen) xf86XVScreenInit(pScreen, adaptors, num_adaptors); if(newAdaptors) - xfree(newAdaptors); + free(newAdaptors); } /* client libraries expect an encoding */ @@ -301,10 +302,10 @@ S3VAllocAdaptor(ScrnInfoPtr pScrn) if(!(adapt = xf86XVAllocateVideoAdaptorRec(pScrn))) return NULL; - if(!(pPriv = xcalloc(1, sizeof(S3VPortPrivRec) + + if(!(pPriv = calloc(1, sizeof(S3VPortPrivRec) + (sizeof(DevUnion) * S3V_MAX_PORTS)))) { - xfree(adapt); + free(adapt); return NULL; }