X Strike Force SVN commit: rev 228 - branches/4.3.0/sid/debian/patches
Author: daniel
Date: 2003-06-22 03:07:42 -0500 (Sun, 22 Jun 2003)
New Revision: 228
Added:
branches/4.3.0/sid/debian/patches/061_savage_driver_1.1.27t.diff
Removed:
branches/4.3.0/sid/debian/patches/061_libGLU_fix_weak_deps.diff
branches/4.3.0/sid/debian/patches/063_savage_driver_1.1.27t.diff
Log:
quick renumbering: savage driver #063->#061, nuke libGL
Deleted: branches/4.3.0/sid/debian/patches/061_libGLU_fix_weak_deps.diff
==============================================================================
--- branches/4.3.0/sid/debian/patches/061_libGLU_fix_weak_deps.diff 2003-06-22 05:51:24 UTC (rev 227)
+++ branches/4.3.0/sid/debian/patches/061_libGLU_fix_weak_deps.diff 2003-06-22 08:07:42 UTC (rev 228)
@@ -1,24 +0,0 @@
-Fix a weak dependency on libGL from libGLU; this patch by Daniel Stone.
-
---- xc/extras/ogl-sample/main/gfx/lib/glu/Imakefile.orig 2003-06-19 21:58:01.000000000 +1000
-+++ xc/extras/ogl-sample/main/gfx/lib/glu/Imakefile 2003-06-19 21:58:40.000000000 +1000
-@@ -43,7 +43,7 @@
- #if defined(LinuxArchitecture)
- #define SharedLibraryCcCmd CplusplusCmd
- SHLIBLDFLAGS = -shared -Wl,--whole-archive
--REQUIREDLIBS = -Wl,--no-whole-archive
-+REQUIREDLIBS = -Wl,--no-whole-archive -lGL
- #else
- REQUIREDLIBS = -lGL -lm -lc -lC
- #endif
---- xc/extras/ogl-sample/main/gfx/lib/glu/GNUmakefile.orig 2003-06-19 21:58:07.000000000 +1000
-+++ xc/extras/ogl-sample/main/gfx/lib/glu/GNUmakefile 2003-06-19 21:58:31.000000000 +1000
-@@ -87,7 +87,7 @@
- $(SUBDIRS_MAKERULE)
-
- $(TARGET): $(DSOEXPORTS) $(SRCLIBS)
-- $(LD) $(LDDSOFLAGS) $(SRCLIBS) $(LDFLAGS) -o $@;
-+ $(LD) $(LDDSOFLAGS) $(SRCLIBS) $(LDFLAGS) $(LLDLIBS) -o $@;
-
- $(DSOEXPORTS): $(LIBSPEC_PARSER) $(TYPEMAPSDIR)/$(C_TYPEMAP) \
- $(SPECDIR)/$(GLU_SPEC) exports.ls GNUmakefile
Copied: branches/4.3.0/sid/debian/patches/061_savage_driver_1.1.27t.diff (from rev 227, branches/4.3.0/sid/debian/patches/063_savage_driver_1.1.27t.diff)
Deleted: branches/4.3.0/sid/debian/patches/063_savage_driver_1.1.27t.diff
==============================================================================
--- branches/4.3.0/sid/debian/patches/063_savage_driver_1.1.27t.diff 2003-06-22 05:51:24 UTC (rev 227)
+++ branches/4.3.0/sid/debian/patches/063_savage_driver_1.1.27t.diff 2003-06-22 08:07:42 UTC (rev 228)
@@ -1,787 +0,0 @@
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/Imakefile xc/programs/Xserver/hw/xfree86/drivers/savage/Imakefile
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/Imakefile 2003-02-18 04:06:44.000000000 +1100
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/Imakefile 2002-10-08 05:19:10.000000000 +1000
-@@ -1,4 +1,4 @@
--XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/Imakefile,v 1.8 2003/02/17 17:06:44 dawes Exp $
-+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/Imakefile,v 1.7 2002/05/14 20:19:51 alanh Exp $
- /*
- *
- * Copyright 1995-1998 The XFree86 Project, Inc.
-@@ -42,7 +42,7 @@
- -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
- -I$(XF86SRC)/rac -I$(XF86SRC)/int10 -I$(SERVERSRC)/render \
- -I$(SERVERSRC)/include -I$(XINCLUDESRC) -I$(FONTINCSRC) \
-- -I$(EXTINCSRC) -I$(XF86SRC)/vbe -I$(XF86SRC)/shadowfb
-+ -I$(EXTINCSRC) -I$(XF86OSSRC)/vbe -I$(XF86SRC)/shadowfb
- #endif
-
- #if MakeHasPosixVariableSubstitutions
-Binary files xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage-1.1.27t.zip and xc/programs/Xserver/hw/xfree86/drivers/savage/savage-1.1.27t.zip differ
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_accel.c xc/programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_accel.c 2002-11-09 05:03:32.000000000 +1100
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c 2002-10-08 05:17:32.000000000 +1000
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c,v 1.18 2002/11/08 18:03:32 alanh Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c,v 1.14 2001/12/13 18:01:50 eich Exp $ */
-
- /*
- *
-@@ -417,7 +417,7 @@
- #if 1
- xaaptr->SetupForScreenToScreenCopy = SavageSetupForScreenToScreenCopy;
- xaaptr->SubsequentScreenToScreenCopy = SavageSubsequentScreenToScreenCopy;
-- xaaptr->ScreenToScreenCopyFlags = NO_TRANSPARENCY | NO_PLANEMASK | ROP_NEEDS_SOURCE;
-+ xaaptr->ScreenToScreenCopyFlags = NO_TRANSPARENCY | ROP_NEEDS_SOURCE;
- #endif
-
-
-@@ -438,7 +438,6 @@
- xaaptr->Mono8x8PatternFillFlags = 0
- | HARDWARE_PATTERN_PROGRAMMED_BITS
- | HARDWARE_PATTERN_SCREEN_ORIGIN
-- | ROP_NEEDS_SOURCE
- | BIT_ORDER_IN_BYTE_MSBFIRST
- ;
- if( psav->Chipset == S3_SAVAGE4 )
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_bci.h xc/programs/Xserver/hw/xfree86/drivers/savage/savage_bci.h
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_bci.h 2002-10-03 06:39:54.000000000 +1000
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_bci.h 2002-10-08 05:19:04.000000000 +1000
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_bci.h,v 1.4 2002/10/02 20:39:54 alanh Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_bci.h,v 1.2 2001/10/01 13:44:09 eich Exp $ */
-
- #ifndef _S3BCI_H_
- #define _S3BCI_H_
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_cursor.c xc/programs/Xserver/hw/xfree86/drivers/savage/savage_cursor.c
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_cursor.c 2003-01-19 02:22:29.000000000 +1100
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_cursor.c 2002-10-08 05:17:32.000000000 +1000
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_cursor.c,v 1.9 2003/01/18 15:22:29 eich Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_cursor.c,v 1.6 2001/11/02 16:24:51 alanh Exp $ */
-
- /*
- * Hardware cursor support for S3 Savage 4.0 driver. Taken with
-@@ -39,27 +39,6 @@
- }
- #define MAX_CURS 64
-
--/*
-- * Disable HW Cursor on stretched LCDs. We don't know how to
-- * detect if display is stretched. Therefore we cannot rescale
-- * the HW cursor position.
-- */
--
--static Bool
--SavageUseHWCursor(ScreenPtr pScr, CursorPtr pCurs)
--{
-- ScrnInfoPtr pScrn = xf86Screens[pScr->myNum];
-- SavagePtr psav = SAVPTR(pScrn);
--
-- if (psav->PanelX != pScrn->currentMode->HDisplay
-- || psav->PanelY != pScrn->currentMode->VDisplay) {
-- /* BIT 1 : CRT is active, BIT 2 : LCD is active */
-- unsigned char cr6d = inCRReg( 0x6d );
-- if (cr6d & 0x02)
-- return FALSE;
-- }
-- return TRUE;
--}
-
- Bool
- SavageHWCursorInit(ScreenPtr pScreen)
-@@ -101,12 +80,8 @@
- infoPtr->LoadCursorImage = SavageLoadCursorImage;
- infoPtr->HideCursor = SavageHideCursor;
- infoPtr->ShowCursor = SavageShowCursor;
-+ infoPtr->UseHWCursor = NULL;
-
-- if ((S3_SAVAGE_MOBILE_SERIES(psav->Chipset)
-- || (psav->Chipset == S3_PROSAVAGE)) && !psav->CrtOnly)
-- infoPtr->UseHWCursor = SavageUseHWCursor;
-- else
-- infoPtr->UseHWCursor = NULL;
- if( !psav->CursorKByte )
- psav->CursorKByte = pScrn->videoRam - 4;
-
-@@ -118,9 +93,8 @@
- void
- SavageShowCursor(ScrnInfoPtr pScrn)
- {
-- /* Turn cursor on. */
-+ /* Turn cursor on. */
- outCRReg( 0x45, inCRReg(0x45) | 0x01 );
-- SAVPTR(pScrn)->hwc_on = TRUE;
- }
-
-
-@@ -128,12 +102,12 @@
- SavageHideCursor(ScrnInfoPtr pScrn)
- {
- /* Turn cursor off. */
-+
- if( S3_SAVAGE4_SERIES( SAVPTR(pScrn)->Chipset ) )
- {
- waitHSync(5);
- }
- outCRReg( 0x45, inCRReg(0x45) & 0xfe );
-- SAVPTR(pScrn)->hwc_on = FALSE;
- }
-
- static void
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_dga.c xc/programs/Xserver/hw/xfree86/drivers/savage/savage_dga.c
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_dga.c 2003-01-19 02:22:29.000000000 +1100
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_dga.c 2002-10-08 05:17:32.000000000 +1000
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_dga.c,v 1.6 2003/01/18 15:22:29 eich Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_dga.c,v 1.3 2001/05/18 23:35:32 dawes Exp $ */
-
- /*
- Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
-@@ -275,7 +275,7 @@
-
- psav->DGAactive = FALSE;
- SavageSwitchMode(index, pScrn->currentMode, 0);
-- if( psav->hwcursor && psav->hwc_on )
-+ if( psav->hwcursor )
- SavageShowCursor(pScrn);
- } else {
- Bool holdBIOS = psav->UseBIOS;
-@@ -289,11 +289,8 @@
- pMode->bitsPerPixel, pMode->depth);
- #endif
-
-- if( psav->hwcursor && psav->hwc_on) {
-+ if( psav->hwcursor )
- SavageHideCursor(pScrn);
-- psav->hwc_on = TRUE; /* save for later restauration */
-- }
--
-
- if(!psav->DGAactive) { /* save the old parameters */
- OldDisplayWidth[index] = pScrn->displayWidth;
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_driver.c xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_driver.c 2003-06-21 00:05:26.000000000 +1000
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c 2003-01-17 08:25:58.000000000 +1100
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c,v 1.34 2003/02/25 04:08:21 dawes Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c,v 1.24 2001/11/02 16:24:51 alanh Exp $ */
- /*
- * vim: sw=4 ts=8 ai ic:
- *
-@@ -82,10 +82,10 @@
- #define iabs(a) ((int)(a)>0?(a):(-(a)))
-
- #define DRIVER_NAME "savage"
--#define DRIVER_VERSION "1.1.26"
-+#define DRIVER_VERSION "1.1.27t"
- #define VERSION_MAJOR 1
- #define VERSION_MINOR 1
--#define PATCHLEVEL 26
-+#define PATCHLEVEL 27
- #define SAVAGE_VERSION ((VERSION_MAJOR << 24) | \
- (VERSION_MINOR << 16) | \
- PATCHLEVEL)
-@@ -123,8 +123,8 @@
- { PCI_CHIP_SAVAGE_IX, "Savage/IX" },
- { PCI_CHIP_PROSAVAGE_PM, "ProSavage PM133" },
- { PCI_CHIP_PROSAVAGE_KM, "ProSavage KM133" },
-- { PCI_CHIP_S3TWISTER_P, "Twister PN133" },
-- { PCI_CHIP_S3TWISTER_K, "Twister KN133" },
-+ { PCI_CHIP_S3TWISTER_P, "ProSavage PN133" },
-+ { PCI_CHIP_S3TWISTER_K, "ProSavage KN133" },
- { PCI_CHIP_SUPSAV_MX128, "SuperSavage/MX 128" },
- { PCI_CHIP_SUPSAV_MX64, "SuperSavage/MX 64" },
- { PCI_CHIP_SUPSAV_MX64C, "SuperSavage/MX 64C" },
-@@ -193,6 +193,7 @@
- ,OPTION_ROTATE
- ,OPTION_USEBIOS
- ,OPTION_SHADOW_STATUS
-+ ,OPTION_VIDEORAM
- ,OPTION_CRT_ONLY
- ,OPTION_TV_ON
- ,OPTION_TV_PAL
-@@ -210,6 +211,7 @@
- { OPTION_USEBIOS, "UseBIOS", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_LCDCLOCK, "LCDClock", OPTV_FREQ, {0}, FALSE },
- { OPTION_SHADOW_STATUS, "ShadowStatus", OPTV_BOOLEAN, {0}, FALSE },
-+ { OPTION_VIDEORAM, "VideoRAM", OPTV_INTEGER, {0}, FALSE },
- { OPTION_CRT_ONLY, "CrtOnly", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_TV_ON, "TvOn", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_TV_PAL, "PAL", OPTV_BOOLEAN, {0}, FALSE },
-@@ -889,6 +891,13 @@
- xf86DrvMsg(pScrn->scrnIndex, from, "%ssing video BIOS to set modes\n",
- psav->UseBIOS ? "U" : "Not u" );
-
-+ pScrn->videoRam = 0;
-+ if( xf86GetOptValInteger(psav->Options, OPTION_VIDEORAM, &pScrn->videoRam ) )
-+ {
-+ xf86DrvMsg( pScrn->scrnIndex, X_CONFIG,
-+ "Option: VideoRAM %dkB\n", pScrn->videoRam );
-+ }
-+
- psav->LCDClock = 0.0;
- if( xf86GetOptValFreq( psav->Options, OPTION_LCDCLOCK, OPTUNITS_MHZ, &psav->LCDClock ) )
- xf86DrvMsg( pScrn->scrnIndex, X_CONFIG,
-@@ -986,9 +995,6 @@
- } else
- psav->ChipRev = psav->PciInfo->chipRev;
-
-- if (pEnt->device->videoRam != 0)
-- pScrn->videoRam = pEnt->device->videoRam;
--
- xfree(pEnt);
-
- /* maybe throw in some more sanity checks here */
-@@ -1352,7 +1358,7 @@
- }
- }
-
-- clockRanges = xnfcalloc(sizeof(ClockRange),1);
-+ clockRanges = xnfalloc(sizeof(ClockRange));
- clockRanges->next = NULL;
- clockRanges->minClock = psav->minClock;
- clockRanges->maxClock = psav->maxClock;
-@@ -2833,16 +2839,15 @@
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- TRACE(("SavageSaveScreen(0x%x)\n", mode));
-
-- if( pScrn->vtSema && SAVPTR(pScrn)->hwcursor && SAVPTR(pScrn)->hwc_on) {
--
-+ if( pScrn->vtSema && SAVPTR(pScrn)->hwcursor )
-+ {
- if( xf86IsUnblank(mode) )
- SavageShowCursor( pScrn );
- else
- SavageHideCursor( pScrn );
-- SAVPTR(pScrn)->hwc_on = TRUE;
- }
-
-- return vgaHWSaveScreen(pScreen, mode);
-+ return vgaHWSaveScreen(pScreen, mode);
- }
-
-
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_driver.h xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_driver.h 2003-01-19 02:22:30.000000000 +1100
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h 2003-01-17 12:10:04.000000000 +1100
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h,v 1.16 2003/01/18 15:22:30 eich Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.h,v 1.11 2001/08/09 19:14:13 dawes Exp $ */
-
- #ifndef SAVAGE_VGAHWMMIO_H
- #define SAVAGE_VGAHWMMIO_H
-@@ -118,7 +118,6 @@
- Bool fifo_moderate;
- Bool fifo_aggressive;
- Bool hwcursor;
-- Bool hwc_on;
- Bool NoAccel;
- Bool shadowFB;
- Bool UseBIOS;
-@@ -140,11 +139,9 @@
- int YFactor; /* overlay Y factor */
- int displayXoffset; /* overlay X offset */
- int displayYoffset; /* overlay Y offset */
-- int XExpansion; /* expansion factor in x */
-- int XExp1;
-+ int XExp1; /* expansion ratio in x */
- int XExp2;
-- int YExpansion; /* expansion factor in x */
-- int YExp1;
-+ int YExp1; /* expansion ratio in x */
- int YExp2;
- int cxScreen;
- int TVSizeX;
-@@ -213,15 +210,6 @@
-
- #define SAVPTR(p) ((SavagePtr)((p)->driverPrivate))
-
--/* Make the names of these externals driver-unique */
--#define gpScrn savagegpScrn
--#define myOUTREG savageOUTREG
--#define readdw savagereaddw
--#define readfb savagereadfb
--#define writedw savagewritedw
--#define writefb savagewritefb
--#define writescan savagewritescan
--
- /* Prototypes. */
-
- extern void SavageCommonCalcClock(long freq, int min_m, int min_n1,
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_i2c.c xc/programs/Xserver/hw/xfree86/drivers/savage/savage_i2c.c
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_i2c.c 2002-10-03 06:39:55.000000000 +1000
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_i2c.c 2002-10-08 05:17:32.000000000 +1000
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_i2c.c,v 1.3 2002/10/02 20:39:55 alanh Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_i2c.c,v 1.1 2001/02/13 21:15:19 dawes Exp $ */
-
- /*
- Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_regs.h xc/programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_regs.h 2003-06-21 00:05:26.000000000 +1000
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h 2003-01-17 10:45:06.000000000 +1100
-@@ -1,8 +1,32 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h,v 1.12 2002/10/02 20:39:55 alanh Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h,v 1.10 2001/11/04 22:17:48 alanh Exp $ */
-
- #ifndef _SAVAGE_REGS_H
- #define _SAVAGE_REGS_H
-
-+/* These are here until xf86PciInfo.h is updated. */
-+
-+#ifndef PCI_CHIP_S3TWISTER_P
-+#define PCI_CHIP_S3TWISTER_P 0x8d01
-+#endif
-+#ifndef PCI_CHIP_S3TWISTER_K
-+#define PCI_CHIP_S3TWISTER_K 0x8d02
-+#endif
-+#ifndef PCI_CHIP_SUPSAV_MX128
-+#define PCI_CHIP_SUPSAV_MX128 0x8c22
-+#define PCI_CHIP_SUPSAV_MX64 0x8c24
-+#define PCI_CHIP_SUPSAV_MX64C 0x8c26
-+#define PCI_CHIP_SUPSAV_IX128SDR 0x8c2a
-+#define PCI_CHIP_SUPSAV_IX128DDR 0x8c2b
-+#define PCI_CHIP_SUPSAV_IX64SDR 0x8c2c
-+#define PCI_CHIP_SUPSAV_IX64DDR 0x8c2d
-+#define PCI_CHIP_SUPSAV_IXCSDR 0x8c2e
-+#define PCI_CHIP_SUPSAV_IXCDDR 0x8c2f
-+#endif
-+#ifndef PCI_CHIP_PROSAVAGE_DDR
-+#define PCI_CHIP_PROSAVAGE_DDR 0x8d03
-+#define PCI_CHIP_PROSAVAGE_DDRK 0x8d04
-+#endif
-+
- #define S3_SAVAGE3D_SERIES(chip) ((chip>=S3_SAVAGE3D) && (chip<=S3_SAVAGE_MX))
-
- #define S3_SAVAGE4_SERIES(chip) ((chip==S3_SAVAGE4) || (chip==S3_PROSAVAGE))
-@@ -192,7 +216,15 @@
- VGAOUT8(psav->vgaIOBase + 5, a); \
- }
-
-+#define HZEXP_COMP_1 0x54
-+#define HZEXP_BORDER 0x58
- #define HZEXP_FACTOR_IGA1 0x59
-+
-+#define VTEXP_COMP_1 0x56
-+#define VTEXP_BORDER 0x5a
- #define VTEXP_FACTOR_IGA1 0x5b
-
-+#define EC1_CENTER_ON 0x10
-+#define EC1_EXPAND_ON 0x0c
-+
- #endif /* _SAVAGE_REGS_H */
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_vbe.c xc/programs/Xserver/hw/xfree86/drivers/savage/savage_vbe.c
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_vbe.c 2002-10-03 06:39:55.000000000 +1000
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_vbe.c 2003-01-17 08:33:52.000000000 +1100
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_vbe.c,v 1.12 2002/10/02 20:39:55 alanh Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_vbe.c,v 1.9 2001/05/19 02:05:55 dawes Exp $ */
-
- #include "savage_driver.h"
- #include "savage_vbe.h"
-@@ -72,7 +72,7 @@
- SavageClearVM86Regs( psav->pInt10 );
- psav->pInt10->ax = 0x4f14; /* S3 extensions */
- psav->pInt10->bx = 0x0001; /* Set default refresh rate */
-- psav->pInt10->cx = n;
-+ psav->pInt10->cx = n & 0x3fff;
- psav->pInt10->di = Refresh & 0xffff;
-
- xf86ExecX86int10( psav->pInt10 );
-diff -urN xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_video.c xc/programs/Xserver/hw/xfree86/drivers/savage/savage_video.c
---- xc/programs/Xserver/hw/xfree86/drivers/savage.old/savage_video.c 2003-01-12 14:55:49.000000000 +1100
-+++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_video.c 2003-01-17 12:16:16.000000000 +1100
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_video.c,v 1.11 2003/01/12 03:55:49 tsi Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/savage/savage_video.c,v 1.7 2001/11/21 22:43:01 dawes Exp $ */
-
- #include "Xv.h"
- #include "dix.h"
-@@ -79,7 +79,7 @@
- ) = NULL;
-
- static void OverlayParamInit(ScrnInfoPtr pScrn);
--static void InitStreamsForExpansion(SavagePtr psav);
-+static void InitStreamsForExpansion(ScrnInfoPtr pScrn);
-
- /*static void SavageBlockHandler(int, pointer, pointer, pointer);*/
-
-@@ -421,7 +421,6 @@
-
- /* Sequence stolen from streams.c in M7 NT driver */
-
--
- xf86EnableIO();
-
- /* Unlock extended registers. */
-@@ -430,10 +429,17 @@
- VGAOUT16(vgaCRIndex, 0xa039);
- VGAOUT16(0x3c4, 0x0608);
-
-+ if(
-+ S3_SAVAGE_MOBILE_SERIES(psav->Chipset) &&
-+ !psav->CrtOnly &&
-+ !psav->TvOn
-+ ) {
-+ OverlayParamInit( pScrn );
-+ }
-+
- VGAOUT8( vgaCRIndex, EXT_MISC_CTRL2 );
-
- if( S3_SAVAGE_MOBILE_SERIES(psav->Chipset) ||
-- (psav->Chipset == S3_SUPERSAVAGE) ||
- (psav->Chipset == S3_SAVAGE2000) )
- {
- jStreamsControl = VGAIN8( vgaCRReg ) | ENABLE_STREAM1;
-@@ -869,10 +875,10 @@
-
- psav->adaptor = adapt;
-
--#if 0
-+ #if 0
- psav->BlockHandler = pScreen->BlockHandler;
- pScreen->BlockHandler = SavageBlockHandler;
--#endif
-+ #endif
-
- return adapt;
- }
-@@ -992,9 +998,8 @@
-
- REGION_EMPTY(pScrn->pScreen, &pPriv->clip);
-
-- SavageStreamsOff( pScrn );
--
- if(shutdown) {
-+ SavageStreamsOff( pScrn );
- if(pPriv->area) {
- xf86FreeOffscreenArea(pPriv->area);
- pPriv->area = NULL;
-@@ -1283,9 +1288,11 @@
- ssControl |= (1 << 24);
- OUTREG(SSTREAM_CONTROL_REG, ssControl);
-
-+#if 0
- /* Set color key on primary. */
-
- SavageSetColorKey( pScrn );
-+#endif
-
- /* Set FIFO L2 on second stream. */
-
-@@ -1358,10 +1365,10 @@
- !psav->CrtOnly &&
- !psav->TvOn
- ) {
-- drw_w = (float)(drw_w * psav->XExp1)/(float)psav->XExp2 + 1;
-- drw_h = (float)(drw_h * psav->YExp1)/(float)psav->YExp2 + 1;
-- dstBox->x1 = (float)(dstBox->x1 * psav->XExp1)/(float)psav->XExp2;
-- dstBox->y1 = (float)(dstBox->y1 * psav->YExp1)/(float)psav->YExp2;
-+ drw_w = (drw_w * psav->XExp1)/psav->XExp2 + 1;
-+ drw_h = (drw_h * psav->YExp1)/psav->YExp2 + 1;
-+ dstBox->x1 = (dstBox->x1 * psav->XExp1)/psav->XExp2;
-+ dstBox->y1 = (dstBox->y1 * psav->YExp1)/psav->YExp2;
- dstBox->x1 += psav->displayXoffset;
- dstBox->y1 += psav->displayYoffset;
- }
-@@ -1378,14 +1385,16 @@
- * are 2 bytes/pixel.
- */
-
-- OUTREG(SEC_STREAM_FBUF_ADDR0, (offset + (x1>>15)) & 0x3ffff0 );
-+ OUTREG(SEC_STREAM_FBUF_ADDR0, (offset + (x1>>15)) & 0x7ffff0 );
- OUTREG(SEC_STREAM_STRIDE, pitch & 0xfff );
- OUTREG(SEC_STREAM_WINDOW_START, ((dstBox->x1+1) << 16) | (dstBox->y1+1) );
- OUTREG(SEC_STREAM_WINDOW_SZ, ((drw_w) << 16) | drw_h );
-
-+#if 0
- /* Set color key on primary. */
-
- SavageSetColorKey( pScrn );
-+#endif
-
- /* Set FIFO L2 on second stream. */
-
-@@ -1424,6 +1433,20 @@
- int top, left, npixels, nlines;
- BoxRec dstBox;
- CARD32 tmp;
-+/* xf86ErrorFVerb(XVTRACE,"SavagePutImage\n"); */
-+
-+ if( psav->cxScreen != pScrn->currentMode->HDisplay )
-+ {
-+ /* The mode has changed. Recompute the offsets. */
-+
-+ if(
-+ S3_SAVAGE_MOBILE_SERIES(psav->Chipset) &&
-+ !psav->CrtOnly &&
-+ !psav->TvOn
-+ ) {
-+ OverlayParamInit( pScrn );
-+ }
-+ }
-
- if(drw_w > 16384) drw_w = 16384;
-
-@@ -1519,6 +1542,12 @@
- SavageCopyData(buf, dst_start, srcPitch, dstPitch, nlines, npixels);
- break;
- }
-+
-+ /* We need to enable the video before we draw the chroma color.
-+ Otherwise, we get blue flashes. */
-+
-+ SavageDisplayVideo(pScrn, id, offset, width, height, dstPitch,
-+ x1, y1, x2, y2, &dstBox, src_w, src_h, drw_w, drw_h);
-
- /* update cliplist */
- if(!RegionsEqual(&pPriv->clip, clipBoxes)) {
-@@ -1528,9 +1557,6 @@
- REGION_NUM_RECTS(clipBoxes),
- REGION_RECTS(clipBoxes));
- }
--
-- SavageDisplayVideo(pScrn, id, offset, width, height, dstPitch,
-- x1, y1, x2, y2, &dstBox, src_w, src_h, drw_w, drw_h);
-
- pPriv->videoStatus = CLIENT_VIDEO_ON;
-
-@@ -1692,6 +1718,7 @@
- XF86SurfacePtr surface
- ){
- OffscreenPrivPtr pPriv = (OffscreenPrivPtr)surface->devPrivate.ptr;
-+ xf86ErrorFVerb(XVTRACE,"SavageStopSurface\n");
-
- if(pPriv->isOn) {
- /*SavagePtr psav = SAVPTR(surface->pScrn);*/
-@@ -1754,6 +1781,7 @@
- SavagePortPrivPtr portPriv = GET_PORT_PRIVATE(pScrn);
- INT32 x1, y1, x2, y2;
- BoxRec dstBox;
-+ xf86ErrorFVerb(XVTRACE,"SavageDisplaySurface\n");
-
- x1 = src_x;
- x2 = src_x + src_w;
-@@ -1777,14 +1805,14 @@
- dstBox.y1 -= pScrn->frameY0;
- dstBox.y2 -= pScrn->frameY0;
-
-- XAAFillSolidRects(pScrn, portPriv->colorKey, GXcopy, ~0,
-- REGION_NUM_RECTS(clipBoxes),
-- REGION_RECTS(clipBoxes));
--
- SavageDisplayVideo(pScrn, surface->id, surface->offsets[0],
- surface->width, surface->height, surface->pitches[0],
- x1, y1, x2, y2, &dstBox, src_w, src_h, drw_w, drw_h);
-
-+ XAAFillSolidRects(pScrn, portPriv->colorKey, GXcopy, ~0,
-+ REGION_NUM_RECTS(clipBoxes),
-+ REGION_RECTS(clipBoxes));
-+
- pPriv->isOn = TRUE;
- #if 0
- if(portPriv->videoStatus & CLIENT_VIDEO_ON) {
-@@ -1839,144 +1867,89 @@
- SavagePtr psav = SAVPTR(pScrn);
-
- psav = SAVPTR(pScrn);
-- psav->cxScreen = psav->iResX;
-- InitStreamsForExpansion(psav);
-+ psav->cxScreen = pScrn->currentMode->HDisplay;
-+ InitStreamsForExpansion(pScrn);
- }
-
--/* Function to calculate lcd expansion x,yfactor and offset for overlay
-+/* Function to calculate lcd expansion x,y factor and offset for overlay
- */
--static void InitStreamsForExpansion(SavagePtr psav)
-+static void InitStreamsForExpansion(ScrnInfoPtr pScrn)
- {
-+ SavagePtr psav = SAVPTR(pScrn);
- int PanelSizeX,PanelSizeY;
- int ViewPortWidth,ViewPortHeight;
-+ int XExpansion, YExpansion;
- int XFactor, YFactor;
-+ int Hstate, Vstate;
-+
-+ static CARD32 Xfactors[] = {
-+ 0x00010001,
-+ 0x00010001, /* 1 */
-+ 0,
-+ 0x00090008, /* 3 */
-+ 0x00050004, /* 4 */
-+ 0,
-+ 0x00030002, /* 6 */
-+ 0x00020001 /* 7 */
-+ };
-+
-+ static CARD32 Yfactors[] = {
-+ 0x00010001, 0x00010001,
-+ 0, 0x00060005,
-+ 0x00050004, 0x00040003,
-+ 0, 0x00030002,
-+ 0x00020001, 0x00050002,
-+ 0x000C0005, 0x00080003,
-+ 0x00090004, 0,
-+ 0x00030001, 0x00040001,
-+ };
-+
-+
-
- PanelSizeX = psav->PanelX;
- PanelSizeY = psav->PanelY;
-- ViewPortWidth = psav->iResX;
-- ViewPortHeight = psav->iResY;
-+ ViewPortWidth = pScrn->currentMode->HDisplay;
-+ ViewPortHeight = pScrn->currentMode->VDisplay;
-+
- if( PanelSizeX == 1408 )
- PanelSizeX = 1400;
-- psav->XExpansion = 0x00010001;
-- psav->YExpansion = 0x00010001;
-+
-+ XExpansion = 0x00010001;
-+ YExpansion = 0x00010001;
-+
- psav->displayXoffset = 0;
- psav->displayYoffset = 0;
-
-+ VGAOUT8(0x3C4, HZEXP_COMP_1);
-+ Hstate = VGAIN8(0x3C5);
-+ VGAOUT8(0x3C4, VTEXP_COMP_1);
-+ Vstate = VGAIN8(0x3C5);
- VGAOUT8(0x3C4, HZEXP_FACTOR_IGA1);
-- XFactor = VGAIN8(0x3C5) >> 4;
-+ XFactor = VGAIN8(0x3C5);
- VGAOUT8(0x3C4, VTEXP_FACTOR_IGA1);
-- YFactor = VGAIN8(0x3C5) >> 4;
-+ YFactor = VGAIN8(0x3C5);
-
-- switch( XFactor )
-+ if( Hstate & EC1_EXPAND_ON )
- {
-- case 1:
-- psav->XExpansion = 0x00010001;
-- psav->displayXoffset =
-- (((PanelSizeX - ViewPortWidth) / 2) + 0x7) & 0xFFF8;
-- break;
-+ XExpansion = Xfactors[XFactor>>4];
-+ }
-
-- case 3:
-- psav->XExpansion = 0x00090008;
-- psav->displayXoffset =
-- (((PanelSizeX - ((9 * ViewPortWidth)/8)) / 2) + 0x7) & 0xFFF8;
-- break;
-+ if( Vstate & EC1_EXPAND_ON )
-+ {
-+ YExpansion = Yfactors[YFactor>>4];
-+ }
-
-- case 4:
-- psav->XExpansion = 0x00050004;
-+ psav->XExp1 = XExpansion >> 16;
-+ psav->XExp2 = XExpansion & 0xFFFF;
-
-- if ((psav->cxScreen == 800) && (PanelSizeX !=1400))
-- {
-- psav->displayXoffset =
-- (((PanelSizeX - ((5 * ViewPortWidth)/4)) / 2) ) & 0xFFF8;
-- }
-- else
-- {
-- psav->displayXoffset =
-- (((PanelSizeX - ((5 * ViewPortWidth)/4)) / 2) +0x7) & 0xFFF8;
-- }
-- break;
-+ psav->YExp1 = YExpansion >> 16;
-+ psav->YExp2 = YExpansion & 0xFFFF;
-
-- case 6:
-- psav->XExpansion = 0x00030002;
-- psav->displayXoffset =
-- (((PanelSizeX - ((3 * ViewPortWidth)/2)) / 2) + 0x7) & 0xFFF8;
-- break;
-+ psav->displayXoffset =
-+ ((PanelSizeX - (psav->XExp1 * ViewPortWidth) / psav->XExp2) / 2 + 7) & 0xfff8;
-+ psav->displayYoffset =
-+ ((PanelSizeY - (psav->YExp1 * ViewPortHeight) / psav->YExp2) / 2);
-
-- case 7:
-- psav->XExpansion = 0x00020001;
-- psav->displayXoffset =
-- (((PanelSizeX - (2 * ViewPortWidth)) / 2) + 0x7) & 0xFFF8;
-- break;
-- }
--
-- switch( YFactor )
-- {
-- case 0:
-- psav->YExpansion = 0x00010001;
-- psav->displayYoffset = (PanelSizeY - ViewPortHeight) / 2;
-- break;
-- case 1:
-- psav->YExpansion = 0x00010001;
-- psav->displayYoffset = (PanelSizeY - ViewPortHeight) / 2;
-- break;
-- case 2:
-- psav->YExpansion = 0x00040003;
-- psav->displayYoffset = (PanelSizeY - ((4 * ViewPortHeight)/3)) / 2;
-- break;
-- case 4:
-- psav->YExpansion = 0x00050004;
-- psav->displayYoffset = (PanelSizeY - ((5 * ViewPortHeight)/4)) / 2;
-- break;
-- case 5:
-- psav->YExpansion = 0x00040003;
--
-- if((psav->cxScreen == 1024)&&(PanelSizeX ==1400))
-- {
-- psav->displayYoffset =
-- ((PanelSizeY - ((4 * ViewPortHeight)/3)) / 2) - 0x1 ;
-- }
-- else
-- {
-- psav->displayYoffset = (PanelSizeY - ((4 * ViewPortHeight)/3)) / 2;
-- }
-- break;
-- case 6:
-- psav->YExpansion = 0x00050004;
-- psav->displayYoffset = (PanelSizeY - ((5 * ViewPortHeight)/4)) / 2;
-- break;
-- case 7:
-- psav->YExpansion = 0x00030002;
-- psav->displayYoffset = (PanelSizeY - ((3 * ViewPortHeight)/2)) / 2;
-- break;
-- case 8:
-- psav->YExpansion = 0x00020001;
-- psav->displayYoffset = (PanelSizeY - (2 * ViewPortHeight)) /2;
-- break;
-- case 9:
-- psav->YExpansion = 0x00090004;
-- psav->displayYoffset = (PanelSizeY - ((9 * ViewPortHeight)/4)) /2;
-- break;
-- case 11:
-- psav->YExpansion = 0x00110005;
-- psav->displayYoffset = (PanelSizeY - ((11 * ViewPortHeight)/5)) /2;
-- break;
-- case 12:
-- psav->YExpansion = 0x00070003;
-- psav->displayYoffset = (PanelSizeY - ((7 * ViewPortHeight)/3)) /2;
-- break;
-- case 14:
-- psav->YExpansion = 0x00050002;
-- psav->displayYoffset = (PanelSizeY - ((5 * ViewPortHeight)/2)) /2;
-- break;
-- case 15:
-- psav->YExpansion = 0x00040001;
-- psav->displayYoffset = (PanelSizeY - (4 * ViewPortHeight)) /2;
-- break;
-- }
-- psav->XExp1 = psav->XExpansion >> 16;
-- psav->XExp2 = psav->XExpansion & 0xFFFF;
-- psav->YExp1 = psav->YExpansion >> 16;
-- psav->YExp2 = psav->YExpansion & 0xFFFF;
- } /* InitStreamsForExpansionPM */
-
- #endif /* XvExtension */
Reply to: