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

xserver-xorg-video-nv: Changes to 'upstream-unstable'



 compat/Makefile.am |    1 
 configure.ac       |    2 -
 src/Makefile.am    |    1 
 src/g80_output.c   |   86 +++++++++++++++++++++++++++++++++++------------------
 src/g80_sor.c      |    6 +--
 src/nv_driver.c    |   12 ++++++-
 6 files changed, 74 insertions(+), 34 deletions(-)

New commits:
commit 4965498f238fbe3d8a0d0b84bf8bceb9237e472a
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Thu Mar 6 13:53:54 2008 -0800

    Bump to 2.1.8.

diff --git a/configure.ac b/configure.ac
index f2a92d6..1b38183 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-nv],
-        2.1.7,
+        2.1.8,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-video-nv)
 

commit 806331f411df991dcd1a48108f9ff4e9bb480969
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Thu Mar 6 14:31:16 2008 -0800

    Add xf86gtf.c to the compat file list.

diff --git a/compat/Makefile.am b/compat/Makefile.am
index f5f8d93..de17f93 100644
--- a/compat/Makefile.am
+++ b/compat/Makefile.am
@@ -7,6 +7,7 @@ EXTRA_DIST = \
     modes/xf86cvt.c \
     modes/xf86DiDGA.c \
     modes/xf86EdidModes.c \
+    modes/xf86gtf.c \
     modes/xf86Modes.c \
     modes/xf86Modes.h \
     modes/xf86RandR12.c \
diff --git a/src/Makefile.am b/src/Makefile.am
index b7eacad..2677d9c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -92,6 +92,7 @@ xmode_sources = \
          @modes_dir@/xf86Crtc.c \
          @modes_dir@/xf86Cursors.c \
          @modes_dir@/xf86EdidModes.c \
+         @modes_dir@/xf86gtf.c \
          @modes_dir@/xf86RandR12.c \
          @modes_dir@/xf86RandR12.h \
          @modes_dir@/xf86Rename.h \

commit 09d154246ab55846878e34bc133b08c11765c45b
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Thu Mar 6 12:40:23 2008 -0800

    More new chip names.

diff --git a/src/nv_driver.c b/src/nv_driver.c
index 2479331..e151bb4 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -113,7 +113,7 @@ _X_EXPORT DriverRec NV = {
 #endif
 };
 
-/* Known cards as of 2008/02/26 */
+/* Known cards as of 2008/03/06 */
 
 static SymTabRec NVKnownChipsets[] =
 {
@@ -361,6 +361,7 @@ static SymTabRec NVKnownChipsets[] =
   { 0x10DE019D, "Quadro FX 5600" },
   { 0x10DE019E, "Quadro FX 4600" },
   { 0x10DE0400, "GeForce 8600 GTS" },
+  { 0x10DE0401, "GeForce 8600 GT" },
   { 0x10DE0402, "GeForce 8600 GT" },
   { 0x10DE0404, "GeForce 8400 GS" },
   { 0x10DE0407, "GeForce 8600M GT" },
@@ -374,6 +375,7 @@ static SymTabRec NVKnownChipsets[] =
   { 0x10DE0421, "GeForce 8500 GT" },
   { 0x10DE0422, "GeForce 8400 GS" },
   { 0x10DE0423, "GeForce 8300 GS" },
+  { 0x10DE0424, "GeForce 8400 GS" },
   { 0x10DE0425, "GeForce 8600M GS" },
   { 0x10DE0426, "GeForce 8400M GT" },
   { 0x10DE0427, "GeForce 8400M GS" },
@@ -383,9 +385,13 @@ static SymTabRec NVKnownChipsets[] =
   { 0x10DE042B, "Quadro NVS 135M" },
   { 0x10DE042D, "Quadro FX 360M" },
   { 0x10DE042F, "Quadro NVS 290" },
+  { 0x10DE0602, "GeForce 8800 GT" },
+  { 0x10DE0606, "GeForce 8800 GS" },
+  { 0x10DE060D, "GeForce 8800 GS" },
   { 0x10DE0611, "GeForce 8800 GT" },
   { 0x10DE061A, "Quadro FX 3700" },
   { 0x10DE0622, "GeForce 9600 GT" },
+  { 0x10DE06E4, "GeForce 8400 GS" },
 
   {-1, NULL}
 };
