diff options
author | Mark Vojkovich <markv@xfree86.org> | 2006-06-29 18:41:44 -0700 |
---|---|---|
committer | Aaron Plattner <aplattner@nvidia.com> | 2006-06-29 18:41:44 -0700 |
commit | 6265b77dc8878e36abd76b73e209a2d76d70ba22 (patch) | |
tree | 4dd9882775e9dfef3fa144fc339af6bfc046d7e1 /src | |
parent | 5114639dff73c22845451acffed94f1da284a7df (diff) |
New chip support and new PCI IDs.
Diffstat (limited to 'src')
-rw-r--r-- | src/nv_driver.c | 33 | ||||
-rw-r--r-- | src/nv_hw.c | 15 |
2 files changed, 39 insertions, 9 deletions
diff --git a/src/nv_driver.c b/src/nv_driver.c index cc36f38..f094e6b 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -29,7 +29,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.142 2006/01/23 18:35:53 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.144 2006/06/16 00:19:32 mvojkovi Exp $ */ #include "nv_include.h" @@ -91,7 +91,7 @@ _X_EXPORT DriverRec NV = { 0 }; -/* Known cards as of 2006/04/20 */ +/* Known cards as of 2006/06/16 */ static SymTabRec NVKnownChipsets[] = { @@ -228,6 +228,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0041, "GeForce 6800" }, { 0x10DE0042, "GeForce 6800 LE" }, { 0x10DE0043, "GeForce 6800 XE" }, + { 0x10DE0044, "GeForce 6800 XT" }, { 0x10DE0045, "GeForce 6800 GT" }, { 0x10DE0046, "GeForce 6800 GT" }, { 0x10DE0047, "GeForce 6800 GS" }, @@ -255,6 +256,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0148, "GeForce Go 6600" }, { 0x10DE0149, "GeForce Go 6600 GT" }, { 0x10DE014C, "Quadro FX 550" }, + { 0x10DE014D, "Quadro FX 550" }, { 0x10DE014E, "Quadro FX 540" }, { 0x10DE014F, "GeForce 6200" }, @@ -275,6 +277,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0218, "GeForce 6800 XT" }, { 0x10DE0221, "GeForce 6200" }, + { 0x10DE0222, "GeForce 6200 A-LE" }, { 0x10DE0090, "GeForce 7800 GTX" }, { 0x10DE0091, "GeForce 7800 GTX" }, @@ -286,21 +289,34 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE009D, "Quadro FX 4500" }, { 0x10DE01D1, "GeForce 7300 LE" }, + { 0x10DE01D3, "GeForce 7300 SE" }, { 0x10DE01D6, "GeForce Go 7200" }, { 0x10DE01D7, "GeForce Go 7300" }, { 0x10DE01D8, "GeForce Go 7400" }, + { 0x10DE01D9, "GeForce Go 7400 GS" }, { 0x10DE01DA, "Quadro NVS 110M" }, { 0x10DE01DB, "Quadro NVS 120M" }, { 0x10DE01DC, "Quadro FX 350M" }, + { 0x10DE01DD, "GeForce 7500 LE" }, { 0x10DE01DE, "Quadro FX 350" }, { 0x10DE01DF, "GeForce 7300 GS" }, + { 0x10DE0391, "GeForce 7600 GT" }, + { 0x10DE0392, "GeForce 7600 GS" }, + { 0x10DE0393, "GeForce 7300 GT" }, + { 0x10DE0394, "GeForce 7600 LE" }, + { 0x10DE0395, "GeForce 7300 GT" }, + { 0x10DE0397, "GeForce Go 7700" }, { 0x10DE0398, "GeForce Go 7600" }, { 0x10DE0399, "GeForce Go 7600 GT"}, { 0x10DE039A, "Quadro NVS 300M" }, + { 0x10DE039B, "GeForce Go 7900 SE" }, { 0x10DE039C, "Quadro FX 550M" }, { 0x10DE039E, "Quadro FX 560" }, + { 0x10DE0290, "GeForce 7900 GTX" }, + { 0x10DE0291, "GeForce 7900 GT" }, + { 0x10DE0292, "GeForce 7900 GS" }, { 0x10DE0298, "GeForce Go 7900 GS" }, { 0x10DE0299, "GeForce Go 7900 GTX" }, { 0x10DE029A, "Quadro FX 2500M" }, @@ -308,6 +324,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE029C, "Quadro FX 5500" }, { 0x10DE029D, "Quadro FX 3500" }, { 0x10DE029E, "Quadro FX 1500" }, + { 0x10DE029F, "Quadro FX 4500 X2" }, { 0x10DE0240, "GeForce 6150" }, { 0x10DE0241, "GeForce 6150 LE" }, @@ -672,8 +689,11 @@ NVProbe(DriverPtr drv, int flags) int pciid = ((*ppPci)->vendor << 16) | (*ppPci)->chipType; int token = pciid; - if((token & 0xfff0) == 0x00F0) + if(((token & 0xfff0) == 0x00F0) || + ((token & 0xfff0) == 0x02E0)) + { token = NVGetPCIXpressChip(*ppPci); + } while(nvchips->name) { if(token == nvchips->token) @@ -713,6 +733,7 @@ NVProbe(DriverPtr drv, int flags) case 0x0240: case 0x0290: case 0x0390: + case 0x03D0: NVChipsets[numUsed].token = pciid; NVChipsets[numUsed].name = "Unknown NVIDIA chip"; NVPciChipsets[numUsed].numChipset = pciid; @@ -1069,8 +1090,11 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) from = X_PROBED; pNv->Chipset = (pNv->PciInfo->vendor << 16) | pNv->PciInfo->chipType; - if((pNv->Chipset & 0xfff0) == 0x00F0) + if(((pNv->Chipset & 0xfff0) == 0x00F0) || + ((pNv->Chipset & 0xfff0) == 0x02E0)) + { pNv->Chipset = NVGetPCIXpressChip(pNv->PciInfo); + } pScrn->chipset = (char *)xf86TokenToString(NVKnownChipsets, pNv->Chipset); @@ -1429,6 +1453,7 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) case 0x0290: /* GeForce 7900 */ case 0x0390: /* GeForce 7600 */ case 0x0240: /* GeForce 6100 */ + case 0x03D0: pNv->Architecture = NV_ARCH_40; break; default: diff --git a/src/nv_hw.c b/src/nv_hw.c index dd4a8f8..ab703f1 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.20 2006/01/21 01:17:59 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c,v 1.21 2006/06/16 00:19:33 mvojkovi Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -882,8 +882,10 @@ void NVCalcStateExt ( case NV_ARCH_20: case NV_ARCH_30: default: - if((pNv->Chipset & 0xfff0) == 0x0240) { - state->arbitration0 = 256; + if(((pNv->Chipset & 0xfff0) == 0x0240) || + ((pNv->Chipset & 0xfff0) == 0x03D0)) + { + state->arbitration0 = 128; state->arbitration1 = 0x0480; } else if(((pNv->Chipset & 0xffff) == 0x01A0) || @@ -957,7 +959,8 @@ void NVLoadStateExt ( if(((pNv->Chipset & 0xfff0) == 0x0090) || ((pNv->Chipset & 0xfff0) == 0x01D0) || ((pNv->Chipset & 0xfff0) == 0x0290) || - ((pNv->Chipset & 0xfff0) == 0x0390)) + ((pNv->Chipset & 0xfff0) == 0x0390) || + ((pNv->Chipset & 0xfff0) == 0x03D0)) { regions = 15; } @@ -1213,6 +1216,7 @@ void NVLoadStateExt ( case 0x0160: case 0x01D0: case 0x0240: + case 0x03D0: pNv->PMC[0x1700/4] = pNv->PFB[0x020C/4]; pNv->PMC[0x1704/4] = 0; pNv->PMC[0x1708/4] = 0; @@ -1291,7 +1295,8 @@ void NVLoadStateExt ( if(((pNv->Chipset & 0xfff0) == 0x0090) || ((pNv->Chipset & 0xfff0) == 0x01D0) || ((pNv->Chipset & 0xfff0) == 0x0290) || - ((pNv->Chipset & 0xfff0) == 0x0390)) + ((pNv->Chipset & 0xfff0) == 0x0390) || + ((pNv->Chipset & 0xfff0) == 0x03D0)) { for(i = 0; i < 60; i++) { pNv->PGRAPH[(0x0D00/4) + i] = pNv->PFB[(0x0600/4) + i]; |