Blob Blame History Raw
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Use the global Modes list when determining preferred mode.

---
diff -up xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c.da xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c
--- xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c.da	2007-09-26 17:12:44.000000000 +1000
+++ xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c	2007-09-26 17:14:44.000000000 +1000
@@ -1214,6 +1214,23 @@ xf86SortModes (DisplayModePtr input)
     return output;
 }
 
+static char *
+preferredMode(ScrnInfoPtr pScrn, xf86OutputPtr output)
+{
+    char *preferred_mode = NULL;
+
+    /* Check for a configured preference for a particular mode */
+    preferred_mode = xf86GetOptValString (output->options,
+					  OPTION_PREFERRED_MODE);
+    if (preferred_mode)
+	return preferred_mode;
+
+    if (pScrn->display->modes && *pScrn->display->modes)
+	preferred_mode = *pScrn->display->modes;
+
+    return preferred_mode;
+}
+
 _X_EXPORT void
 xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
 {
@@ -1395,8 +1412,7 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, 
 	output->probed_modes = xf86SortModes (output->probed_modes);
 	
 	/* Check for a configured preference for a particular mode */
-	preferred_mode = xf86GetOptValString (output->options,
-					      OPTION_PREFERRED_MODE);
+	preferred_mode = preferredMode(scrn, output);
 
 	if (preferred_mode)
 	{