diff options
-rw-r--r-- | man/nv.man | 6 | ||||
-rw-r--r-- | src/nv_dac.c | 5 | ||||
-rw-r--r-- | src/nv_driver.c | 32 | ||||
-rw-r--r-- | src/nv_hw.c | 13 | ||||
-rw-r--r-- | src/nv_type.h | 4 | ||||
-rw-r--r-- | src/riva_driver.c | 5 |
6 files changed, 44 insertions, 21 deletions
@@ -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 71128fa..aa3b3ec 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -24,7 +24,7 @@ /* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen <jpaana@s2.org> */ -/* $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" @@ -167,6 +167,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" }, @@ -191,12 +192,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} @@ -1509,13 +1512,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 } @@ -1775,6 +1780,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_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 <jpaana@s2.org> */ -/* $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); |