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

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



 ChangeLog             |   39 ++++++++++++++++++++++++++
 configure             |   20 ++++++-------
 configure.ac          |    2 -
 debian/changelog      |    6 ++++
 debian/xsfbs/xsfbs.mk |   23 +++++++++------
 man/nv.man            |    5 +++
 src/g80_display.c     |   17 +++++++++++
 src/g80_display.h     |    1 
 src/g80_driver.c      |   10 ++++++
 src/g80_output.c      |    3 +-
 src/g80_sor.c         |   75 ++++++++++++++++++++++++++++++++++++++++++++++++--
 src/g80_type.h        |    1 
 src/nv_driver.c       |    8 +++++
 13 files changed, 186 insertions(+), 24 deletions(-)

New commits:
commit ba2406ff6da2afdd9f3040083806bba45201de8d
Author: Julien Cristau <jcristau@debian.org>
Date:   Tue Jul 10 20:27:26 2007 +0200

    Update upstream changelog.

diff --git a/ChangeLog b/ChangeLog
index e8abf32..2f20fc3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,42 @@
+commit 493822998184a1d79d6774686983cbd41930f253
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Tue Jul 10 09:58:46 2007 -0700
+
+    Bump to 2.1.2.
+
+commit d0d4e37accc697108e03c2ee7fdc0edf1f309620
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Tue Jul 10 09:48:19 2007 -0700
+
+    More GeForce 8 series mobile chips.
+
+commit e77a2d9b62bc65062e7e2167642be5ab75ac4864
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Tue Jul 10 00:41:21 2007 -0700
+
+    G80: Add a dithering property and corresponding config file option.
+
+commit c1503c864d495f8a3e5380fed5cb8ca5e21a3750
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Sun Jul 8 01:28:42 2007 -0700
+
+    GeForce 8600M GT.
+
+commit 42dffde988176a3f85b0586ecb8d672b74050760
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Sun Jul 8 00:53:00 2007 -0700
+
+    Work around more MacBook wackiness.
+    
+    Turn off more corrupt the framebuffer mode.  Don't mess with the pixel clock for
+    LVDS as long as we're trusting the VBIOS-programmed timings.
+
+commit bc439899f323410b0549068cd88348e7fb62866b
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date:   Tue Jul 3 14:03:59 2007 -0700
+
+    Put the GPU into don't corrupt the framebuffer mode to work around MacBook wackiness.
+
 commit 0f93ad0e2af26b4e2381f337b58d3a5e50302664
 Author: Aaron Plattner <aplattner@nvidia.com>
 Date:   Mon Jul 2 09:01:12 2007 -0700

commit 761a80d61981c8d9864bca623a4a7becd1187d2d
Author: Julien Cristau <jcristau@debian.org>
Date:   Tue Jul 10 20:09:49 2007 +0200

    New upstream release.

diff --git a/configure b/configure
index 9fd4f35..88fce2d 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for xf86-video-nv 2.1.1.
+# Generated by GNU Autoconf 2.61 for xf86-video-nv 2.1.2.
 #
 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
 #
@@ -728,8 +728,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='xf86-video-nv'
 PACKAGE_TARNAME='xf86-video-nv'
-PACKAGE_VERSION='2.1.1'
-PACKAGE_STRING='xf86-video-nv 2.1.1'
+PACKAGE_VERSION='2.1.2'
+PACKAGE_STRING='xf86-video-nv 2.1.2'
 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
 
 ac_unique_file="Makefile.am"
