[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rpms/xorg-x11/devel xorg-x11-6.8.2-nv-driver-CVSHEAD-6.8.99.13.patch, NONE, 1.1 xorg-x11.spec, 1.209, 1.210



Author: mharris

Update of /cvs/dist/rpms/xorg-x11/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv4940

Modified Files:
	xorg-x11.spec 
Added Files:
	xorg-x11-6.8.2-nv-driver-CVSHEAD-6.8.99.13.patch 
Log Message:
- Added xorg-x11-6.8.2-nv-driver-CVSHEAD-6.8.99.13.patch backport of CVS head
  nv driver to track the latest bug fixes and hardware support.  Hopefully
  this will also fix critical bug (#157715) also.



xorg-x11-6.8.2-nv-driver-CVSHEAD-6.8.99.13.patch:
 nv_driver.c |   85 ++++++++++++++++++++++++++++++++++++++++++++++++------------
 nv_hw.c     |   56 +++++++++++++++++++++++++--------------
 nv_setup.c  |    9 ++++++
 nv_type.h   |    1 
 4 files changed, 115 insertions(+), 36 deletions(-)

--- NEW FILE xorg-x11-6.8.2-nv-driver-CVSHEAD-6.8.99.13.patch ---
Patch by Mike A. Harris <mharris redhat com> as a minimalistic backport
of the current CVS head "nv" driver to 6.8.2.  I removed all changes that
appeared to be related specifically to the modularization effort, to
minimize risks.  The remaining patch is quite clean and straightforward.
I left the initial whitespace changes to driver name maps, to facilitate
easier future driver updates from CVS head.

This is also a possible fix for the following bug, but that conclusion
wont be reached until we get confirmation from users who experience
this issue:

	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=157715

--- xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:1.5.2.2	Wed Dec 15 17:42:35 2004
+++ xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c	Wed Jun 29 08:56:23 2005
@@ -86,25 +86,33 @@
 static SymTabRec NVKnownChipsets[] =
 {
   { 0x12D20018, "RIVA 128" },
+
   { 0x10DE0020, "RIVA TNT" },
+
   { 0x10DE0028, "RIVA TNT2" },
   { 0x10DE002A, "Unknown TNT2" },
   { 0x10DE002C, "Vanta" },
   { 0x10DE0029, "RIVA TNT2 Ultra" },
   { 0x10DE002D, "RIVA TNT2 Model 64" },
+
   { 0x10DE00A0, "Aladdin TNT2" },
+
   { 0x10DE0100, "GeForce 256" },
   { 0x10DE0101, "GeForce DDR" },
   { 0x10DE0103, "Quadro" },
+
   { 0x10DE0110, "GeForce2 MX/MX 400" },
   { 0x10DE0111, "GeForce2 MX 100/200" },
   { 0x10DE0112, "GeForce2 Go" },
   { 0x10DE0113, "Quadro2 MXR/EX/Go" },
+
   { 0x10DE01A0, "GeForce2 Integrated GPU" },
+
   { 0x10DE0150, "GeForce2 GTS" },
   { 0x10DE0151, "GeForce2 Ti" },
   { 0x10DE0152, "GeForce2 Ultra" },
   { 0x10DE0153, "Quadro2 Pro" },
+
   { 0x10DE0170, "GeForce4 MX 460" },
   { 0x10DE0171, "GeForce4 MX 440" },
   { 0x10DE0172, "GeForce4 MX 420" },
@@ -122,6 +130,7 @@
   { 0x10DE017A, "Quadro4 NVS" },
   { 0x10DE017C, "Quadro4 500 GoGL" },
   { 0x10DE017D, "GeForce4 410 Go 16M" },
+
   { 0x10DE0181, "GeForce4 MX 440 with AGP8X" },
   { 0x10DE0182, "GeForce4 MX 440SE with AGP8X" },
   { 0x10DE0183, "GeForce4 MX 420 with AGP8X" },
@@ -136,11 +145,14 @@
   { 0x10DE018B, "Quadro4 380 XGL" },
   { 0x10DE018C, "Quadro NVS 50 PCI" },
   { 0x10DE018D, "GeForce4 448 Go" },
+
   { 0x10DE01F0, "GeForce4 MX Integrated GPU" },
+
   { 0x10DE0200, "GeForce3" },
   { 0x10DE0201, "GeForce3 Ti 200" },
   { 0x10DE0202, "GeForce3 Ti 500" },
   { 0x10DE0203, "Quadro DCC" },
+
   { 0x10DE0250, "GeForce4 Ti 4600" },
   { 0x10DE0251, "GeForce4 Ti 4400" },
   { 0x10DE0252, "0x0252" },
@@ -148,6 +160,7 @@
   { 0x10DE0258, "Quadro4 900 XGL" },
   { 0x10DE0259, "Quadro4 750 XGL" },
   { 0x10DE025B, "Quadro4 700 XGL" },
+
   { 0x10DE0280, "GeForce4 Ti 4800" },
   { 0x10DE0281, "GeForce4 Ti 4200 with AGP8X" },
   { 0x10DE0282, "GeForce4 Ti 4800 SE" },
@@ -155,10 +168,12 @@
   { 0x10DE028C, "Quadro4 700 GoGL" },
   { 0x10DE0288, "Quadro4 980 XGL" },
   { 0x10DE0289, "Quadro4 780 XGL" },
+
   { 0x10DE0301, "GeForce FX 5800 Ultra" },
   { 0x10DE0302, "GeForce FX 5800" },
   { 0x10DE0308, "Quadro FX 2000" },
   { 0x10DE0309, "Quadro FX 1000" },
+
   { 0x10DE0311, "GeForce FX 5600 Ultra" },
   { 0x10DE0312, "GeForce FX 5600" },
   { 0x10DE0313, "0x0313"},
@@ -171,6 +186,7 @@
   { 0x10DE031D, "0x031D" },
   { 0x10DE031E, "0x031E" },
   { 0x10DE031F, "0x031F" },
+
   { 0x10DE0320, "GeForce FX 5200" },
   { 0x10DE0321, "GeForce FX 5200 Ultra" },
   { 0x10DE0322, "GeForce FX 5200" },
@@ -190,6 +206,7 @@
   { 0x10DE032C, "GeForce FX Go53xx Series" },
   { 0x10DE032D, "GeForce FX Go5100" },
   { 0x10DE032F, "0x032F" },
+
   { 0x10DE0330, "GeForce FX 5900 Ultra" },
   { 0x10DE0331, "GeForce FX 5900" },
   { 0x10DE0332, "GeForce FX 5900XT" },
@@ -197,6 +214,7 @@
   { 0x10DE033F, "Quadro FX 700" },
   { 0x10DE0334, "GeForce FX 5900ZT" },
   { 0x10DE0338, "Quadro FX 3000" },
+
   { 0x10DE0341, "GeForce FX 5700 Ultra" },
   { 0x10DE0342, "GeForce FX 5700" },
   { 0x10DE0343, "GeForce FX 5700LE" },
@@ -209,6 +227,7 @@
   { 0x10DE034C, "Quadro FX Go1000" },
   { 0x10DE034E, "Quadro FX 1100" },
   { 0x10DE034F, "0x034F" },
+
   { 0x10DE0040, "GeForce 6800 Ultra" },
   { 0x10DE0041, "GeForce 6800" },
   { 0x10DE0042, "GeForce 6800 LE" },
@@ -216,14 +235,16 @@
   { 0x10DE0045, "GeForce 6800 GT" },
   { 0x10DE0049, "0x0049" },
   { 0x10DE004E, "Quadro FX 4000" },
-  { 0x10DE004D, "Quadro FX 4400" },
+
   { 0x10DE00C0, "0x00C0" },
-  { 0x10DE00C1, "0x00C1" },
+  { 0x10DE00C1, "GeForce 6800" },
   { 0x10DE00C2, "GeForce 6800 LE" },
-  { 0x10DE00C8, "0x00C8" },
-  { 0x10DE00C9, "0x00C9" },
-  { 0x10DE00CC, "0x00CC" },
-  { 0x10DE00CE, "0x00CE" },
+  { 0x10DE00C8, "GeForce Go 6800" },
+  { 0x10DE00C9, "GeForce Go 6800 Ultra" },
+  { 0x10DE00CC, "Quadro FX Go1400" },
+  { 0x10DE00CD, "0x00CD" },
+  { 0x10DE00CE, "Quadro FX 1400" },
+
   { 0x10DE0140, "GeForce 6600 GT" },
   { 0x10DE0141, "GeForce 6600" },
   { 0x10DE0142, "0x0142" },
@@ -239,12 +260,32 @@
   { 0x10DE014D, "0x014D" },
   { 0x10DE014E, "Quadro FX 540" },
   { 0x10DE014F, "GeForce 6200" },
+
   { 0x10DE0160, "0x0160" },
-  { 0x10DE0166, "0x0166" },
+  { 0x10DE0161, "GeForce 6200 TurboCache(TM)" },
+  { 0x10DE0162, "0x0162" },
+  { 0x10DE0163, "0x0163" },
+  { 0x10DE0164, "GeForce Go 6200" },
+  { 0x10DE0165, "0x0163" },
+  { 0x10DE0166, "GeForce Go 6250" },
+  { 0x10DE0167, "GeForce Go 6200" },
+  { 0x10DE0168, "GeForce Go 6250" },
+  { 0x10DE0169, "0x0169" },
+  { 0x10DE016B, "0x016B" },
+  { 0x10DE016C, "0x016C" },
+  { 0x10DE016D, "0x016D" },
+  { 0x10DE016E, "0x016E" },
+
   { 0x10DE0210, "0x0210" },
-  { 0x10DE0211, "0x0211" },
-  { 0x10DE021D, "0x021D" },
-  { 0x10DE021E, "0x021E" },
+  { 0x10DE0211, "GeForce 6800" },
+  { 0x10DE0212, "GeForce 6800 LE" },
+  { 0x10DE0215, "GeForce 6800 GT" },
+
+  { 0x10DE0220, "0x0220" },
+  { 0x10DE0221, "0x0221" },
+  { 0x10DE0222, "0x0222" },
+  { 0x10DE0228, "0x0228" },
+
   {-1, NULL}
 };
 
@@ -640,6 +681,8 @@
                case 0x01D0:
                case 0x0090:
                case 0x0210:
+               case 0x0220:
+               case 0x0230:
                    NVChipsets[numUsed].token = pciid;
                    NVChipsets[numUsed].name = "Unknown NVIDIA chip";
                    NVPciChipsets[numUsed].numChipset = pciid;
@@ -1328,6 +1371,8 @@
     case 0x01D0:
     case 0x0090:
     case 0x0210:
+    case 0x0220:
+    case 0x0230:
          pNv->Architecture =  NV_ARCH_40;
          break;
     default:
@@ -1661,8 +1706,6 @@
 
 static void NVBacklightEnable(NVPtr pNv,  Bool on)
 {
-    CARD32 fpcontrol = pNv->PRAMDAC[0x0848/4] & 0xCfffffCC;
-
     /* This is done differently on each laptop.  Here we
        define the ones we know for sure. */
 
@@ -1684,11 +1727,21 @@
     }
 #endif
     
-    /* cut the TMDS output */
-    if(on) fpcontrol |= pNv->fpSyncs;
-    else fpcontrol |= 0x20000022;
+    if(pNv->LVDS) {
+       if(pNv->twoHeads && ((pNv->Chipset & 0x0ff0) != 0x0110)) {
+           pNv->PMC[0x130C/4] = on ? 3 : 7; 
+       }
+    } else {
+       CARD32 fpcontrol;
 
-    pNv->PRAMDAC[0x0848/4] = fpcontrol;
+       fpcontrol = pNv->PRAMDAC[0x0848/4] & 0xCfffffCC;
+
+       /* cut the TMDS output */
+       if(on) fpcontrol |= pNv->fpSyncs;
+       else fpcontrol |= 0x20000022;
+
+       pNv->PRAMDAC[0x0848/4] = fpcontrol;
+    }
 }
 
 static void
Index: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c
diff -u xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c:1.2.4.2 xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c:1.6
--- xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c:1.2.4.2	Wed Dec 15 17:42:35 2004
+++ xc/programs/Xserver/hw/xfree86/drivers/nv/nv_hw.c	Sun Feb 13 19:37:20 2005
@@ -928,23 +928,16 @@
 
     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 {
-        pNv->PFB[0x0240/4] = 0;
-        pNv->PFB[0x0244/4] = pNv->FbMapSize - 1;
-        pNv->PFB[0x0250/4] = 0;
-        pNv->PFB[0x0254/4] = pNv->FbMapSize - 1;
-        pNv->PFB[0x0260/4] = 0;
-        pNv->PFB[0x0264/4] = pNv->FbMapSize - 1;
-        pNv->PFB[0x0270/4] = 0;
-        pNv->PFB[0x0274/4] = pNv->FbMapSize - 1;
-        pNv->PFB[0x0280/4] = 0;
-        pNv->PFB[0x0284/4] = pNv->FbMapSize - 1;
-        pNv->PFB[0x0290/4] = 0;
-        pNv->PFB[0x0294/4] = pNv->FbMapSize - 1;
-        pNv->PFB[0x02A0/4] = 0;
-        pNv->PFB[0x02A4/4] = pNv->FbMapSize - 1;
-        pNv->PFB[0x02B0/4] = 0;
-        pNv->PFB[0x02B4/4] = pNv->FbMapSize - 1;
+        for(i = 0; i < 8; i++) {
+           pNv->PFB[(0x0240 + (i * 0x10))/4] = 0;
+           pNv->PFB[(0x0244 + (i * 0x10))/4] = pNv->FbMapSize - 1;
+        }
     }
 
     if(pNv->Architecture >= NV_ARCH_40) {
@@ -1173,6 +1166,7 @@
 
               switch(pNv->Chipset & 0xfff0) {
               case 0x0040:
+              case 0x0210:
                  pNv->PGRAPH[0x09b8/4] = 0x0078e366;
                  pNv->PGRAPH[0x09bc/4] = 0x0000014c;
                  pNv->PFB[0x033C/4] &= 0xffff7fff;
@@ -1182,6 +1176,7 @@
                  pNv->PGRAPH[0x082C/4] = 0x00000108;
                  break;
               case 0x0160:
+              case 0x01D0:
                  pNv->PMC[0x1700/4] = pNv->PFB[0x020C/4];
                  pNv->PMC[0x1704/4] = 0;
                  pNv->PMC[0x1708/4] = 0;
@@ -1194,6 +1189,17 @@
                  pNv->PGRAPH[0x0828/4] = 0x0072cb77;
                  pNv->PGRAPH[0x082C/4] = 0x00000108;
                  break;
+              case 0x0220:
+              case 0x0230:
+                 pNv->PGRAPH[0x0860/4] = 0;
+                 pNv->PGRAPH[0x0864/4] = 0;
+                 pNv->PRAMDAC[0x0608/4] |= 0x00100000;
+                 break;
+              case 0x0090:
+                 pNv->PRAMDAC[0x0608/4] |= 0x00100000;
+                 pNv->PGRAPH[0x0828/4] = 0x07830610;
+                 pNv->PGRAPH[0x082C/4] = 0x0000016A;
+                 break;
               default:
                  break;
               };
@@ -1237,8 +1243,13 @@
               }
            }
 
