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

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



 configure.ac      |    2 +-
 man/Makefile.am   |    1 -
 man/nv.man        |    4 ++++
 src/g80_dac.c     |    2 +-
 src/g80_display.c |    8 ++++----
 src/g80_driver.c  |   17 ++++++++++-------
 src/g80_output.c  |    4 ++++
 src/g80_sor.c     |    7 ++++---
 src/g80_type.h    |    1 +
 src/nv_driver.c   |   37 ++++++++++++++++++++++++-------------
 10 files changed, 53 insertions(+), 30 deletions(-)

New commits:
commit cca0a00c89730c8338af44e62438babc93f078fb
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Fri May 9 18:45:46 2008 -0700

    Bump to 2.1.9.

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

commit 9c98d2ca942049322688b5796a2ed041fd48282d
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Fri May 9 18:44:57 2008 -0700

    Yet more G80s.
    
    Sometimes I wish we made fewer products.

diff --git a/src/nv_driver.c b/src/nv_driver.c
index 54f8b66..2f1b77e 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -394,10 +394,13 @@ static SymTabRec NVKnownChipsets[] =
   { 0x10DE0609, "GeForce 8800M GTS" },
   { 0x10DE060C, "GeForce 8800M GTX" },
   { 0x10DE060D, "GeForce 8800 GS" },
+  { 0x10DE0610, "GeForce 9600 GSO" },
   { 0x10DE0611, "GeForce 8800 GT" },
+  { 0x10DE0612, "GeForce 9800 GTX" },
   { 0x10DE061A, "Quadro FX 3700" },
   { 0x10DE061C, "Quadro FX 3600M" },
   { 0x10DE0622, "GeForce 9600 GT" },
+  { 0x10DE0623, "GeForce 9600 GS" },
   { 0x10DE06E4, "GeForce 8400 GS" },
 
   {-1, NULL}

commit cb83fbdfa22aa408e6692256cd44b78fef53e801
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Fri May 9 18:31:07 2008 -0700

    Add an option to allow validation of dual-link DVI modes.
    
    These modes don't work at bootup (i.e. power saving) configuration on all GPUs,
    so they're still disabled by default.  This option allows users to enable them
    in case they actually work.

diff --git a/man/nv.man b/man/nv.man
index 7a08823..19816bd 100644
--- a/man/nv.man
+++ b/man/nv.man
@@ -162,6 +162,10 @@ Default: XAA.
 Enable or disable flat panel dithering by default.
 Dithering can also be enabled or disabled using the RandR 1.2 \*qdither\*q output property.
 Default: off.
+.TP
+.BI "Option \*qAllowDualLinkModes\*q \*q" boolean \*q
+Allow validation of dual-link DVI modes.
+Not all GPUs are configured at boot time to be able to handle dual-link modes, so they are disabled by default.
 .
 .\" RandR 1.2
 .PP
diff --git a/src/g80_driver.c b/src/g80_driver.c
index 99ea737..a0182a1 100644
--- a/src/g80_driver.c
+++ b/src/g80_driver.c
@@ -106,14 +106,16 @@ typedef enum {
     OPTION_NOACCEL,
     OPTION_ACCEL_METHOD,
     OPTION_FP_DITHER,
+    OPTION_ALLOW_DUAL_LINK,
 } G80Opts;
 
 static const OptionInfoRec G80Options[] = {
-    { OPTION_HW_CURSOR,         "HWCursor",     OPTV_BOOLEAN,   {0}, FALSE },
-    { OPTION_NOACCEL,           "NoAccel",      OPTV_BOOLEAN,   {0}, FALSE },
-    { OPTION_ACCEL_METHOD,      "AccelMethod",  OPTV_STRING,    {0}, FALSE },
-    { OPTION_FP_DITHER,         "FPDither",     OPTV_BOOLEAN,   {0}, FALSE },
-    { -1,                       NULL,           OPTV_NONE,      {0}, FALSE }
+    { OPTION_HW_CURSOR,         "HWCursor",             OPTV_BOOLEAN,   {0}, FALSE },
+    { OPTION_NOACCEL,           "NoAccel",              OPTV_BOOLEAN,   {0}, FALSE },
+    { OPTION_ACCEL_METHOD,      "AccelMethod",          OPTV_STRING,    {0}, FALSE },
+    { OPTION_FP_DITHER,         "FPDither",             OPTV_BOOLEAN,   {0}, FALSE },
+    { OPTION_ALLOW_DUAL_LINK,   "AllowDualLinkModes",   OPTV_BOOLEAN,   {0}, FALSE },
+    { -1,                       NULL,                   OPTV_NONE,      {0}, FALSE }
 };
 
 static Bool
