diff options
author | Eric Anholt <anholt@freebsd.org> | 2004-06-16 09:44:00 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2004-06-16 09:44:00 +0000 |
commit | a490c1eec95ec111bdc3555d29b77192bf8caf90 (patch) | |
tree | 14e7b73fe148fc116b7f9fc0ba4136454e7a1b2a | |
parent | 5172fd205abbbe649205b21fc24f47df5cc5ac8a (diff) |
Merge DRI-trunk-20040613 changes in programs/Xserver/hw/xfree86/drivers,rel-0-6-1lg3d-rel-0-7-0lg3d-rel-0-6-2lg3d-baseXORG-6_8_2XORG-6_8_1_904XORG-6_8_1_903XORG-6_8_1_902XORG-6_8_1_901XORG-6_8_1XORG-6_8_0XORG-6_7_99_904XORG-6_7_99_903XORG-6_7_99_902XORG-6_7_99_901XORG-6_7_99_2XORG-6_7_99_1XORG-6_8-branch
with the following notes:
- Savage and Mach64 (= ati/ati*.[ch] changes) DRI not merged due to
insecurity.
- VIA driver converted to new drmContext and drmHandle names.
- Radeon driver merge conflicted in many places, and MergedFB at least
could probably use some checking at this point.
-rw-r--r-- | src/tdfx_dri.h | 2 | ||||
-rw-r--r-- | src/tdfx_driver.c | 83 |
2 files changed, 48 insertions, 37 deletions
diff --git a/src/tdfx_dri.h b/src/tdfx_dri.h index e7ad87d..98c6733 100644 --- a/src/tdfx_dri.h +++ b/src/tdfx_dri.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dri.h,v 1.5 2001/03/21 17:02:26 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dri.h,v 1.4 2001/03/03 22:41:34 tsi Exp $ */ #ifndef _TDFX_DRI_ #define _TDFX_DRI_ diff --git a/src/tdfx_driver.c b/src/tdfx_driver.c index 59950b8..968ce95 100644 --- a/src/tdfx_driver.c +++ b/src/tdfx_driver.c @@ -27,7 +27,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c,v 1.99 2003/08/23 16:09:20 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c,v 1.104tsi Exp $ */ /* * Authors: @@ -129,8 +129,8 @@ static Bool TDFXSaveScreen(ScreenPtr pScreen, int mode); static void TDFXFreeScreen(int scrnIndex, int flags); /* Check if a mode is valid on the hardware */ -static int TDFXValidMode(int scrnIndex, DisplayModePtr mode, Bool - verbose, int flags); +static ModeStatus TDFXValidMode(int scrnIndex, DisplayModePtr mode, + Bool verbose, int flags); static void TDFXBlockHandler(int, pointer, pointer, pointer); @@ -244,8 +244,6 @@ static const char *int10Symbols[] = { NULL }; -#ifdef XFree86LOADER - #ifdef XF86DRI static const char *drmSymbols[] = { "drmAddMap", @@ -272,6 +270,8 @@ static const char *driSymbols[] = { #endif +#ifdef XFree86LOADER + static MODULESETUPPROTO(tdfxSetup); static XF86ModuleVersionInfo tdfxVersRec = @@ -280,7 +280,7 @@ static XF86ModuleVersionInfo tdfxVersRec = MODULEVENDORSTRING, MODINFOSTRING1, MODINFOSTRING2, - XF86_VERSION_CURRENT, + XORG_VERSION_CURRENT, TDFX_MAJOR_VERSION, TDFX_MINOR_VERSION, TDFX_PATCHLEVEL, ABI_CLASS_VIDEODRV, ABI_VIDEODRV_VERSION, @@ -486,8 +486,8 @@ TDFXCountRam(ScrnInfoPtr pScrn) { /* Some information about the timing register (for later debugging) */ xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "DRAMINIT1 read 0x%x, programming 0x%x (not Banshee)\n", - pTDFX->readLong(pTDFX, DRAMINIT1), dramInit1); + "DRAMINIT1 read 0x%x, programming 0x%lx (not Banshee)\n", + pTDFX->readLong(pTDFX, DRAMINIT1), (unsigned long)dramInit1); /* * Here we don't whack the timing register on the Banshee boards as the @@ -514,7 +514,7 @@ TDFXCountRam(ScrnInfoPtr pScrn) { } else if ( (dramInit0_strap & SST_SGRAM_TYPE) == SST_SGRAM_TYPE_16MBIT) { partSize = 16; } else { - ErrorF("Invalid sgram type = 0x%x", + ErrorF("Invalid sgram type = 0x%lx", (dramInit0_strap & SST_SGRAM_TYPE) << SST_SGRAM_TYPE_SHIFT ); return 0; } @@ -526,8 +526,10 @@ TDFXCountRam(ScrnInfoPtr pScrn) { banks=((dramInit0_strap&BIT(30))==0) ? 2 : 4; vmemSize=nChips*partSize*banks; } - TDFXTRACEREG("dramInit0 = %x dramInit1 = %x\n", dramInit0_strap, dramInit1_strap); - TDFXTRACEREG("MemConfig %d chips %d size %d total\n", nChips, partSize, vmemSize); + TDFXTRACEREG("dramInit0 = %lx dramInit1 = %lx\n", + (unsigned long)dramInit0_strap, (unsigned long)dramInit1_strap); + TDFXTRACEREG("MemConfig %d chips %ld size %ld total\n", (int)nChips, + (unsigned long)partSize, (unsigned long)vmemSize); /* disable block writes for SDRAM @@ -599,8 +601,12 @@ static void TDFXInitChips(ScrnInfoPtr pScrn) { TDFXPtr pTDFX; - int i, v, cfgbits, initbits; - int mem0base, mem1base, mem0size, mem0bits, mem1size, mem1bits; + int i; +#if 0 + int v; +#endif + unsigned long cfgbits, initbits; + unsigned long mem0base, mem1base, mem0size, mem0bits, mem1size, mem1bits; pTDFX=TDFXPTR(pScrn); cfgbits=pciReadLong(pTDFX->PciTag[0], CFG_PCI_DECODE); @@ -631,8 +637,8 @@ TDFXInitChips(ScrnInfoPtr pScrn) for (i=0; i<pTDFX->numChips; i++) { initbits|=BIT(10); pciWriteLong(pTDFX->PciTag[i], CFG_INIT_ENABLE, initbits); - v=pciReadWord(pTDFX->PciTag[i], CFG_PCI_COMMAND); #if 0 + v=pciReadWord(pTDFX->PciTag[i], CFG_PCI_COMMAND); if (!i) pciWriteWord(pTDFX->PciTag[i], CFG_PCI_COMMAND, v|0x3); else @@ -889,7 +895,7 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) /* Multiple by two because tiled access requires more address space */ pTDFX->FbMapSize = pScrn->videoRam*1024*2; - xf86DrvMsg(pScrn->scrnIndex, from, "VideoRAM: %d kByte Mapping %d kByte\n", + xf86DrvMsg(pScrn->scrnIndex, from, "VideoRAM: %d kByte Mapping %ld kByte\n", pScrn->videoRam, pTDFX->FbMapSize/1024); /* Since we can do gamma correction, we call xf86SetGamma */ @@ -1093,7 +1099,14 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) pTDFX->writeLong(pTDFX, MISCINIT0, pTDFX->ModeReg.miscinit0); #endif - +#ifdef XF86DRI + /* Load the dri module if requested. */ + if (xf86ReturnOptValBool(pTDFX->Options, OPTION_DRI, FALSE)) { + if (xf86LoadSubModule(pScrn, "dri")) { + xf86LoaderReqSymLists(driSymbols, drmSymbols, NULL); + } + } +#endif return TRUE; } @@ -1610,8 +1623,8 @@ TDFXSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode) { TDFXPtr pTDFX; TDFXRegPtr tdfxReg; vgaRegPtr pVga; - int hbs, hbe, vbs, vbe, hse, wd; - int hd, hss, ht, vss, vt, vd, vse; + int hbs, hbe, vbs, vbe, hse; + int hd, hss, ht, vt, vd; TDFXTRACE("TDFXSetMode start\n"); @@ -1619,11 +1632,6 @@ TDFXSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode) { tdfxReg = &pTDFX->ModeReg; pVga = &VGAHWPTR(pScrn)->ModeReg; - if (pTDFX->cpp==4) - wd = pScrn->displayWidth>>1; - else - wd = pScrn->displayWidth>>(4-pTDFX->cpp); - /* Tell the board we're using a programmable clock */ pVga->MiscOutReg |= 0xC; @@ -1636,8 +1644,6 @@ TDFXSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode) { hbe = (mode->CrtcHBlankEnd>>3)-1; vd = mode->CrtcVDisplay-1; - vss = mode->CrtcVSyncStart; - vse = mode->CrtcVSyncEnd; vt = mode->CrtcVTotal-2; vbs = mode->CrtcVBlankStart-1; vbe = mode->CrtcVBlankEnd-1; @@ -2223,6 +2229,21 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { xf86DPMSInit(pScreen, TDFXDisplayPowerManagementSet, 0); + /* Initialize Xv support */ + TDFXInitVideo (pScreen); + + pScreen->SaveScreen = TDFXSaveScreen; + pTDFX->CloseScreen = pScreen->CloseScreen; + pScreen->CloseScreen = TDFXCloseScreen; + + pTDFX->BlockHandler = pScreen->BlockHandler; + pScreen->BlockHandler = TDFXBlockHandler; + + /* + * DRICloseScreen isn't called thru a wrapper but explicitely + * in of TDFXCloseScreen() before the rest is unwrapped + */ + #ifdef XF86DRI if (pTDFX->directRenderingEnabled) { /* Now that mi, fb, drm and others have done their thing, @@ -2237,16 +2258,6 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { } #endif - /* Initialize Xv support */ - TDFXInitVideo (pScreen); - - pScreen->SaveScreen = TDFXSaveScreen; - pTDFX->CloseScreen = pScreen->CloseScreen; - pScreen->CloseScreen = TDFXCloseScreen; - - pTDFX->BlockHandler = pScreen->BlockHandler; - pScreen->BlockHandler = TDFXBlockHandler; - if (serverGeneration == 1) xf86ShowUnusedOptions(pScrn->scrnIndex, pScrn->options); @@ -2389,7 +2400,7 @@ TDFXFreeScreen(int scrnIndex, int flags) { vgaHWFreeHWRec(xf86Screens[scrnIndex]); } -static int +static ModeStatus TDFXValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) { ScrnInfoPtr pScrn; TDFXPtr pTDFX; |