Bugzilla – Attachment 50076 Details for
Bug 113203
Xorg freezes during boot with nv driver
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
IDP Log In
|
Forgot Password
[patch]
Patch from CVS mentioned above
diff.nv (text/plain), 7.31 KB, created by
Stefan Dirsch
on 2005-09-15 20:20:02 UTC
(
hide
)
Description:
Patch from CVS mentioned above
Filename:
MIME Type:
Creator:
Stefan Dirsch
Created:
2005-09-15 20:20:02 UTC
Size:
7.31 KB
patch
obsolete
>Index: nv_driver.c >=================================================================== >RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v >retrieving revision 1.136 >retrieving revision 1.137 >diff -u -r1.136 -r1.137 >--- nv_driver.c 28 Aug 2005 20:04:50 -0000 1.136 >+++ nv_driver.c 14 Sep 2005 02:28:03 -0000 1.137 >@@ -82,6 +82,8 @@ > 0 > }; > >+/* Known cards as of 2005/08/31 */ >+ > static SymTabRec NVKnownChipsets[] = > { > { 0x12D20018, "RIVA 128" }, >@@ -200,7 +202,7 @@ > #else > { 0x10DE0329, "0x0329" }, > #endif >- { 0x10DE032A, "Quadro NVS 280 PCI" }, >+ { 0x10DE032A, "Quadro NVS 55/280 PCI" }, > { 0x10DE032B, "Quadro FX 500/600 PCI" }, > { 0x10DE032C, "GeForce FX Go53xx Series" }, > { 0x10DE032D, "GeForce FX Go5100" }, >@@ -233,12 +235,14 @@ > { 0x10DE0043, "0x0043" }, > { 0x10DE0045, "GeForce 6800 GT" }, > { 0x10DE0046, "GeForce 6800 GT" }, >+ { 0x10DE0048, "GeForce 6800 XT" }, > { 0x10DE0049, "0x0049" }, > { 0x10DE004E, "Quadro FX 4000" }, > > { 0x10DE00C0, "0x00C0" }, > { 0x10DE00C1, "GeForce 6800" }, > { 0x10DE00C2, "GeForce 6800 LE" }, >+ { 0x10DE00C3, "GeForce 6800 XT" }, > { 0x10DE00C8, "GeForce Go 6800" }, > { 0x10DE00C9, "GeForce Go 6800 Ultra" }, > { 0x10DE00CC, "Quadro FX Go1400" }, >@@ -261,16 +265,16 @@ > { 0x10DE014E, "Quadro FX 540" }, > { 0x10DE014F, "GeForce 6200" }, > >- { 0x10DE0160, "0x0160" }, >+ { 0x10DE0160, "GeForce 6500" }, > { 0x10DE0161, "GeForce 6200 TurboCache(TM)" }, > { 0x10DE0162, "GeForce 6200SE TurboCache(TM)" }, >- { 0x10DE0163, "0x0163" }, >+ { 0x10DE0163, "GeForce 6200 LE" }, > { 0x10DE0164, "GeForce Go 6200" }, > { 0x10DE0165, "Quadro NVS 285" }, > { 0x10DE0166, "GeForce Go 6400" }, > { 0x10DE0167, "GeForce Go 6200" }, > { 0x10DE0168, "GeForce Go 6400" }, >- { 0x10DE0169, "0x0169" }, >+ { 0x10DE0169, "GeForce 6250" }, > { 0x10DE016B, "0x016B" }, > { 0x10DE016C, "0x016C" }, > { 0x10DE016D, "0x016D" }, >@@ -288,7 +292,7 @@ > > { 0x10DE0090, "0x0090" }, > { 0x10DE0091, "GeForce 7800 GTX" }, >- { 0x10DE0092, "0x0092" }, >+ { 0x10DE0092, "GeForce 7800 GT" }, > { 0x10DE0093, "0x0093" }, > { 0x10DE0094, "0x0094" }, > { 0x10DE0098, "0x0098" }, >@@ -694,6 +698,8 @@ > case 0x0210: > case 0x0220: > case 0x0230: >+ case 0x0290: >+ case 0x0390: > NVChipsets[numUsed].token = pciid; > NVChipsets[numUsed].name = "Unknown NVIDIA chip"; > NVPciChipsets[numUsed].numChipset = pciid; >@@ -1384,6 +1390,8 @@ > case 0x0210: > case 0x0220: > case 0x0230: >+ case 0x0290: >+ case 0x0390: > pNv->Architecture = NV_ARCH_40; > break; > default: >@@ -1420,9 +1428,13 @@ > } > } > >- pNv->FbUsableSize = pNv->FbMapSize - (128 * 1024); >+ if(pNv->Architecture >= NV_ARCH_40) >+ pNv->FbUsableSize = pNv->FbMapSize - (560 * 1024); >+ else >+ pNv->FbUsableSize = pNv->FbMapSize - (128 * 1024); > pNv->ScratchBufferSize = (pNv->Architecture < NV_ARCH_10) ? 8192 : 16384; > pNv->ScratchBufferStart = pNv->FbUsableSize - pNv->ScratchBufferSize; >+ pNv->CursorStart = pNv->FbUsableSize + (32 * 1024); > > /* > * Setup the ClockRanges, which describe what clock ranges are available, >Index: nv_hw.c >=================================================================== >RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c,v >retrieving revision 1.15 >retrieving revision 1.16 >diff -u -r1.15 -r1.16 >--- nv_hw.c 3 Feb 2005 23:16:50 -0000 1.15 >+++ nv_hw.c 14 Sep 2005 02:28:03 -0000 1.16 >@@ -928,16 +928,28 @@ > > if(pNv->Architecture == NV_ARCH_04) { > pNv->PFB[0x0200/4] = state->config; >- } else if ((pNv->Chipset & 0xfff0) == 0x0090) { >- for(i = 0; i < 15; i++) { >- pNv->PFB[(0x0600 + (i * 0x10))/4] = 0; >- pNv->PFB[(0x0604 + (i * 0x10))/4] = pNv->FbMapSize - 1; >- } >- } else { >+ } else >+ if((pNv->Architecture < NV_ARCH_40) || >+ ((pNv->Chipset & 0xfff0) == 0x0040)) >+ { > for(i = 0; i < 8; i++) { > pNv->PFB[(0x0240 + (i * 0x10))/4] = 0; > pNv->PFB[(0x0244 + (i * 0x10))/4] = pNv->FbMapSize - 1; > } >+ } else { >+ int regions = 12; >+ >+ if(((pNv->Chipset & 0xfff0) == 0x0090) || >+ ((pNv->Chipset & 0xfff0) == 0x01D0) || >+ ((pNv->Chipset & 0xfff0) == 0x0290)) >+ { >+ regions = 15; >+ } >+ >+ for(i = 0; i < regions; i++) { >+ pNv->PFB[(0x0600 + (i * 0x10))/4] = 0; >+ pNv->PFB[(0x0604 + (i * 0x10))/4] = pNv->FbMapSize - 1; >+ } > } > > if(pNv->Architecture >= NV_ARCH_40) { >@@ -1172,6 +1184,7 @@ > pNv->PFB[0x033C/4] &= 0xffff7fff; > break; > case 0x00C0: >+ case 0x0120: > pNv->PGRAPH[0x0828/4] = 0x007596ff; > pNv->PGRAPH[0x082C/4] = 0x00000108; > break; >@@ -1196,6 +1209,7 @@ > pNv->PRAMDAC[0x0608/4] |= 0x00100000; > break; > case 0x0090: >+ case 0x0290: > pNv->PRAMDAC[0x0608/4] |= 0x00100000; > pNv->PGRAPH[0x0828/4] = 0x07830610; > pNv->PGRAPH[0x082C/4] = 0x0000016A; >@@ -1243,12 +1257,22 @@ > } > } > >- if((pNv->Chipset & 0xfff0) == 0x0090) { >- for(i = 0; i < 60; i++) >- pNv->PGRAPH[(0x0D00/4) + i] = pNv->PFB[(0x0600/4) + i]; >- } else { >+ if((pNv->Architecture < NV_ARCH_40) || >+ ((pNv->Chipset & 0xfff0) == 0x0040)) >+ { > for(i = 0; i < 32; i++) > pNv->PGRAPH[(0x0900/4) + i] = pNv->PFB[(0x0240/4) + i]; >+ } else { >+ if(((pNv->Chipset & 0xfff0) == 0x0090) || >+ ((pNv->Chipset & 0xfff0) == 0x01D0) || >+ ((pNv->Chipset & 0xfff0) == 0x0290)) >+ { >+ for(i = 0; i < 60; i++) >+ pNv->PGRAPH[(0x0D00/4) + i] = pNv->PFB[(0x0600/4) + i]; >+ } else { >+ for(i = 0; i < 48; i++) >+ pNv->PGRAPH[(0x0900/4) + i] = pNv->PFB[(0x0600/4) + i]; >+ } > } > > if(pNv->Architecture >= NV_ARCH_40) { >@@ -1263,7 +1287,10 @@ > pNv->PGRAPH[0x0864/4] = pNv->FbMapSize - 1; > pNv->PGRAPH[0x0868/4] = pNv->FbMapSize - 1; > } else { >- if((pNv->Chipset & 0xfff0) == 0x0090) { >+ if(((pNv->Chipset & 0xfff0) == 0x0090) || >+ ((pNv->Chipset & 0xfff0) == 0x01D0) || >+ ((pNv->Chipset & 0xfff0) == 0x0290)) >+ { > pNv->PGRAPH[0x0DF0/4] = pNv->PFB[0x0200/4]; > pNv->PGRAPH[0x0DF4/4] = pNv->PFB[0x0204/4]; > } else { >Index: nv_setup.c >=================================================================== >RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v >retrieving revision 1.47 >retrieving revision 1.48 >diff -u -r1.47 -r1.48 >--- nv_setup.c 3 Aug 2005 17:39:31 -0000 1.47 >+++ nv_setup.c 14 Sep 2005 02:28:03 -0000 1.48 >@@ -313,7 +313,6 @@ > pNv->CrystalFreqKHz = 27000; > } > >- pNv->CursorStart = (pNv->RamAmountKBytes - 96) * 1024; > pNv->CURSOR = NULL; /* can't set this here */ > pNv->MinVClockFreqKHz = 12000; > pNv->MaxVClockFreqKHz = pNv->twoStagePLL ? 400000 : 350000;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 113203
:
47720
|
47721
|
47730
| 50076 |
50764
|
51051
|
51219