@@ -752,6 +758,7 @@ NVIsG80(int chipType)
         case 0x0400:
         case 0x0420:
         case 0x05e0:
+        case 0x0600:
         case 0x0610:
         case 0x0620:
         case 0x0630:

commit fa97c4c2c69f91ac5a034ef2f62287b7cd5b2bde
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Tue Feb 26 12:24:05 2008 -0800

    GeForce 9600 GT.
    
    Note that the 9600 GT should already work in 2.1.7.  This change just adds its
    name to the list.

diff --git a/src/nv_driver.c b/src/nv_driver.c
index d4e0be5..2479331 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -113,7 +113,7 @@ _X_EXPORT DriverRec NV = {
 #endif
 };
 
-/* Known cards as of 2008/01/24 */
+/* Known cards as of 2008/02/26 */
 
 static SymTabRec NVKnownChipsets[] =
 {
@@ -385,6 +385,7 @@ static SymTabRec NVKnownChipsets[] =
   { 0x10DE042F, "Quadro NVS 290" },
   { 0x10DE0611, "GeForce 8800 GT" },
   { 0x10DE061A, "Quadro FX 3700" },
+  { 0x10DE0622, "GeForce 9600 GT" },
 
   {-1, NULL}
 };
@@ -750,10 +751,12 @@ NVIsG80(int chipType)
         case 0x0190:
         case 0x0400:
         case 0x0420:
+        case 0x05e0:
         case 0x0610:
         case 0x0620:
         case 0x0630:
         case 0x0640:
+        case 0x06e0:
             return TRUE;
     }
 

commit a87b93d5c5b4d1a65a60dad271b06a2d560b71b8
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Tue Feb 19 14:17:57 2008 -0800

    G80: Fix connector mapping and TMDS initialization on certain GPUs.

diff --git a/src/g80_output.c b/src/g80_output.c
index d2ea9ee..05b907b 100644
--- a/src/g80_output.c
+++ b/src/g80_output.c
@@ -69,8 +69,8 @@ static unsigned G80FindLoadVal(const unsigned char *table1)
 
 static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv)
 {
-    unsigned char *table2;
-    unsigned char headerSize, entries;
+    unsigned char *table2, *table3;
+    unsigned char headerSize, entries, table3Entries, table3EntSize;
     int i;
     CARD16 a;
     CARD32 b;
@@ -89,11 +89,16 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv)
     b = *(CARD32*)(table2 + 6);
     if(b != 0x4edcbdcb) goto fail;
 
+    table3 = (unsigned char*)pNv->table1 + *(CARD16*)(table2 + 4);
+    table3Entries = table3[2];
+    table3EntSize = table3[3];
+    table3 += table3[1];
+
     headerSize = table2[1];
     entries = table2[2];
 
     for(i = 0; i < entries; i++) {
-        int type, port;
+        int type, port, portType;
         ORNum or;
 
         b = *(CARD32*)&table2[headerSize + 8*i];
@@ -103,35 +108,60 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv)
 
         if(type == 0xe) break;
 