@@ -1417,7 +1417,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xf86-video-nv 2.1.1 to adapt to many kinds of systems.
+\`configure' configures xf86-video-nv 2.1.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1487,7 +1487,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xf86-video-nv 2.1.1:";;
+     short | recursive ) echo "Configuration of xf86-video-nv 2.1.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1601,7 +1601,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xf86-video-nv configure 2.1.1
+xf86-video-nv configure 2.1.2
 generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1615,7 +1615,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xf86-video-nv $as_me 2.1.1, which was
+It was created by xf86-video-nv $as_me 2.1.2, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
@@ -2290,7 +2290,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='xf86-video-nv'
- VERSION='2.1.1'
+ VERSION='2.1.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -21292,7 +21292,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xf86-video-nv $as_me 2.1.1, which was
+This file was extended by xf86-video-nv $as_me 2.1.2, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -21345,7 +21345,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-xf86-video-nv config.status 2.1.1
+xf86-video-nv config.status 2.1.2
 configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/debian/changelog b/debian/changelog
index 8ae5e54..dbe285d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-nv (1:2.1.2-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Julien Cristau <jcristau@debian.org>  Tue, 10 Jul 2007 20:04:13 +0200
+
 xserver-xorg-video-nv (1:2.1.1-1) unstable; urgency=low
 
   * New upstream release.

commit 493822998184a1d79d6774686983cbd41930f253
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Tue Jul 10 09:58:46 2007 -0700

    Bump to 2.1.2.

diff --git a/configure.ac b/configure.ac
index ec55eb7..50dbeec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-nv],
-        2.1.1,
+        2.1.2,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-video-nv)
 

commit d0d4e37accc697108e03c2ee7fdc0edf1f309620
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Tue Jul 10 09:48:19 2007 -0700

    More GeForce 8 series mobile chips.

diff --git a/src/nv_driver.c b/src/nv_driver.c
index 28c46d1..47d0fbb 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -345,10 +345,17 @@ static SymTabRec NVKnownChipsets[] =
   { 0x10DE0400, "GeForce 8600 GTS" },
   { 0x10DE0402, "GeForce 8600 GT" },
   { 0x10DE0407, "GeForce 8600M GT" },
+  { 0x10DE040B, "Quadro NVS 320M" },
   { 0x10DE0421, "GeForce 8500 GT" },
   { 0x10DE0422, "GeForce 8400 GS" },
   { 0x10DE0423, "GeForce 8300 GS" },
+  { 0x10DE0425, "GeForce 8600M GS" },
+  { 0x10DE0426, "GeForce 8400M GT" },
+  { 0x10DE0427, "GeForce 8400M GS" },
   { 0x10DE0428, "GeForce 8400M G" },
+  { 0x10DE0429, "Quadro NVS 140M" },
+  { 0x10DE042A, "Quadro NVS 130M" },
+  { 0x10DE042B, "Quadro NVS 135M" },
 
   {-1, NULL}
 };

commit e77a2d9b62bc65062e7e2167642be5ab75ac4864
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Tue Jul 10 00:41:21 2007 -0700

    G80: Add a dithering property and corresponding config file option.

diff --git a/man/nv.man b/man/nv.man
index e9bcec9..54b637f 100644
--- a/man/nv.man
+++ b/man/nv.man
@@ -157,6 +157,11 @@ If you choose to use EXA, you might also consider setting
 .B Option \*qMigrationHeuristic\*q \*qgreedy\*q
 to improve performance.
 Default: XAA.
+.TP
+.BI "Option \*qFPDither\*q \*q" boolean \*q
+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.
 .\" ******************** end G80 section ********************
 .
 .SH "SEE ALSO"
diff --git a/src/g80_display.c b/src/g80_display.c
index d10f2d6..04ae3ec 100644
--- a/src/g80_display.c
+++ b/src/g80_display.c
@@ -41,6 +41,7 @@ typedef struct G80CrtcPrivRec {
     int pclk; /* Target pixel clock in kHz */
     Bool cursorVisible;
     Bool skipModeFixup;
+    Bool dither;
 } G80CrtcPrivRec, *G80CrtcPrivPtr;
 
 static void G80CrtcShowHideCursor(xf86CrtcPtr crtc, Bool show, Bool update);
@@ -362,6 +363,7 @@ G80CrtcModeSet(xf86CrtcPtr crtc, DisplayModePtr mode,
         case 16: C(0x00000870 + headOff, 0xE800); break;
         case 24: C(0x00000870 + headOff, 0xCF00); break;
     }
+    G80CrtcSetDither(crtc, pPriv->dither, FALSE);
     if((adjusted_mode->Flags & V_DBLSCAN) || (adjusted_mode->Flags & V_INTERLACE) ||
        adjusted_mode->CrtcHDisplay != HDisplay || adjusted_mode->CrtcVDisplay != VDisplay) {
         C(0x000008A4 + headOff, 9);
@@ -478,6 +480,19 @@ G80CrtcSkipModeFixup(xf86CrtcPtr crtc)
     pPriv->skipModeFixup = TRUE;
 }
 
+void
+G80CrtcSetDither(xf86CrtcPtr crtc, Bool dither, Bool update)
+{
+    ScrnInfoPtr pScrn = crtc->scrn;
+    G80CrtcPrivPtr pPriv = crtc->driver_private;
+    const int headOff = 0x400 * G80CrtcGetHead(crtc);
+
+    pPriv->dither = dither;
+
+    C(0x000008A0 + headOff, dither ? 0x11 : 0);
+    if(update) C(0x00000080, 0);
+}
+
 static void
 G80CrtcCommit(xf86CrtcPtr crtc)
 {
@@ -524,6 +539,7 @@ static const xf86CrtcFuncsRec g80_crtc_funcs = {
 void
 G80DispCreateCrtcs(ScrnInfoPtr pScrn)
 {
+    G80Ptr pNv = G80PTR(pScrn);
     Head head;
     xf86CrtcPtr crtc;
     G80CrtcPrivPtr g80_crtc;
@@ -535,6 +551,7 @@ G80DispCreateCrtcs(ScrnInfoPtr pScrn)
 
         g80_crtc = xnfcalloc(sizeof(*g80_crtc), 1);
         g80_crtc->head = head;
+        g80_crtc->dither = pNv->Dither;
         crtc->driver_private = g80_crtc;
     }
 }
diff --git a/src/g80_display.h b/src/g80_display.h
index d6f24f4..4ab1d55 100644
--- a/src/g80_display.h
+++ b/src/g80_display.h
@@ -12,5 +12,6 @@ void G80CrtcEnableCursor(xf86CrtcPtr, Bool update);
 void G80CrtcDisableCursor(xf86CrtcPtr, Bool update);
 void G80CrtcSetCursorPosition(xf86CrtcPtr, int x, int y);
 void G80CrtcSkipModeFixup(xf86CrtcPtr);
+void G80CrtcSetDither(xf86CrtcPtr, Bool dither, Bool update);
 
 void G80DispCreateCrtcs(ScrnInfoPtr pScrn);
diff --git a/src/g80_driver.c b/src/g80_driver.c
index 7801602..8a494b9 100644
--- a/src/g80_driver.c
+++ b/src/g80_driver.c
@@ -105,12 +105,14 @@ typedef enum {
     OPTION_HW_CURSOR,
     OPTION_NOACCEL,
     OPTION_ACCEL_METHOD,
+    OPTION_FP_DITHER,
 } 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 }
 };
 
@@ -313,6 +315,8 @@ G80PreInit(ScrnInfoPtr pScrn, int flags)
         goto fail;
     }
 
+    pNv->Dither = xf86ReturnOptValBool(pNv->Options, OPTION_FP_DITHER, FALSE);
+
     /* Set the bits per RGB for 8bpp mode */
     if(pScrn->depth == 8)
         pScrn->rgbBits = 8;
diff --git a/src/g80_sor.c b/src/g80_sor.c
index 5ff7318..c4c640c 100644
--- a/src/g80_sor.c
+++ b/src/g80_sor.c
@@ -27,6 +27,7 @@
 
 #define DPMS_SERVER
 #include <X11/extensions/dpms.h>
+#include <X11/Xatom.h>
 
 #include "g80_type.h"
 #include "g80_display.h"
@@ -200,6 +201,67 @@ G80SorGetLVDSModes(xf86OutputPtr output)
     return xf86DuplicateMode(pPriv->nativeMode);
 }
 
+#ifdef RANDR_12_INTERFACE
+#define MAKE_ATOM(a) MakeAtom((a), sizeof(a) - 1, TRUE);
+
+struct property {
+    Atom atom;
+    INT32 range[2];
+};
+
+static struct {
+    struct property dither;
+} properties;
+
+static void
+G80SorCreateResources(xf86OutputPtr output)
+{
+    ScrnInfoPtr pScrn = output->scrn;
+    G80Ptr pNv = G80PTR(pScrn);
+    int data, err;
+
+    properties.dither.atom = MAKE_ATOM("dither");
+    properties.dither.range[0] = 0;
+    properties.dither.range[1] = 1;
+    err = RRConfigureOutputProperty(output->randr_output,
+                                    properties.dither.atom, FALSE, TRUE, FALSE,
+                                    2, properties.dither.range);
+    if(err)
+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                   "Failed to configure dithering property for %s: error %d\n",
+                   output->name, err);
+
+    // Set the default value
+    data = pNv->Dither;
+    err = RRChangeOutputProperty(output->randr_output, properties.dither.atom,
+                                 XA_INTEGER, 32, PropModeReplace, 1, &data,
+                                 FALSE, FALSE);
+    if(err)
+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                   "Failed to set dithering property for %s: error %d\n",
+                   output->name, err);
+}
+
+static Bool
+G80SorSetProperty(xf86OutputPtr output, Atom prop, RRPropertyValuePtr val)
+{
+    if(prop == properties.dither.atom) {
+        INT32 i;
+
+        if(val->type != XA_INTEGER || val->format != 32 || val->size != 1)
+            return FALSE;
+
+        i = *(INT32*)val->data;
+        if(i < properties.dither.range[0] || i > properties.dither.range[1])
+            return FALSE;
+
+        G80CrtcSetDither(output->crtc, i, TRUE);
+    }
+
+    return TRUE;
+}
+#endif // RANDR_12_INTERFACE
+
 static const xf86OutputFuncsRec G80SorTMDSOutputFuncs = {
     .dpms = G80SorDPMSSet,
     .save = NULL,
@@ -211,6 +273,10 @@ static const xf86OutputFuncsRec G80SorTMDSOutputFuncs = {
     .mode_set = G80SorModeSet,
     .detect = G80SorDetect,
     .get_modes = G80OutputGetDDCModes,
+#ifdef RANDR_12_INTERFACE
+    .create_resources = G80SorCreateResources,
+    .set_property = G80SorSetProperty,
+#endif
     .destroy = G80SorDestroy,
 };
 
@@ -225,6 +291,10 @@ static const xf86OutputFuncsRec G80SorLVDSOutputFuncs = {
     .mode_set = G80SorModeSet,
     .detect = G80SorLVDSDetect,
     .get_modes = G80SorGetLVDSModes,
+#ifdef RANDR_12_INTERFACE
+    .create_resources = G80SorCreateResources,
+    .set_property = G80SorSetProperty,
+#endif
     .destroy = G80SorDestroy,
 };
 
diff --git a/src/g80_type.h b/src/g80_type.h
index 819a9f6..0830ecc 100644
--- a/src/g80_type.h
+++ b/src/g80_type.h
@@ -59,6 +59,7 @@ typedef struct G80Rec {
     Bool                HWCursor;
     Bool                NoAccel;
     AccelMethod         AccelMethod;
+    Bool                Dither;
 
     /* XAA */
     XAAInfoRecPtr       xaa;

commit e29b56820909668b062fdba72458ee9483a4ae44
Author: Brice Goglin <Brice.Goglin@ens-lyon.org>
Date:   Mon Jul 9 21:50:47 2007 +0200

    Minor fixes in the patching system.
    
     * Fix debian/rules to not be confused by ~/.quiltrc or QUILT_PATCHES (as in #369920).
     * Display which patches are applied and removed instead of just the first one (for #428090).

diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk
index 2930c1e..5f13302 100755
--- a/debian/xsfbs/xsfbs.mk
+++ b/debian/xsfbs/xsfbs.mk
@@ -21,6 +21,11 @@
 # Pass $(DH_OPTIONS) into the environment for debhelper's benefit.
 export DH_OPTIONS
 
+# force quilt to not use ~/.quiltrc
+QUILT = quilt --quiltrc /dev/null
+# force QUILT_PATCHES to the default in case it is exported in the environment
+QUILT_PATCHES = patches/
+
 # Set up parameters for the upstream build environment.
 
 # Determine (source) package name from Debian changelog.
@@ -140,9 +145,9 @@ $(STAMP_DIR)/patch: $(STAMP_DIR)/prepare
 		echo "Couldn't find quilt. Please install it or add it to the build-depends for this package."; \
 		exit 1; \
 	fi; \
-	if quilt next >/dev/null 2>&1; then \
+	if $(QUILT) next >/dev/null 2>&1; then \
 	  echo -n "Applying patches..."; \
-	  if quilt push -a -v 2>&1 | tee $(STAMP_DIR)/log/patch; then \
+	  if $(QUILT) push -a -v 2>&1 | tee $(STAMP_DIR)/log/patch; then \
 	    echo "successful."; \
 	  else \
 	    echo "failed! (check $(STAMP_DIR)/log/patch for details)"; \
@@ -159,7 +164,7 @@ unpatch:
 	rm -f $(STAMP_DIR)/patch
 	@echo -n "Unapplying patches..."; \
 	if [ -e $(STAMP_DIR)/patches/applied-patches ]; then \
-	  if quilt pop -a -v 2>&1 | tee $(STAMP_DIR)/log/unpatch; then \
+	  if $(QUILT) pop -a -v 2>&1 | tee $(STAMP_DIR)/log/unpatch; then \
 	    echo "successful."; \
 	  else \
 	    echo "failed! (check $(STAMP_DIR)/log/unpatch for details)"; \
@@ -295,17 +300,17 @@ patch-audit: prepare unpatch
 	@echo -n "Auditing patches..."; \
 	>$(STAMP_DIR)/log/patch; \
 	FUZZY=; \
-	while [ -n "$$(quilt next)" ]; do \
-	  RESULT=$$(quilt push -v | tee -a $(STAMP_DIR)/log/patch | grep ^Hunk | sed 's/^Hunk.*\(succeeded\|FAILED\).*/\1/');\
+	while [ -n "$$($(QUILT) next)" ]; do \
+	  RESULT=$$($(QUILT) push -v | tee -a $(STAMP_DIR)/log/patch | grep ^Hunk | sed 's/^Hunk.*\(succeeded\|FAILED\).*/\1/');\
 	  case "$$RESULT" in \
 	    succeeded) \
-	      echo "fuzzy patch: $$(quilt top)" \
-	        | tee -a $(STAMP_DIR)/log/$$(quilt top); \
+	      echo "fuzzy patch: $$($(QUILT) top)" \
+	        | tee -a $(STAMP_DIR)/log/$$($(QUILT) top); \
 	      FUZZY=yes; \
 	      ;; \
 	    FAILED) \
-	      echo "broken patch: $$(quilt next)" \
-	        | tee -a $(STAMP_DIR)/log/$$(quilt next); \
+	      echo "broken patch: $$($(QUILT) next)" \
+	        | tee -a $(STAMP_DIR)/log/$$($(QUILT) next); \
 	      exit 1; \
 	      ;; \
 	  esac; \

commit 16d97b30b91da02d5a3edc2b895cbd4a1995f62d
Author: Brice Goglin <Brice.Goglin@ens-lyon.org>
Date:   Mon Jul 9 19:06:05 2007 +0200

    Fix displaying of patches applied by quilt.
    
    As requested in bug #428090, we silence the output of quilt next
    and display the output of quilt push/pop.

diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk
index 63dde45..2930c1e 100755
--- a/debian/xsfbs/xsfbs.mk
+++ b/debian/xsfbs/xsfbs.mk
@@ -140,9 +140,9 @@ $(STAMP_DIR)/patch: $(STAMP_DIR)/prepare
 		echo "Couldn't find quilt. Please install it or add it to the build-depends for this package."; \
 		exit 1; \
 	fi; \
-	if quilt next; then \
+	if quilt next >/dev/null 2>&1; then \
 	  echo -n "Applying patches..."; \
-	  if quilt push -a -v >$(STAMP_DIR)/log/patch 2>&1; then \
+	  if quilt push -a -v 2>&1 | tee $(STAMP_DIR)/log/patch; then \
 	    echo "successful."; \
 	  else \
 	    echo "failed! (check $(STAMP_DIR)/log/patch for details)"; \
@@ -159,7 +159,7 @@ unpatch:
 	rm -f $(STAMP_DIR)/patch
 	@echo -n "Unapplying patches..."; \
 	if [ -e $(STAMP_DIR)/patches/applied-patches ]; then \
-	  if quilt pop -a -v >$(STAMP_DIR)/log/unpatch 2>&1; then \
+	  if quilt pop -a -v 2>&1 | tee $(STAMP_DIR)/log/unpatch; then \
 	    echo "successful."; \
 	  else \
 	    echo "failed! (check $(STAMP_DIR)/log/unpatch for details)"; \

commit c1503c864d495f8a3e5380fed5cb8ca5e21a3750
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Sun Jul 8 01:28:42 2007 -0700

    GeForce 8600M GT.

diff --git a/src/nv_driver.c b/src/nv_driver.c
index f0f119f..28c46d1 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -344,6 +344,7 @@ static SymTabRec NVKnownChipsets[] =
   { 0x10DE019E, "Quadro FX 4600" },
   { 0x10DE0400, "GeForce 8600 GTS" },
   { 0x10DE0402, "GeForce 8600 GT" },
+  { 0x10DE0407, "GeForce 8600M GT" },
   { 0x10DE0421, "GeForce 8500 GT" },
   { 0x10DE0422, "GeForce 8400 GS" },
   { 0x10DE0423, "GeForce 8300 GS" },

commit 42dffde988176a3f85b0586ecb8d672b74050760
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Sun Jul 8 00:53:00 2007 -0700

    Work around more MacBook wackiness.
    
    Turn off more corrupt the framebuffer mode.  Don't mess with the pixel clock for
    LVDS as long as we're trusting the VBIOS-programmed timings.

diff --git a/src/g80_driver.c b/src/g80_driver.c
index 0f97a2d..7801602 100644
--- a/src/g80_driver.c
+++ b/src/g80_driver.c
@@ -829,6 +829,7 @@ G80ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
     AvailFBArea.y2 = pNv->offscreenHeight;
     xf86InitFBManager(pScreen, &AvailFBArea);
 
+    pNv->reg[0x00001708/4] = 0;
     for(i = 0; i < 8; i++)
         pNv->reg[0x00001900/4 + i] = 0;
 
diff --git a/src/g80_output.c b/src/g80_output.c
index 11bdb25..448864f 100644
--- a/src/g80_output.c
+++ b/src/g80_output.c
@@ -158,7 +158,8 @@ void
 G80OutputSetPClk(xf86OutputPtr output, int pclk)
 {
     G80OutputPrivPtr pPriv = output->driver_private;
-    pPriv->set_pclk(output, pclk);
+    if(pPriv->set_pclk)
+        pPriv->set_pclk(output, pclk);
 }
 
 int
diff --git a/src/g80_sor.c b/src/g80_sor.c
index 2ab9f2e..5ff7318 100644
--- a/src/g80_sor.c
+++ b/src/g80_sor.c
@@ -38,7 +38,7 @@ G80SorSetPClk(xf86OutputPtr output, int pclk)
     G80Ptr pNv = G80PTR(output->scrn);
     G80OutputPrivPtr pPriv = output->driver_private;
     const int orOff = 0x800 * pPriv->or;
-    const int limit = pPriv->panelType == LVDS ? 112000 : 165000;
+    const int limit = 165000;
 
     pNv->reg[(0x00614300+orOff)/4] = (pclk > limit) ? 0x101 : 0;
 }
@@ -284,7 +284,8 @@ G80CreateSor(ScrnInfoPtr pScrn, ORNum or, PanelType panelType)
     pPriv->or = or;
     pPriv->panelType = panelType;
     pPriv->cached_status = XF86OutputStatusUnknown;
-    pPriv->set_pclk = G80SorSetPClk;
+    if(panelType == TMDS)
+        pPriv->set_pclk = G80SorSetPClk;
     output->driver_private = pPriv;
     output->interlaceAllowed = TRUE;
     output->doubleScanAllowed = TRUE;

commit bc439899f323410b0549068cd88348e7fb62866b
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Tue Jul 3 14:03:59 2007 -0700

    Put the GPU into don't corrupt the framebuffer mode to work around MacBook wackiness.

diff --git a/src/g80_driver.c b/src/g80_driver.c
index e703ea8..0f97a2d 100644
--- a/src/g80_driver.c
+++ b/src/g80_driver.c
@@ -769,7 +769,7 @@ G80ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
     ScrnInfoPtr pScrn;
     G80Ptr pNv;
     CARD32 pitch;
-    int visualMask;
+    int visualMask, i;
     BoxRec AvailFBArea;
 
     /* First get the ScrnInfoRec */
@@ -829,6 +829,9 @@ G80ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
     AvailFBArea.y2 = pNv->offscreenHeight;
     xf86InitFBManager(pScreen, &AvailFBArea);
 
+    for(i = 0; i < 8; i++)
+        pNv->reg[0x00001900/4 + i] = 0;
+
     if(!pNv->NoAccel) {
         G80InitHW(pScrn);
         switch(pNv->AccelMethod) {



Reply to: