6540484: ast_drv.so in S10 U4 build3 and nv_60 will cause GUI garbled up nv_65
authorHenry Zhao <Henry.Zhao@Sun.COM>
Mon, 07 May 2007 17:53:20 -0700
changeset 154 ae2bd8710ae2
parent 153 a5dea932e7b6
child 155 590ece734ed7
6540484: ast_drv.so in S10 U4 build3 and nv_60 will cause GUI garbled up 6554441: Need to fix these problems in 6535006.patch
open-src/xserver/xorg/6535006.patch
open-src/xserver/xorg/6540484.patch
open-src/xserver/xorg/Makefile
--- a/open-src/xserver/xorg/6535006.patch	Sat May 05 09:12:29 2007 -0700
+++ b/open-src/xserver/xorg/6535006.patch	Mon May 07 17:53:20 2007 -0700
@@ -1,29 +1,12 @@
---- hw/xfree86/common/xf86Mode.c	Tue Mar 27 17:16:56 2007
-+++ hw/xfree86/common/xf86Mode.c	Thu Mar 29 16:19:38 2007
-@@ -1508,14 +1508,7 @@
+--- hw/xfree86/common/xf86Mode.c.orig	Fri May  4 17:59:09 2007
++++ hw/xfree86/common/xf86Mode.c	Fri May  4 17:58:42 2007
+@@ -1508,7 +1508,45 @@
  	virtX = virtualX;
  	virtY = virtualY;
  	scrp->virtualFrom = X_CONFIG;
 -    } else if (!modeNames || !*modeNames) {
--	/* No virtual size given in the config, try to infer */
--	/* XXX this doesn't take m{in,ax}Pitch into account; oh well */
--	inferred_virtual = inferVirtualSize(scrp, availModes, &virtX, &virtY);
--	if (inferred_virtual)
--	    linePitch = miScanLineWidth(virtX, virtY, minPitch, apertureSize,
--					BankFormat, pitchInc);
--    }
 +    } 
- 
-     /* Print clock ranges and scaled clocks */
-     xf86ShowClockRanges(scrp, clockRanges);
-@@ -1593,12 +1586,40 @@
- 	xf86DeleteMode(&scrp->modes, scrp->modes);
-     endp = &scrp->modes;
-     last = NULL;
--    if (UseDefaultRate && ((modeNames == NULL) || (*modeNames == NULL))) {
--	modeNames = xnfcalloc(2, sizeof(char *));
--	modeNames[0] = strdup("1024x768");
--	modeNames[1] = NULL;
++
 +    if  ((modeNames == NULL) || (*modeNames == NULL)) {
 +	if (UseDefaultRate) {
 +	    modeNames = xnfcalloc(2, sizeof(char *));
@@ -38,10 +21,12 @@
 +		};
 +	    const int ntypes = sizeof(types) / sizeof(int);
 +	    int n, type;
++	    DisplayModePtr modes = scrp->modePool ? scrp->modePool : availModes;
 +
 +	    for (n = 0; n < ntypes; n++) {
-+	    	for (p = scrp->modePool;  p != NULL;  p = p->next) {
-+		    type = types[n];
++	        type = types[n];
++		
++	    	for (p = modes;  p != NULL;  p = p->next) {
 +	    	    if ((p->type & type) == type) {
 +		    	mode_pref = strdup(p->name);
 +		    	break;
@@ -56,25 +41,23 @@
 +	    	modeNames[1] = NULL;
 +	    }
 +	}
-     }
++    }
++
++    if ((virtualY <= 0) && (!modeNames || !*modeNames)) {
+ 	/* No virtual size given in the config, try to infer */
+ 	/* XXX this doesn't take m{in,ax}Pitch into account; oh well */
+ 	inferred_virtual = inferVirtualSize(scrp, availModes, &virtX, &virtY);
+@@ -1593,12 +1631,7 @@
+ 	xf86DeleteMode(&scrp->modes, scrp->modes);
+     endp = &scrp->modes;
+     last = NULL;
+-    if (UseDefaultRate && ((modeNames == NULL) || (*modeNames == NULL))) {
+-	modeNames = xnfcalloc(2, sizeof(char *));
+-	modeNames[0] = strdup("1024x768");
+-	modeNames[1] = NULL;
+-    }
 -    if (modeNames != NULL) {
 +    if ((modeNames != NULL) && (*modeNames != NULL)) {
  	for (i = 0; modeNames[i] != NULL; i++) {
  	    userModes = TRUE;
  	    new = xnfcalloc(1, sizeof(DisplayModeRec));
-@@ -1613,6 +1634,15 @@
- 	}
-     }
- 
-+    if ((virtualY = 0) && (!modeNames || !*modeNames)) {
-+	/* No virtual size given in the config, try to infer */
-+	/* XXX this doesn't take m{in,ax}Pitch into account; oh well */
-+	inferred_virtual = inferVirtualSize(scrp, availModes, &virtX, &virtY);
-+	if (inferred_virtual)
-+	    linePitch = miScanLineWidth(virtX, virtY, minPitch, apertureSize,
-+					BankFormat, pitchInc);
-+    }
-+
-     /* Lookup each mode */
- #ifdef RANDR
-     if (!xf86Info.disableRandR	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/xserver/xorg/6540484.patch	Mon May 07 17:53:20 2007 -0700
@@ -0,0 +1,11 @@
+--- hw/xfree86/common/xf86Mode.c.orig	Fri May  4 18:05:14 2007
++++ hw/xfree86/common/xf86Mode.c	Fri May  4 18:05:35 2007
+@@ -1865,7 +1865,7 @@
+ 		       virtX, virtY, vx, vy);
+ 	    virtX = vx;
+ 	    virtY = vy;
+-	    linePitch = miScanLineWidth(vx, vy, linePitch, apertureSize,
++	    linePitch = miScanLineWidth(vx, vy, minPitch, apertureSize,
+ 					BankFormat, pitchInc);
+ 	}
+     }
--- a/open-src/xserver/xorg/Makefile	Sat May 05 09:12:29 2007 -0700
+++ b/open-src/xserver/xorg/Makefile	Mon May 07 17:53:20 2007 -0700
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.39	07/04/19
+# @(#)Makefile	1.40	07/05/04
 #
 
 PWD:sh=pwd
@@ -97,7 +97,8 @@
 	cfbmskbits.patch \
 	xf86ModesAdd.patch \
 	lg3d.patch \
-	6535006.patch
+	6535006.patch \
+	6540484.patch
 
 # Directory created by unpacking source
 SOURCE_DIR=$(BUILD_DIR)/$(MODULE_NAME)-$(XORGSERVER_VERS)