-           for(i = 0; i < 32; i++)
-             pNv->PGRAPH[(0x0900/4) + i] = pNv->PFB[(0x0240/4) + i];
+           if((pNv->Chipset & 0xfff0) == 0x0090) {
+              for(i = 0; i < 60; i++)
+                pNv->PGRAPH[(0x0D00/4) + i] = pNv->PFB[(0x0600/4) + i];
+           } else {
+              for(i = 0; i < 32; i++)
+                pNv->PGRAPH[(0x0900/4) + i] = pNv->PFB[(0x0240/4) + i];
+           }
 
            if(pNv->Architecture >= NV_ARCH_40) {
               if((pNv->Chipset & 0xfff0) == 0x0040) {
@@ -1252,8 +1263,13 @@
                  pNv->PGRAPH[0x0864/4] = pNv->FbMapSize - 1;
                  pNv->PGRAPH[0x0868/4] = pNv->FbMapSize - 1;
               } else {
-                 pNv->PGRAPH[0x09F0/4] = pNv->PFB[0x0200/4];
-                 pNv->PGRAPH[0x09F4/4] = pNv->PFB[0x0204/4];
+                 if((pNv->Chipset & 0xfff0) == 0x0090) {
+                    pNv->PGRAPH[0x0DF0/4] = pNv->PFB[0x0200/4];
+                    pNv->PGRAPH[0x0DF4/4] = pNv->PFB[0x0204/4];
+                 } else {
+                    pNv->PGRAPH[0x09F0/4] = pNv->PFB[0x0200/4];
+                    pNv->PGRAPH[0x09F4/4] = pNv->PFB[0x0204/4];
+                 }
                  pNv->PGRAPH[0x69F0/4] = pNv->PFB[0x0200/4];
                  pNv->PGRAPH[0x69F4/4] = pNv->PFB[0x0204/4];
 
--- xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c:1.2.4.2	Wed Dec 15 17:42:35 2004
+++ xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c	Thu Apr 21 15:25:47 2005
@@ -680,5 +680,14 @@
 
     if(!pNv->FlatPanel || (pScrn->depth != 24) || !pNv->twoHeads)
         pNv->FPDither = FALSE;
+
+    pNv->LVDS = FALSE;
+    if(pNv->FlatPanel && pNv->twoHeads) {
+        pNv->PRAMDAC0[0x08B0/4] = 0x00010004;
+        if(pNv->PRAMDAC0[0x08B4/4] & 1)
+           pNv->LVDS = TRUE;
+        xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Panel is %s\n", 
+                   pNv->LVDS ? "LVDS" : "TMDS");
+    }
 }
 
