6450662: auto-config: radeon - only one resolution is provided in MergedFB mode without config file
authorHenry Zhao <Henry.Zhao@Sun.COM>
Mon, 07 Aug 2006 13:38:40 -0700
changeset 44 b90f31a61da5
parent 43 ddc67b23f937
child 45 56271cedb955
6450662: auto-config: radeon - only one resolution is provided in MergedFB mode without config file
XORG_NV/sun-src/xf86-video-ati-6.5.8.0/src/radeon_mergedfb.c
--- a/XORG_NV/sun-src/xf86-video-ati-6.5.8.0/src/radeon_mergedfb.c	Thu Aug 03 18:11:27 2006 -0700
+++ b/XORG_NV/sun-src/xf86-video-ati-6.5.8.0/src/radeon_mergedfb.c	Mon Aug 07 13:38:40 2006 -0700
@@ -536,14 +536,26 @@
    if(str != NULL) {
       return(RADEONGenerateModeListFromMetaModes(pScrn, str, i, j, srel));
    } else {
-      xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-	"No MetaModes given, linking %s modes by default\n",
-	(srel == radeonClone) ? "largest common" :
-	   (info->NonRect ?
+	if (srel == radeonClone ) {
+      	   DisplayModePtr p, q, result = NULL;
+
+      	   xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+		"Clone mode, list all common modes\n");
+	   for (p = i; p->next != i; p = p->next)
+		for (q = j; q->next != j; q = q->next)
+		   if ((p->HDisplay == q->HDisplay) &&
+			(p->VDisplay == q->VDisplay))
+		   	result = RADEONCopyModeNLink(pScrn, result, p, q, srel);
+	   return result;
+	} else {
+      	   xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+		"No MetaModes given, linking %s modes by default\n",
+	   	(info->NonRect ?
 		(((srel == radeonLeftOf) || (srel == radeonRightOf)) ? "widest" :  "tallest")
 		:
 		(((srel == radeonLeftOf) || (srel == radeonRightOf)) ? "widest common" :  "tallest common")) );
-      return(RADEONGenerateModeListFromLargestModes(pScrn, i, j, srel));
+           return(RADEONGenerateModeListFromLargestModes(pScrn, i, j, srel));
+	}
    }
 }