From: Adam Jackson 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) {