@@ -331,6 +333,7 @@ G80PreInit(ScrnInfoPtr pScrn, int flags)
     }
 
     pNv->Dither = xf86ReturnOptValBool(pNv->Options, OPTION_FP_DITHER, FALSE);
+    pNv->AllowDualLink = xf86ReturnOptValBool(pNv->Options, OPTION_ALLOW_DUAL_LINK, FALSE);
 
     /* Set the bits per RGB for 8bpp mode */
     if(pScrn->depth == 8)
diff --git a/src/g80_sor.c b/src/g80_sor.c
index 02a5f3b..202e838 100644
--- a/src/g80_sor.c
+++ b/src/g80_sor.c
@@ -69,9 +69,10 @@ G80SorDPMSSet(xf86OutputPtr output, int mode)
 static int
 G80TMDSModeValid(xf86OutputPtr output, DisplayModePtr mode)
 {
-    // Disable dual-link modes until I can find a way to make them work
-    // reliably.
-    if (mode->Clock > 165000)
+    G80Ptr pNv = G80PTR(output->scrn);
+
+    // Disable dual-link modes unless enabled in the config file.
+    if (mode->Clock > 165000 && !pNv->AllowDualLink)
         return MODE_CLOCK_HIGH;
 
     return G80OutputModeValid(output, mode);
diff --git a/src/g80_type.h b/src/g80_type.h
index 5f4ee08..30ef3fe 100644
--- a/src/g80_type.h
+++ b/src/g80_type.h
@@ -67,6 +67,7 @@ typedef struct G80Rec {
     Bool                NoAccel;
     AccelMethod         AccelMethod;
     Bool                Dither;
+    Bool                AllowDualLink;
 
     /* XAA */
     XAAInfoRecPtr       xaa;

commit 8db2d4e63508f59299098e092ae85e543cf61d03
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Sun Apr 27 16:23:40 2008 -0700

    More G80s.

diff --git a/src/nv_driver.c b/src/nv_driver.c
index 95f0007..54f8b66 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -364,6 +364,7 @@ static SymTabRec NVKnownChipsets[] =
   { 0x10DE0401, "GeForce 8600 GT" },
   { 0x10DE0402, "GeForce 8600 GT" },
   { 0x10DE0404, "GeForce 8400 GS" },
+  { 0x10DE0405, "GeForce 9500M GS" },
   { 0x10DE0407, "GeForce 8600M GT" },
   { 0x10DE0409, "GeForce 8700M GT" },
   { 0x10DE040A, "Quadro FX 370" },
@@ -372,6 +373,7 @@ static SymTabRec NVKnownChipsets[] =
   { 0x10DE040D, "Quadro FX 1600M" },
   { 0x10DE040E, "Quadro FX 570" },
   { 0x10DE040F, "Quadro FX 1700" },
+  { 0x10DE0420, "GeForce 8400 SE" },
   { 0x10DE0421, "GeForce 8500 GT" },
   { 0x10DE0422, "GeForce 8400 GS" },
   { 0x10DE0423, "GeForce 8300 GS" },
@@ -385,11 +387,16 @@ static SymTabRec NVKnownChipsets[] =
   { 0x10DE042B, "Quadro NVS 135M" },
   { 0x10DE042D, "Quadro FX 360M" },
   { 0x10DE042F, "Quadro NVS 290" },
+  { 0x10DE0600, "GeForce 8800 GTS 512" },
   { 0x10DE0602, "GeForce 8800 GT" },
+  { 0x10DE0604, "GeForce 9800 GX2" },
   { 0x10DE0606, "GeForce 8800 GS" },
+  { 0x10DE0609, "GeForce 8800M GTS" },
+  { 0x10DE060C, "GeForce 8800M GTX" },
   { 0x10DE060D, "GeForce 8800 GS" },
   { 0x10DE0611, "GeForce 8800 GT" },
   { 0x10DE061A, "Quadro FX 3700" },
+  { 0x10DE061C, "Quadro FX 3600M" },
   { 0x10DE0622, "GeForce 9600 GT" },
   { 0x10DE06E4, "GeForce 8400 GS" },
 
@@ -758,6 +765,7 @@ NVIsG80(int chipType)
         case 0x0400:
         case 0x0420:
         case 0x05e0:
+        case 0x05f0:
         case 0x0600:
         case 0x0610:
         case 0x0620:

commit 4aa43a2b66e473f9154f1582f5cf0e4b4596e485
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Sun Apr 27 16:23:28 2008 -0700

    Fix a few startup bugs.

diff --git a/src/g80_display.c b/src/g80_display.c
index 2e97e92..8b97b8a 100644
--- a/src/g80_display.c
+++ b/src/g80_display.c
@@ -407,7 +407,7 @@ G80CrtcBlankScreen(xf86CrtcPtr crtc, Bool blank)
         C(0x00000860 + headOff, 0);
         C(0x00000864 + headOff, 0);
         pNv->reg[0x00610380/4] = 0;
-        pNv->reg[0x00610384/4] = pNv->RamAmountKBytes * 1024 - 1;
+        pNv->reg[0x00610384/4] = pNv->videoRam * 1024 - 1;
         pNv->reg[0x00610388/4] = 0x150000;
         pNv->reg[0x0061038C/4] = 0;
         C(0x00000884 + headOff, (pNv->videoRam << 2) - 0x40);
diff --git a/src/g80_driver.c b/src/g80_driver.c
index 1a83544..99ea737 100644
--- a/src/g80_driver.c
+++ b/src/g80_driver.c
@@ -367,7 +367,8 @@ G80PreInit(ScrnInfoPtr pScrn, int flags)
     }
 
     pNv->architecture = pNv->reg[0] >> 20 & 0x1ff;
-    pNv->videoRam = pNv->RamAmountKBytes = (pNv->reg[0x0010020C/4] & 0xFFF00000) >> 10;
+    tmp = pNv->reg[0x0010020C/4];
+    pNv->videoRam = pNv->RamAmountKBytes = tmp >> 10 | (tmp & 1) << 22;
 
     /* Determine the size of BAR1 */
     /* Some configs have BAR1 < total RAM < 256 MB */
diff --git a/src/g80_output.c b/src/g80_output.c
index 05b907b..1cf4669 100644
--- a/src/g80_output.c
+++ b/src/g80_output.c
@@ -106,6 +106,10 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv)
         port = (b >> 4) & 0xf;
         or = ffs((b >> 24) & 0xf) - 1;
 
