From a13885d1155c944863c8c17f054105edde568330 Mon Sep 17 00:00:00 2001 From: Kaleb Keithley Date: Mon, 23 Feb 2004 21:35:39 +0000 Subject: merge most of XFree86 RC3 (4.3.99.903) from vendor branch. bug #214 --- man/nv.man | 6 +++--- src/nv_dac.c | 5 ++++- src/nv_driver.c | 34 +++++++++++++++++++++------------- src/nv_hw.c | 13 ++++++++++--- src/nv_setup.c | 4 ++-- src/nv_type.h | 4 +++- src/riva_driver.c | 5 ++++- 7 files changed, 47 insertions(+), 24 deletions(-) diff --git a/man/nv.man b/man/nv.man index 0747da1..ea46dbf 100644 --- a/man/nv.man +++ b/man/nv.man @@ -1,4 +1,4 @@ -.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv.man,v 1.22 2003/10/18 01:14:26 mvojkovi Exp $ +.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv.man,v 1.23 2004/01/10 22:31:53 mvojkovi Exp $ .\" shorthand for double quote that works everywhere. .ds q \N'34' .TH NV __drivermansuffix__ __vendorversion__ @@ -108,8 +108,8 @@ Default: off. Rotate the display clockwise or counterclockwise. This mode is unaccelerated. Default: no rotation. -Note: Option Rotate does not work unless the Resize and Rotate extension has -been turned off. +Note: The Resize and Rotate extension will be disabled if the Rotate option +is used. .TP .BI "Option \*qShadowFB\*q \*q" boolean \*q Enable or disable use of the shadow framebuffer layer. Default: off. diff --git a/src/nv_dac.c b/src/nv_dac.c index c1e093e..320bf98 100644 --- a/src/nv_dac.c +++ b/src/nv_dac.c @@ -37,7 +37,7 @@ |* *| \***************************************************************************/ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_dac.c,v 1.37 2003/09/08 20:00:27 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_dac.c,v 1.38 2004/01/06 22:47:06 mvojkovi Exp $ */ #include "nv_include.h" @@ -236,6 +236,9 @@ NVDACInit(ScrnInfoPtr pScrn, DisplayModePtr mode) } else nvReg->cursorConfig |= 0x02000000; + nvReg->timingH = 0; + nvReg->timingV = 0; + return (TRUE); } diff --git a/src/nv_driver.c b/src/nv_driver.c index 356db3d..b95c15b 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -1,4 +1,4 @@ -/* $XdotOrg: nv_driver.c /main/3 1996/10/28 05:13:37 kaleb $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.1.4.2 2003/12/20 00:28:27 kaleb Exp $ */ /* $XConsortium: nv_driver.c /main/3 1996/10/28 05:13:37 kaleb $ */ /* * Copyright 1996-1997 David J. McKay @@ -25,7 +25,7 @@ /* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.120 2003/12/11 00:12:34 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.123 2004/01/13 19:03:28 mvojkovi Exp $ */ #include "nv_include.h" @@ -168,6 +168,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE031D, "0x031D" }, { 0x10DE031E, "0x031E" }, { 0x10DE031F, "0x031F" }, + { 0x10DE0320, "GeForce FX 5200" }, { 0x10DE0321, "GeForce FX 5200 Ultra" }, { 0x10DE0322, "GeForce FX 5200" }, { 0x10DE0323, "GeForce FX 5200SE" }, @@ -192,12 +193,14 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0338, "Quadro FX 3000" }, { 0x10DE0341, "GeForce FX 5700 Ultra" }, { 0x10DE0342, "GeForce FX 5700" }, - { 0x10DE0343, "0x0343" }, - { 0x10DE0347, "0x0347" }, - { 0x10DE0348, "0x0348" }, + { 0x10DE0343, "GeForce FX 5700LE" }, + { 0x10DE0344, "GeForce FX 5700VE" }, + { 0x10DE0345, "0x0345" }, + { 0x10DE0347, "GeForce FX Go5700" }, + { 0x10DE0348, "GeForce FX Go5700" }, { 0x10DE0349, "0x0349" }, { 0x10DE034B, "0x034B" }, - { 0x10DE034C, "0x034C" }, + { 0x10DE034C, "Quadro FX Go1000" }, { 0x10DE034E, "Quadro FX 1100" }, { 0x10DE034F, "0x034F" }, {-1, NULL} @@ -1510,13 +1513,15 @@ static void NVBacklightEnable(NVPtr pNv, Bool on) (pNv->Chipset == 0x10DE0329)) { /* NV17,18,34 Apple iMac, iBook, PowerBook */ - CARD32 tmp; - tmp = pNv->PMC[0x10F0/4] & 0x7FFFFFFF; - pNv->PMC[0x10F0/4] = tmp; - tmp = pNv->PCRTC0[0x081C/4] & 0xFFFFFFFC; - if(on) - tmp |= 0x1; - pNv->PCRTC0[0x081C/4] = tmp; + CARD32 tmp_pmc, tmp_pcrt; + tmp_pmc = pNv->PMC[0x10F0/4] & 0x7FFFFFFF; + tmp_pcrt = pNv->PCRTC0[0x081C/4] & 0xFFFFFFFC; + if(on) { + tmp_pmc |= (1 << 31); + tmp_pcrt |= 0x1; + } + pNv->PMC[0x10F0/4] = tmp_pmc; + pNv->PCRTC0[0x081C/4] = tmp_pcrt; } #endif } @@ -1776,6 +1781,9 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) case 16: refreshArea = NVRefreshArea16; break; case 32: refreshArea = NVRefreshArea32; break; } + xf86DisableRandR(); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Driver rotation enabled, RandR disabled\n"); } ShadowFBInit(pScreen, refreshArea); diff --git a/src/nv_hw.c b/src/nv_hw.c index b5bb015..bc365b7 100644 --- a/src/nv_hw.c +++ b/src/nv_hw.c @@ -36,7 +36,7 @@ |* those rights set forth herein. *| |* *| \***************************************************************************/ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c,v 1.4 2003/11/03 05:11:25 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c,v 1.5 2004/01/06 22:47:07 mvojkovi Exp $ */ #include "nv_local.h" #include "compiler.h" @@ -1132,9 +1132,9 @@ void NVLoadStateExt ( } VGA_WR08(pNv->PCIO, 0x03D4, 0x53); - VGA_WR08(pNv->PCIO, 0x03D5, 0); + VGA_WR08(pNv->PCIO, 0x03D5, state->timingH); VGA_WR08(pNv->PCIO, 0x03D4, 0x54); - VGA_WR08(pNv->PCIO, 0x03D5, 0); + VGA_WR08(pNv->PCIO, 0x03D5, state->timingV); VGA_WR08(pNv->PCIO, 0x03D4, 0x21); VGA_WR08(pNv->PCIO, 0x03D5, 0xfa); } @@ -1243,6 +1243,13 @@ void NVUnloadStateExt if((pNv->Chipset & 0x0ff0) >= 0x0170) { state->dither = pNv->PRAMDAC[0x083C/4]; } + + if(pNv->FlatPanel) { + VGA_WR08(pNv->PCIO, 0x03D4, 0x53); + state->timingH = VGA_RD08(pNv->PCIO, 0x03D5); + VGA_WR08(pNv->PCIO, 0x03D4, 0x54); + state->timingV = VGA_RD08(pNv->PCIO, 0x03D5); + } } } diff --git a/src/nv_setup.c b/src/nv_setup.c index 8f84f8e..854146b 100644 --- a/src/nv_setup.c +++ b/src/nv_setup.c @@ -37,7 +37,7 @@ |* *| \***************************************************************************/ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v 1.39 2003/11/07 23:56:28 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v 1.40 2004/02/07 22:56:05 mvojkovi Exp $ */ #include "nv_include.h" @@ -292,7 +292,7 @@ static void nv10GetConfig (NVPtr pNv) } #endif - if((pNv->Chipset && 0xffff) == 0x01a0) { + if((pNv->Chipset & 0xffff) == 0x01a0) { int amt = pciReadLong(pciTag(0, 0, 1), 0x7C); pNv->RamAmountKBytes = (((amt >> 6) & 31) + 1) * 1024; } else if((pNv->Chipset & 0xffff) == 0x01f0) { diff --git a/src/nv_type.h b/src/nv_type.h index 5730cb5..1d62f54 100644 --- a/src/nv_type.h +++ b/src/nv_type.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h,v 1.44 2003/09/08 20:00:27 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h,v 1.45 2004/01/06 22:47:07 mvojkovi Exp $ */ #ifndef __NV_STRUCT_H__ #define __NV_STRUCT_H__ @@ -63,6 +63,8 @@ typedef struct _riva_hw_state U032 cursor0; U032 cursor1; U032 cursor2; + U032 timingH; + U032 timingV; } RIVA_HW_STATE, *NVRegPtr; diff --git a/src/riva_driver.c b/src/riva_driver.c index 1b4ca07..0b8a06e 100644 --- a/src/riva_driver.c +++ b/src/riva_driver.c @@ -23,7 +23,7 @@ /* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_driver.c,v 1.5 2003/11/03 05:11:26 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_driver.c,v 1.6 2004/01/10 22:31:53 mvojkovi Exp $ */ #include "riva_include.h" @@ -1334,6 +1334,9 @@ RivaScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) case 16: refreshArea = RivaRefreshArea16; break; case 32: refreshArea = RivaRefreshArea32; break; } + xf86DisableRandR(); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Driver rotation enabled, RandR disabled\n"); } ShadowFBInit(pScreen, refreshArea); -- cgit v1.2.3