From 80ac36ec4fbbd9a4aae1bde01fe6ebc1088fa8cb Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Sat, 9 Jul 2005 16:51:58 +0000 Subject: Bug #3740 Patch #3058 08-Jul-2005 nv driver updates from Mark Vojkovich: Change some console restore code for NV11. Hopefully, we can more reliably restore the console for desktop systems using DVI. This may correct a recent regression on NV11. Also, new PCI IDs. Add new nVidia PCI ids to match nv_driver.c changes. --- man/nv.man | 10 ++++++++-- src/nv_dac.c | 8 +++++--- src/nv_driver.c | 32 ++++++++++++++++++++++---------- src/nv_setup.c | 8 +++++++- 4 files changed, 42 insertions(+), 16 deletions(-) diff --git a/man/nv.man b/man/nv.man index 95f5804..b74c739 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.26 2004/10/15 20:32:21 mvojkovi Exp $ +.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv.man,v 1.27 2005/07/09 00:52:59 mvojkovi Exp $ .\" shorthand for double quote that works everywhere. .ds q \N'34' .TH NV __drivermansuffix__ __vendorversion__ @@ -51,7 +51,13 @@ NV1A, NV1F NV17, NV18, NV25, NV28 .TP 22 .B GeForce FX, QUADRO FX -NV30, NV31, NV34, NV35, NV36, NV37, NV38, NV40, NV41, NV43, NV44, NV45 +NV30, NV31, NV34, NV35, NV36, NV37, NV38 +.TP 22 +.B GeForce 6XXX +NV40, NV41, NV43, NV44, NV45 +.TP 22 +.B GeForce 7XXX +G70 .SH CONFIGURATION DETAILS Please refer to __xconfigfile__(__filemansuffix__) for general configuration details. This section only covers configuration details specific to this diff --git a/src/nv_dac.c b/src/nv_dac.c index f62db58..463fde5 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.44 2004/12/09 00:21:04 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_dac.c,v 1.45 2005/07/09 00:53:00 mvojkovi Exp $ */ #include "nv_include.h" @@ -92,7 +92,9 @@ NVDACInit(ScrnInfoPtr pScrn, DisplayModePtr mode) vgaRegPtr pVga; /* - * This will initialize all of the generic VGA registers. + * Initialize all of the generic VGA registers. Don't bother with + * VGA_FIX_SYNC_PULSES, given the relevant CRTC settings are overridden + * below. Ditto for the KGA workaround. */ if (!vgaHWInit(pScrn, mode)) return(FALSE); @@ -310,7 +312,7 @@ NVDACSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, NVRegPtr nvReg, /* can't read this reliably on NV11 */ if((pNv->Chipset & 0x0ff0) == 0x0110) - nvReg->crtcOwner = ((pNv->Chipset & 0x0fff) == 0x0112) ? 3 : 0; + nvReg->crtcOwner = pNv->CRTCnumber; } #define DEPTH_SHIFT(val, w) ((val << (8 - w)) | (val >> ((w << 1) - 8))) diff --git a/src/nv_driver.c b/src/nv_driver.c index 9f5d198..22beb74 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -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.134 2005/04/24 18:57:35 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.135 2005/07/09 00:53:00 mvojkovi Exp $ */ #include "nv_include.h" @@ -233,6 +233,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0042, "GeForce 6800 LE" }, { 0x10DE0043, "0x0043" }, { 0x10DE0045, "GeForce 6800 GT" }, + { 0x10DE0046, "GeForce 6800 GT" }, { 0x10DE0049, "0x0049" }, { 0x10DE004E, "Quadro FX 4000" }, @@ -242,19 +243,19 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE00C8, "GeForce Go 6800" }, { 0x10DE00C9, "GeForce Go 6800 Ultra" }, { 0x10DE00CC, "Quadro FX Go1400" }, - { 0x10DE00CD, "0x00CD" }, + { 0x10DE00CD, "Quadro FX 3450/4000 SDI" }, { 0x10DE00CE, "Quadro FX 1400" }, { 0x10DE0140, "GeForce 6600 GT" }, { 0x10DE0141, "GeForce 6600" }, - { 0x10DE0142, "0x0142" }, + { 0x10DE0142, "GeForce 6600 LE" }, { 0x10DE0143, "0x0143" }, { 0x10DE0144, "GeForce Go 6600" }, { 0x10DE0145, "GeForce 6610 XL" }, { 0x10DE0146, "GeForce Go 6600 TE/6200 TE" }, - { 0x10DE0147, "0x0147" }, + { 0x10DE0147, "GeForce 6700 XL" }, { 0x10DE0148, "GeForce Go 6600" }, - { 0x10DE0149, "0x0149" }, + { 0x10DE0149, "GeForce Go 6600 GT" }, { 0x10DE014B, "0x014B" }, { 0x10DE014C, "0x014C" }, { 0x10DE014D, "0x014D" }, @@ -263,13 +264,13 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0160, "0x0160" }, { 0x10DE0161, "GeForce 6200 TurboCache(TM)" }, - { 0x10DE0162, "0x0162" }, + { 0x10DE0162, "GeForce 6200SE TurboCache(TM)" }, { 0x10DE0163, "0x0163" }, { 0x10DE0164, "GeForce Go 6200" }, - { 0x10DE0165, "0x0163" }, - { 0x10DE0166, "GeForce Go 6250" }, + { 0x10DE0165, "Quadro NVS 285" }, + { 0x10DE0166, "GeForce Go 6400" }, { 0x10DE0167, "GeForce Go 6200" }, - { 0x10DE0168, "GeForce Go 6250" }, + { 0x10DE0168, "GeForce Go 6400" }, { 0x10DE0169, "0x0169" }, { 0x10DE016B, "0x016B" }, { 0x10DE016C, "0x016C" }, @@ -282,10 +283,21 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0215, "GeForce 6800 GT" }, { 0x10DE0220, "0x0220" }, - { 0x10DE0221, "0x0221" }, + { 0x10DE0221, "GeForce 6200" }, { 0x10DE0222, "0x0222" }, { 0x10DE0228, "0x0228" }, + { 0x10DE0090, "0x0090" }, + { 0x10DE0091, "GeForce 7800 GTX" }, + { 0x10DE0092, "0x0092" }, + { 0x10DE0093, "0x0093" }, + { 0x10DE0094, "0x0094" }, + { 0x10DE0098, "0x0098" }, + { 0x10DE0099, "GeForce Go 7800 GTX" }, + { 0x10DE009C, "0x009C" }, + { 0x10DE009D, "Quadro FX 4500" }, + { 0x10DE009E, "0x009E" }, + {-1, NULL} }; diff --git a/src/nv_setup.c b/src/nv_setup.c index f377f14..94524af 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.45 2005/04/16 23:57:26 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v 1.46 2005/07/09 00:53:00 mvojkovi Exp $ */ #include "nv_include.h" @@ -408,6 +408,7 @@ NVCommonSetup(ScrnInfoPtr pScrn) case 0x0186: case 0x0187: case 0x018D: + case 0x0228: case 0x0286: case 0x028C: case 0x0316: @@ -431,11 +432,16 @@ NVCommonSetup(ScrnInfoPtr pScrn) case 0x034C: case 0x0160: case 0x0166: + case 0x0169: + case 0x016B: + case 0x016C: + case 0x016D: case 0x00C8: case 0x00CC: case 0x0144: case 0x0146: case 0x0148: + case 0x0099: mobile = TRUE; break; default: -- cgit v1.2.1