+        if(b & 0x300000)
+            /* Can't handle this type of output yet */
+            continue;
+
         if(type == 0xe) break;
 
         switch(type) {

commit 0ddee2347109e8c64bd2cb4693b97c3fa3aab94b
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Tue Mar 25 16:35:05 2008 -0700

    Sort the IsSupported table.

diff --git a/src/nv_driver.c b/src/nv_driver.c
index 84c5a5d..95f0007 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -776,26 +776,26 @@ NVIsSupported(CARD32 id)
     /* look for a compatible devices which may be newer than
        the NVKnownChipsets list above.  */
     switch(id & 0xfff0) {
-    case 0x0170:
-    case 0x0180:
-    case 0x0250:
-    case 0x0280:
-    case 0x0300:
-    case 0x0310:
-    case 0x0320:
-    case 0x0330:
-    case 0x0340:
     case 0x0040:
+    case 0x0090:
     case 0x00C0:
     case 0x0120:
     case 0x0140:
     case 0x0160:
+    case 0x0170:
+    case 0x0180:
     case 0x01D0:
-    case 0x0090:
     case 0x0210:
     case 0x0220:
     case 0x0240:
+    case 0x0250:
+    case 0x0280:
     case 0x0290:
+    case 0x0300:
+    case 0x0310:
+    case 0x0320:
+    case 0x0330:
+    case 0x0340:
     case 0x0390:
     case 0x03D0:
         return TRUE;

commit c0c7d610800161976fd7dce064beae05d2d4195b
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Mon Apr 28 14:43:12 2008 -0700

    I win at C.

diff --git a/src/g80_driver.c b/src/g80_driver.c
index 7223f56..1a83544 100644
--- a/src/g80_driver.c
+++ b/src/g80_driver.c
@@ -367,8 +367,7 @@ G80PreInit(ScrnInfoPtr pScrn, int flags)
     }
 
     pNv->architecture = pNv->reg[0] >> 20 & 0x1ff;
-    pNv->RamAmountKBytes = pNv->RamAmountKBytes = (pNv->reg[0x0010020C/4] & 0xFFF00000) >> 10;
-    pNv->videoRam = pNv->RamAmountKBytes;
+    pNv->videoRam = pNv->RamAmountKBytes = (pNv->reg[0x0010020C/4] & 0xFFF00000) >> 10;
 
     /* Determine the size of BAR1 */
     /* Some configs have BAR1 < total RAM < 256 MB */

commit b62a7cf70db356918aa04fb3f30bf1fd1142b9d5
Author: Matthieu Herrb <matthieu.herrb@laas.fr>
Date:   Sat Mar 8 23:43:58 2008 +0100

    Makefile.am: nuke RCS Id

diff --git a/man/Makefile.am b/man/Makefile.am
index bf7ec17..f0eb29b 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1,4 +1,3 @@
-# $Id$
 #
 # Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
 # 

commit f88ef390985babdb2b489cf52bfa587e1879db38
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Fri Mar 7 12:32:40 2008 -0800

    Bug #14885: Add missing static keywords.

diff --git a/src/g80_dac.c b/src/g80_dac.c
index 0d72d9d..404f178 100644
--- a/src/g80_dac.c
+++ b/src/g80_dac.c
@@ -77,7 +77,7 @@ G80DacDPMSSet(xf86OutputPtr output, int mode)
     pNv->reg[(0x0061A004+off)/4] = tmp;
 }
 
