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