Index: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h
diff -u xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h:1.2.4.2 xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h:1.5
--- xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h:1.2.4.2	Wed Dec 15 17:42:35 2004
+++ xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h	Thu Apr 21 15:25:47 2005
@@ -161,6 +161,7 @@
     CARD32              fpSyncs;
     Bool                usePanelTweak;
     int                 PanelTweak;
+    Bool                LVDS;
 
     CARD32              dmaPut;
     CARD32              dmaCurrent;


Index: xorg-x11.spec
===================================================================
RCS file: /cvs/dist/rpms/xorg-x11/devel/xorg-x11.spec,v
retrieving revision 1.209
retrieving revision 1.210
diff -u -r1.209 -r1.210
--- xorg-x11.spec	30 Jun 2005 18:05:16 -0000	1.209
+++ xorg-x11.spec	5 Jul 2005 14:21:39 -0000	1.210
@@ -18,8 +18,9 @@
 
 Name: xorg-x11
 Version: 6.8.2
-Release: 40
-#Release: 1.FC3.39
+Release: 41
+#Release: 1.FC3.41
+#Release: ?.FC4.41
 
 %define build_mharris_mode	0
 
@@ -390,6 +391,7 @@
 # Patches 1625-1649: mga driver patches
 # Patches 1650-1674: neomagic driver patches
 # Patches 1675-1699: nv driver patches