-Bool
+static Bool
 G80DacModeFixup(xf86OutputPtr output, DisplayModePtr mode,
                 DisplayModePtr adjusted_mode)
 {
diff --git a/src/g80_display.c b/src/g80_display.c
index dda1c7f..2e97e92 100644
--- a/src/g80_display.c
+++ b/src/g80_display.c
@@ -423,7 +423,7 @@ G80CrtcBlankScreen(xf86CrtcPtr crtc, Bool blank)
     }
 }
 
-void
+static void
 G80CrtcDPMSSet(xf86CrtcPtr crtc, int mode)
 {
 }
@@ -442,12 +442,12 @@ static void G80CrtcShowHideCursor(xf86CrtcPtr crtc, Bool show, Bool update)
     }
 }
 
-void G80CrtcShowCursor(xf86CrtcPtr crtc)
+static void G80CrtcShowCursor(xf86CrtcPtr crtc)
 {
     G80CrtcShowHideCursor(crtc, TRUE, TRUE);
 }
 
-void G80CrtcHideCursor(xf86CrtcPtr crtc)
+static void G80CrtcHideCursor(xf86CrtcPtr crtc)
 {
     G80CrtcShowHideCursor(crtc, FALSE, TRUE);
 }
diff --git a/src/nv_driver.c b/src/nv_driver.c
index e151bb4..84c5a5d 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -952,7 +952,7 @@ NVSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
     return NVModeInit(pScrn, mode);
 }
 
-Bool
+static Bool
 NVSwitchModeVBE(int scrnIndex, DisplayModePtr mode, int flags)
 {
     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
@@ -1232,7 +1232,7 @@ NVModesAdd(DisplayModePtr Modes, DisplayModePtr Additions)
 }
 
 /* Mandatory */
-Bool
+static Bool
 NVPreInit(ScrnInfoPtr pScrn, int flags)
 {
     NVPtr pNv;
@@ -2016,7 +2016,7 @@ NVMapMem(ScrnInfoPtr pScrn)
     return TRUE;
 }
 
-Bool
+static Bool
 NVMapMemFBDev(ScrnInfoPtr pScrn)
 {
     NVPtr pNv;


Reply to: