|
|
99319d2 |
--- xorg-server-1.2.0/hw/xfree86/ddc/ddcProperty.c.maxpixclock 2007-01-22 22:13:15.000000000 -0500
|
|
|
99319d2 |
+++ xorg-server-1.2.0/hw/xfree86/ddc/ddcProperty.c 2007-01-23 12:35:00.000000000 -0500
|
|
|
99319d2 |
@@ -303,7 +303,7 @@
|
|
|
99319d2 |
{
|
|
|
99319d2 |
DisplayModePtr Modes = NULL, Mode;
|
|
|
99319d2 |
int i, clock;
|
|
|
99319d2 |
- Bool have_hsync = FALSE, have_vrefresh = FALSE;
|
|
|
99319d2 |
+ Bool have_hsync = FALSE, have_vrefresh = FALSE, have_maxpixclock = FALSE;
|
|
|
99319d2 |
int preferred;
|
|
|
99319d2 |
|
|
|
99319d2 |
if (!Monitor || !DDC)
|
|
|
99319d2 |
@@ -332,6 +332,7 @@
|
|
|
99319d2 |
/* Skip EDID ranges if they were specified in the config file */
|
|
|
99319d2 |
have_hsync = (Monitor->nHsync != 0);
|
|
|
99319d2 |
have_vrefresh = (Monitor->nVrefresh != 0);
|
|
|
99319d2 |
+ have_maxpixclock = (Monitor->maxPixClock != 0);
|
|
|
99319d2 |
|
|
|
99319d2 |
/* Go through the detailed monitor sections */
|
|
|
99319d2 |
for (i = 0; i < DET_TIMINGS; i++)
|
|
|
99319d2 |
@@ -366,7 +367,7 @@
|
|
|
99319d2 |
}
|
|
|
99319d2 |
|
|
|
99319d2 |
clock = DDC->det_mon[i].section.ranges.max_clock * 1000;
|
|
|
99319d2 |
- if (clock > Monitor->maxPixClock)
|
|
|
99319d2 |
+ if (!have_maxpixclock && clock > Monitor->maxPixClock)
|
|
|
99319d2 |
Monitor->maxPixClock = clock;
|
|
|
99319d2 |
|
|
|
99319d2 |
break;
|
|
|
99319d2 |
--- xorg-server-1.2.0/hw/xfree86/common/xf86Mode.c.maxpixclock 2007-01-22 22:13:15.000000000 -0500
|
|
|
99319d2 |
+++ xorg-server-1.2.0/hw/xfree86/common/xf86Mode.c 2007-01-23 12:33:41.000000000 -0500
|
|
|
99319d2 |
@@ -1408,6 +1408,12 @@
|
|
|
99319d2 |
scrp->monitor->vrefresh[i].lo,
|
|
|
99319d2 |
scrp->monitor->vrefresh[i].hi);
|
|
|
99319d2 |
}
|
|
|
99319d2 |
+ if (scrp->monitor->maxPixClock) {
|
|
|
99319d2 |
+ xf86DrvMsg(scrp->scrnIndex, X_INFO,
|
|
|
99319d2 |
+ "%s: Using maximum pixel clock of %.2f MHz\n",
|
|
|
99319d2 |
+ scrp->monitor->id,
|
|
|
99319d2 |
+ (float)scrp->monitor->maxPixClock / 1000.0);
|
|
|
99319d2 |
+ }
|
|
|
99319d2 |
}
|
|
|
99319d2 |
|
|
|
99319d2 |
/*
|
|
|
99319d2 |
--- xorg-server-1.2.0/hw/xfree86/common/xf86Config.c.maxpixclock 2007-01-22 22:13:15.000000000 -0500
|
|
|
99319d2 |
+++ xorg-server-1.2.0/hw/xfree86/common/xf86Config.c 2007-01-23 12:33:41.000000000 -0500
|
|
|
99319d2 |
@@ -2211,12 +2211,15 @@
|
|
|
99319d2 |
}
|
|
|
99319d2 |
|
|
|
99319d2 |
typedef enum {
|
|
|
99319d2 |
- MON_REDUCEDBLANKING
|
|
|
99319d2 |
+ MON_REDUCEDBLANKING,
|
|
|
99319d2 |
+ MON_MAX_PIX_CLOCK,
|
|
|
99319d2 |
} MonitorValues;
|
|
|
99319d2 |
|
|
|
99319d2 |
static OptionInfoRec MonitorOptions[] = {
|
|
|
99319d2 |
{ MON_REDUCEDBLANKING, "ReducedBlanking", OPTV_BOOLEAN,
|
|
|
99319d2 |
{0}, FALSE },
|
|
|
99319d2 |
+ { MON_MAX_PIX_CLOCK, "MaxPixClock", OPTV_FREQ,
|
|
|
99319d2 |
+ {0}, FALSE },
|
|
|
99319d2 |
{ -1, NULL, OPTV_NONE,
|
|
|
99319d2 |
{0}, FALSE },
|
|
|
99319d2 |
};
|
|
|
99319d2 |
@@ -2363,11 +2366,11 @@
|
|
|
99319d2 |
return FALSE;
|
|
|
99319d2 |
}
|
|
|
99319d2 |
|
|
|
99319d2 |
- /* Check wether this Monitor accepts Reduced Blanking modelines */
|
|
|
99319d2 |
xf86ProcessOptions(-1, monitorp->options, MonitorOptions);
|
|
|
99319d2 |
-
|
|
|
99319d2 |
xf86GetOptValBool(MonitorOptions, MON_REDUCEDBLANKING,
|
|
|
99319d2 |
&monitorp->reducedblanking);
|
|
|
99319d2 |
+ xf86GetOptValFreq(MonitorOptions, MON_MAX_PIX_CLOCK, OPTUNITS_KHZ,
|
|
|
99319d2 |
+ &monitorp->maxPixClock);
|
|
|
99319d2 |
return TRUE;
|
|
|
99319d2 |
}
|
|
|
99319d2 |
|