+Patch1675: xorg-x11-6.8.2-nv-driver-CVSHEAD-6.8.99.13.patch
 # Patches 1700-1719: rendition driver patches
 # Patches 1720-1739: s3 driver patches
 # Patches 1740-1759: s3virge driver patches
@@ -1077,6 +1079,8 @@
 #%patch1300 -p0 -b .chips-default-to-noaccel-on-69000
 #%patch1301 -p0 -b .chips-default-to-swcursor-on-65550
 
+%patch1675 -p0 -b .nv-driver-CVSHEAD-6.8.99.13
+
 ######################################################################
 %patch2022 -p1 -b .agpgart-load
 
@@ -3579,6 +3583,11 @@
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT 
 
 %changelog
+* Mon Jul  4 2005 Mike A. Harris <mharris redhat com> 6.8.2-41
+- Added xorg-x11-6.8.2-nv-driver-CVSHEAD-6.8.99.13.patch backport of CVS head
+  nv driver to track the latest bug fixes and hardware support.  Hopefully
+  this will also fix critical bug (#157715) also.
+
 * Thu Jun 30 2005 Mike A. Harris <mharris redhat com> 6.8.2-40
 - Added xorg-x11-6.8.2-xkb-dutch-keyboard-layout-fixes.patch as a proposed
   fix for Dutch keyboard layout issue (#135233)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]