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
--- 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)