rpms/xorg-x11-server/devel xorg-x11-server-1.1.0-edid-mode-injection-2.patch, 1.2, 1.3 xorg-x11-server.spec, 1.138, 1.139
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Thu Aug 3 23:18:12 UTC 2006
Author: ajackson
Update of /cvs/dist/rpms/xorg-x11-server/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv26111
Modified Files:
xorg-x11-server-1.1.0-edid-mode-injection-2.patch
xorg-x11-server.spec
Log Message:
* Wed Aug 2 2006 Adam Jackson <ajackson at redhat.com> 1.1.1-15.fc6
- xorg-x11-server-1.1.0-edid-mode-injection-2.patch: Allow HorizSync and
VertRefresh to be overridden independently.
xorg-x11-server-1.1.0-edid-mode-injection-2.patch:
common/xf86Config.c | 1
common/xf86Mode.c | 6 ++++
common/xf86str.h | 1
ddc/ddcProperty.c | 64 ++++++++++++++++++++++++++++++++++++++--------------
4 files changed, 54 insertions(+), 18 deletions(-)
Index: xorg-x11-server-1.1.0-edid-mode-injection-2.patch
===================================================================
RCS file: /cvs/dist/rpms/xorg-x11-server/devel/xorg-x11-server-1.1.0-edid-mode-injection-2.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- xorg-x11-server-1.1.0-edid-mode-injection-2.patch 26 Jun 2006 23:22:28 -0000 1.2
+++ xorg-x11-server-1.1.0-edid-mode-injection-2.patch 3 Aug 2006 23:18:09 -0000 1.3
@@ -4,18 +4,62 @@
elsewhere such that recording it makes your screen VERY VERY BRIGHT.
* Record the maximum dot clock of the monitor, and filter by it.
* De-fang an open-coded reduced-blanking check to not cripple LCDs.
+* Allow HorizSync and VertRefresh to be overridden independently.
This probably needs a second glance before pushing it upstream, and of
course this depends on the first -edid- patch. - ajax
---- xorg-server-1.1.0/hw/xfree86/ddc/ddcProperty.c.edid2 2006-06-26 16:59:05.000000000 -0400
-+++ xorg-server-1.1.0/hw/xfree86/ddc/ddcProperty.c 2006-06-26 16:59:33.000000000 -0400
-@@ -296,14 +296,18 @@
+--- xorg-server-1.1.1/hw/xfree86/common/xf86Config.c.edid2 2006-07-05 14:38:47.000000000 -0400
++++ xorg-server-1.1.1/hw/xfree86/common/xf86Config.c 2006-08-02 11:51:42.000000000 -0400
+@@ -2220,6 +2220,7 @@
+ monitorp->heightmm = conf_monitor->mon_height;
+ monitorp->reducedblanking = FALSE;
+ monitorp->options = conf_monitor->mon_option_lst;
++ monitorp->maxPixClock = 0;
+
+ /*
+ * fill in the monitor structure
+--- xorg-server-1.1.1/hw/xfree86/common/xf86str.h.edid2 2006-07-05 14:38:47.000000000 -0400
++++ xorg-server-1.1.1/hw/xfree86/common/xf86str.h 2006-08-02 11:51:42.000000000 -0400
+@@ -208,6 +208,7 @@
+ pointer options;
+ pointer DDC;
+ Bool reducedblanking; /* Allow CVT reduced blanking modes? */
++ int maxPixClock; /* in kHz, like mode->Clock */
+ } MonRec, *MonPtr;
+
+ /* the list of clock ranges */
+--- xorg-server-1.1.1/hw/xfree86/common/xf86Mode.c.edid2 2006-08-02 11:51:42.000000000 -0400
++++ xorg-server-1.1.1/hw/xfree86/common/xf86Mode.c 2006-08-02 11:51:42.000000000 -0400
+@@ -810,6 +810,9 @@
+ }
+ }
+
++ if ((monitor->maxPixClock) && (mode->Clock > monitor->maxPixClock))
++ return MODE_CLOCK_HIGH;
++
+ return MODE_OK;
+ }
+
+@@ -1573,7 +1576,8 @@
+ * horizontal timing parameters that CRTs may have
+ * problems with.
+ */
+- if ((q->type & M_T_DEFAULT) &&
++ if (!scrp->monitor->reducedblanking &&
++ (q->type & M_T_DEFAULT) &&
+ ((double)q->HTotal / (double)q->HDisplay) < 1.15)
+ continue;
+
+--- xorg-server-1.1.1/hw/xfree86/ddc/ddcProperty.c.edid2 2006-08-02 11:51:42.000000000 -0400
++++ xorg-server-1.1.1/hw/xfree86/ddc/ddcProperty.c 2006-08-02 12:00:49.000000000 -0400
+@@ -296,14 +296,19 @@
xf86DDCMonitorSet(int scrnIndex, MonPtr Monitor, xf86MonPtr DDC)
{
DisplayModePtr Modes = NULL, Mode;
- int i;
+ int i, clock;
++ Bool have_hsync = FALSE, have_vrefresh = FALSE;
if (!Monitor || !DDC)
return;
@@ -31,10 +75,61 @@
Monitor->gamma.red = DDC->features.gamma;
Monitor->gamma.green = DDC->features.gamma;
Monitor->gamma.blue = DDC->features.gamma;
-@@ -345,6 +349,15 @@
- Monitor->vrefresh[0].lo = DDC->det_mon[i].section.ranges.min_v;
- Monitor->vrefresh[0].hi = DDC->det_mon[i].section.ranges.max_v;
-
+@@ -325,25 +330,50 @@
+ Mode = DDCModesFromStandardTiming(scrnIndex, DDC->timings2);
+ Modes = xf86ModesAdd(Modes, Mode);
+
++ /* Skip EDID ranges if they were specified in the config file */
++ have_hsync = (Monitor->nHsync != 0);
++ have_vrefresh = (Monitor->nVrefresh != 0);
++
+ /* Go through the detailed monitor sections */
+ for (i = 0; i < DET_TIMINGS; i++)
+ switch (DDC->det_mon[i].type) {
+ case DS_RANGES:
+- if (Monitor->nHsync && Monitor->nVrefresh) {
+- xf86DrvMsg(scrnIndex, X_INFO, "Ignoring EDID Ranges. Using"
+- " configured ranges.\n");
+- break;
+- }
+-
+- xf86DrvMsg(scrnIndex, X_INFO, "Using EDID ranges info for Monitor"
+- " timing.\n");
+- Monitor->nHsync = 1;
+- Monitor->hsync[0].lo = DDC->det_mon[i].section.ranges.min_h;
+- Monitor->hsync[0].hi = DDC->det_mon[i].section.ranges.max_h;
+-
+- Monitor->nVrefresh = 1;
+- Monitor->vrefresh[0].lo = DDC->det_mon[i].section.ranges.min_v;
+- Monitor->vrefresh[0].hi = DDC->det_mon[i].section.ranges.max_v;
++ if (!have_hsync) {
++ if (!Monitor->nHsync)
++ xf86DrvMsg(scrnIndex, X_INFO,
++ "Using EDID range info for horizontal sync\n");
++ Monitor->nHsync++;
++ Monitor->hsync[Monitor->nHsync].lo =
++ DDC->det_mon[i].section.ranges.min_h;
++ Monitor->hsync[Monitor->nHsync].hi =
++ DDC->det_mon[i].section.ranges.max_h;
++ } else {
++ xf86DrvMsg(scrnIndex, X_INFO,
++ "Using hsync ranges from config file\n");
++ }
++
++ if (!have_vrefresh) {
++ if (!Monitor->nVrefresh)
++ xf86DrvMsg(scrnIndex, X_INFO,
++ "Using EDID range info for vertical refresh\n");
++ Monitor->nVrefresh++;
++ Monitor->vrefresh[Monitor->nVrefresh].lo =
++ DDC->det_mon[i].section.ranges.min_v;
++ Monitor->vrefresh[Monitor->nVrefresh].hi =
++ DDC->det_mon[i].section.ranges.max_v;
++ } else {
++ xf86DrvMsg(scrnIndex, X_INFO,
++ "Using vrefresh ranges from config file\n");
++ }
++
+ /*
+ * Strictly this is wrong. If the monitor reports multiple
+ * ranges, each one might have a different maximum, but I've
@@ -43,49 +138,6 @@
+ clock = DDC->det_mon[i].section.ranges.max_clock * 1000;
+ if (clock > Monitor->maxPixClock)
+ Monitor->maxPixClock = clock;
-+
+
break;
case DT:
- Mode = DDCModeFromDetailedTiming(scrnIndex,
---- xorg-server-1.1.0/hw/xfree86/common/xf86Config.c.edid2 2006-04-06 21:40:52.000000000 -0400
-+++ xorg-server-1.1.0/hw/xfree86/common/xf86Config.c 2006-06-26 16:59:05.000000000 -0400
-@@ -2220,6 +2220,7 @@
- monitorp->heightmm = conf_monitor->mon_height;
- monitorp->reducedblanking = FALSE;
- monitorp->options = conf_monitor->mon_option_lst;
-+ monitorp->maxPixClock = 0;
-
- /*
- * fill in the monitor structure
---- xorg-server-1.1.0/hw/xfree86/common/xf86Mode.c.edid2 2006-06-26 16:59:05.000000000 -0400
-+++ xorg-server-1.1.0/hw/xfree86/common/xf86Mode.c 2006-06-26 17:00:40.000000000 -0400
-@@ -810,6 +810,9 @@
- }
- }
-
-+ if ((monitor->maxPixClock) && (mode->Clock > monitor->maxPixClock))
-+ return MODE_CLOCK_HIGH;
-+
- return MODE_OK;
- }
-
-@@ -1573,7 +1576,8 @@
- * horizontal timing parameters that CRTs may have
- * problems with.
- */
-- if ((q->type & M_T_DEFAULT) &&
-+ if (!scrp->monitor->reducedblanking &&
-+ (q->type & M_T_DEFAULT) &&
- ((double)q->HTotal / (double)q->HDisplay) < 1.15)
- continue;
-
---- xorg-server-1.1.0/hw/xfree86/common/xf86str.h.edid2 2006-03-07 18:58:22.000000000 -0500
-+++ xorg-server-1.1.0/hw/xfree86/common/xf86str.h 2006-06-26 16:59:05.000000000 -0400
-@@ -208,6 +208,7 @@
- pointer options;
- pointer DDC;
- Bool reducedblanking; /* Allow CVT reduced blanking modes? */
-+ int maxPixClock; /* in kHz, like mode->Clock */
- } MonRec, *MonPtr;
-
- /* the list of clock ranges */
Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/dist/rpms/xorg-x11-server/devel/xorg-x11-server.spec,v
retrieving revision 1.138
retrieving revision 1.139
diff -u -r1.138 -r1.139
--- xorg-x11-server.spec 28 Jul 2006 21:35:38 -0000 1.138
+++ xorg-x11-server.spec 3 Aug 2006 23:18:09 -0000 1.139
@@ -678,6 +678,10 @@
# -------------------------------------------------------------------
%changelog
+* Wed Aug 2 2006 Adam Jackson <ajackson at redhat.com> 1.1.1-15.fc6
+- xorg-x11-server-1.1.0-edid-mode-injection-2.patch: Allow HorizSync and
+ VertRefresh to be overridden independently.
+
* Fri Jul 28 2006 Kevin E Martin <kem at redhat.com> - 1.1.1-14.fc6
- xorg-x11-server-1.1.1-revert-xkb-change.patch: Revert change to xkb that
broke XkbGetKeyboard().
More information about the fedora-cvs-commits
mailing list