-        if(type < 4) {
-            switch(type) {
-                case 0: /* CRT */
-                    if(pNv->i2cMap[port].dac != -1) {
-                        xf86DrvMsg(scrnIndex, X_WARNING,
-                                   "DDC routing table corrupt!  DAC %i -> %i "
-                                   "for port %i\n",
-                                   or, pNv->i2cMap[port].dac, port);
-                    }
-                    pNv->i2cMap[port].dac = or;
+        switch(type) {
+            case 0: /* CRT */
+                if(port >= table3Entries) {
+                    xf86DrvMsg(scrnIndex, X_WARNING,
+                               "VGA%d: invalid port %d\n", or, port);
                     break;
-                case 1: /* TV */
-                    /* Ignore TVs */
+                }
+                b = *(CARD32*)&table3[table3EntSize * port];
+                port = b & 0xff;
+                portType = b >> 24;
+                if(portType != 5) {
+                    xf86DrvMsg(scrnIndex, X_WARNING,
+                               "VGA%d: invalid port type %d\n", or, portType);
                     break;
-
-                case 2: /* TMDS */
-                    if(pNv->i2cMap[port].sor != -1)
-                        xf86DrvMsg(scrnIndex, X_WARNING,
-                                   "DDC routing table corrupt!  SOR %i -> %i "
-                                   "for port %i\n",
-                                   or, pNv->i2cMap[port].sor, port);
-                    pNv->i2cMap[port].sor = or;
+                }
+                if(pNv->i2cMap[port].dac != -1) {
+                    xf86DrvMsg(scrnIndex, X_WARNING,
+                               "DDC routing table corrupt!  DAC %i -> %i for "
+                               "port %i\n", or, pNv->i2cMap[port].dac, port);
+                }
+                pNv->i2cMap[port].dac = or;
+                break;
+            case 1: /* TV */
+                /* Ignore TVs */
+                break;
+
+            case 2: /* TMDS */
+                if(port >= table3Entries) {
+                    xf86DrvMsg(scrnIndex, X_WARNING,
+                               "DVI%d: invalid port %d\n", or, port);
                     break;
-
-                case 3: /* LVDS */
-                    pNv->lvds.present = TRUE;
-                    pNv->lvds.or = or;
+                }
+                b = *(CARD32*)&table3[table3EntSize * port];
+                port = b & 0xff;
+                portType = b >> 24;
+                if(portType != 5) {
+                    xf86DrvMsg(scrnIndex, X_WARNING,
+                               "DVI%d: invalid port type %d\n", or, portType);
                     break;
-            }
+                }
+                if(pNv->i2cMap[port].sor != -1)
+                    xf86DrvMsg(scrnIndex, X_WARNING,
+                               "DDC routing table corrupt!  SOR %i -> %i for "
+                               "port %i\n", or, pNv->i2cMap[port].sor, port);
+                pNv->i2cMap[port].sor = or;
+                break;
+
+            case 3: /* LVDS */
+                pNv->lvds.present = TRUE;
+                pNv->lvds.or = or;
+                break;
+
+            default:
+                break;
         }
     }
 
diff --git a/src/g80_sor.c b/src/g80_sor.c
index 0b39005..02a5f3b 100644
--- a/src/g80_sor.c
+++ b/src/g80_sor.c
@@ -41,7 +41,7 @@ G80SorSetPClk(xf86OutputPtr output, int pclk)
     const int orOff = 0x800 * pPriv->or;
     const int limit = 165000;
 
-    pNv->reg[(0x00614300+orOff)/4] = (pclk > limit) ? 0x101 : 0;
+    pNv->reg[(0x00614300+orOff)/4] = 0x70000 | (pclk > limit ? 0x101 : 0);
 }
 
 static void

commit 3f2a1898fedbada151da31fc163ae54daac0e896
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Feb 13 10:43:28 2008 -0800

    [PATCH] Bug #14484: Fix G80SorSetProperty return value.
    
    Signed-off-by: Aaron Plattner <aplattner@nvidia.com>

diff --git a/src/g80_sor.c b/src/g80_sor.c
index 387b1e8..0b39005 100644
--- a/src/g80_sor.c
+++ b/src/g80_sor.c
@@ -324,7 +324,6 @@ G80SorSetProperty(xf86OutputPtr output, Atom prop, RRPropertyValuePtr val)
             return FALSE;
 
         G80CrtcSetDither(output->crtc, i, TRUE);
-        return TRUE;
     } else if(prop == properties.scale.atom) {
         const char *s;
         enum G80ScaleMode oldScale, scale;
@@ -383,10 +382,9 @@ G80SorSetProperty(xf86OutputPtr output, Atom prop, RRPropertyValuePtr val)
                 return FALSE;
             }
         }
-        return TRUE;
     }
 
-    return FALSE;
+    return TRUE;
 }
 #endif // RANDR_12_INTERFACE
 


Reply to: