* Wed Sep 26 2007 Dave Airlie <airlied@redhat.com> 1.3.0.0-25

- xserver-1.3.0-randr-updates.patch: Backport randr from server git
  This contains a lot of fixes since 1.3.0 went out, and saves
  us backporting each fix individually
- xserver-1.3.0-less-randr-fakerama.patch - dropped
- xorg-x11-server-1.2.0-maxpixclock-option.patch - dropped
- xserver-1.3.0-edid-quirk-backports.patch - dropped
- xserver-1.2.0-honor-displaysize.patch - dropped
- xserver-1.3.0-honor-displaysize.patch - reapply to new code layout
- xserver-1.3.0-randr12-config-hack.patch - rebased
This commit is contained in:
Dave Airlie 2007-09-26 07:33:55 +00:00
parent 2b187d056f
commit 1d8f821ba4
8 changed files with 3765 additions and 213 deletions

View File

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

View File

@ -9,7 +9,7 @@
Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.3.0.0
Release: 24%{?dist}
Release: 25%{?dist}
URL: http://www.x.org
License: MIT/X11
Group: User Interface/X
@ -52,24 +52,22 @@ Patch1005: xorg-x11-server-1.1.1-builtin-fonts.patch
Patch1006: xorg-x11-server-1.1.1-no-scanpci.patch
Patch1007: xorg-x11-server-1.1.1-spurious-libxf1bpp-link.patch
Patch1008: xorg-x11-server-1.2.0-xf86config-comment-less.patch
Patch1009: xorg-x11-server-1.2.0-maxpixclock-option.patch
Patch1010: xserver-1.3.0-no-prerelease-warning.patch
Patch1011: xserver-1.3.0-composite-version.patch
Patch1012: xserver-1.3.0-mesa7.patch
Patch1013: xserver-1.3.0-exaupgrade.patch
Patch1014: xserver-1.3.0-newglx-offscreen-pixmaps.patch
Patch1015: xserver-1.3.0-randr-updates.patch
Patch1022: xserver-1.3.0-default-dpi.patch
Patch2001: xserver-1.2.0-geode-mmx.patch
Patch2002: xserver-1.2.0-xephyr-keysym-madness.patch
Patch2003: xserver-1.2.0-vfprintf.patch
Patch2004: xserver-1.2.0-honor-displaysize.patch
Patch2006: xserver-1.3.0-less-randr-fakerama.patch
Patch2004: xserver-1.3.0-honor-displaysize.patch
Patch2007: xserver-1.3.0-randr12-config-hack.patch
Patch2008: xserver-1.3.0-randrama-no-zero-screens.patch
Patch2009: xserver-1.3.0-arm-iopl.patch
Patch2010: xserver-1.3.0-idletime.patch
Patch2011: xserver-1.3.0-edid-quirk-backports.patch
Patch2012: xserver-1.3.0-add-really-slow-bcopy.patch
Patch2013: xserver-1.3.0-document-fontpath-correctly.patch
@ -313,24 +311,22 @@ Xserver source code needed to build VNC server (Xvnc)
%patch1006 -p1 -b .no-scanpci
%patch1007 -p1 -b .xf1bpp
%patch1008 -p1 -b .comment-less
%patch1009 -p1 -b .maxpixclock
%patch1010 -p1 -b .prerelease-warning
%patch1011 -p1 -b .composite-version
%patch1012 -p1 -b .newmesa
%patch1013 -p1 -b .newexa
%patch1014 -p1 -b .offscreen-pixmaps
%patch1015 -p1 -b .randr-update
%patch1022 -p1 -b .dpi
%patch2001 -p1 -b .geode-mmx
%patch2002 -p1 -b .xephyr-keysym
%patch2003 -p1 -b .vfprintf
%patch2004 -p1 -b .displaysize
%patch2006 -p1 -b .fakerama
%patch2007 -p1 -b .randrconfig
%patch2008 -p1 -b .randrama-zero-screens
%patch2009 -p1 -b .arm
%patch2010 -p1 -b .idletime
%patch2011 -p1 -b .edid-quirks
%patch2012 -p1 -b .slow-bcopy
%patch2013 -p1 -b .fontpath-doc
@ -608,6 +604,17 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Wed Sep 26 2007 Dave Airlie <airlied@redhat.com> 1.3.0.0-25
- xserver-1.3.0-randr-updates.patch: Backport randr from server git
This contains a lot of fixes since 1.3.0 went out, and saves
us backporting each fix individually
- xserver-1.3.0-less-randr-fakerama.patch - dropped
- xorg-x11-server-1.2.0-maxpixclock-option.patch - dropped
- xserver-1.3.0-edid-quirk-backports.patch - dropped
- xserver-1.2.0-honor-displaysize.patch - dropped
- xserver-1.3.0-honor-displaysize.patch - reapply to new code layout
- xserver-1.3.0-randr12-config-hack.patch - rebased
* Mon Sep 17 2007 Adam Jackson <ajax@redhat.com> 1.3.0.0-24
- xserver-1.3.0-edid-quirk-backports.patch: Update the EDID quirks code
to match current git.

View File

@ -1,15 +0,0 @@
--- xorg-server-1.2.0/hw/xfree86/ddc/ddcProperty.c.jx 2007-02-26 13:39:00.000000000 -0500
+++ xorg-server-1.2.0/hw/xfree86/ddc/ddcProperty.c 2007-02-26 14:37:33.000000000 -0500
@@ -313,8 +313,10 @@
preferred = PREFERRED_TIMING_MODE(DDC->features.msc);
- Monitor->widthmm = 10 * DDC->features.hsize;
- Monitor->heightmm = 10 * DDC->features.vsize;
+ if (Monitor->widthmm <= 0 && Monitor->heightmm <= 0) {
+ Monitor->widthmm = 10 * DDC->features.hsize;
+ Monitor->heightmm = 10 * DDC->features.vsize;
+ }
/* If this is a digital display, then we can use reduced blanking */
if (DDC->features.input_type)

View File

@ -1,90 +0,0 @@
diff -up xorg-server-1.3.0.0/hw/xfree86/modes/xf86EdidModes.c.edid-quirks xorg-server-1.3.0.0/hw/xfree86/modes/xf86EdidModes.c
--- xorg-server-1.3.0.0/hw/xfree86/modes/xf86EdidModes.c.edid-quirks 2007-04-18 00:33:14.000000000 -0400
+++ xorg-server-1.3.0.0/hw/xfree86/modes/xf86EdidModes.c 2007-09-17 14:37:36.000000000 -0400
@@ -49,32 +49,12 @@
typedef enum {
DDC_QUIRK_NONE = 0,
- /* Force detailed sync polarity to -h +v */
- DDC_QUIRK_DT_SYNC_HM_VP = 1 << 0,
/* First detailed mode is bogus, prefer largest mode at 60hz */
- DDC_QUIRK_PREFER_LARGE_60 = 1 << 1,
+ DDC_QUIRK_PREFER_LARGE_60 = 1 << 0,
/* 135MHz clock is too high, drop a bit */
- DDC_QUIRK_135_CLOCK_TOO_HIGH = 1 << 2
+ DDC_QUIRK_135_CLOCK_TOO_HIGH = 1 << 1
} ddc_quirk_t;
-static Bool quirk_dt_sync_hm_vp (int scrnIndex, xf86MonPtr DDC)
-{
- /* Belinea 1924S1W */
- if (memcmp (DDC->vendor.name, "MAX", 4) == 0 &&
- DDC->vendor.prod_id == 1932)
- return TRUE;
- /* Belinea 10 20 30W */
- if (memcmp (DDC->vendor.name, "MAX", 4) == 0 &&
- DDC->vendor.prod_id == 2007)
- return TRUE;
- /* ViewSonic VX2025wm (bug #9941) */
- if (memcmp (DDC->vendor.name, "VSC", 4) == 0 &&
- DDC->vendor.prod_id == 58653)
- return TRUE;
-
- return FALSE;
-}
-
static Bool quirk_prefer_large_60 (int scrnIndex, xf86MonPtr DDC)
{
/* Belinea 10 15 55 */
@@ -87,9 +67,10 @@ static Bool quirk_prefer_large_60 (int s
DDC->vendor.prod_id == 44358)
return TRUE;
- /* Samsung SyncMaster 226BW */
+ /* Samsung SyncMaster 22[56]BW */
if (memcmp (DDC->vendor.name, "SAM", 4) == 0 &&
- DDC->vendor.prod_id == 638)
+ (DDC->vendor.prod_id == 638 ||
+ DDC->vendor.prod_id == 596))
return TRUE;
return FALSE;
@@ -112,10 +93,6 @@ typedef struct {
} ddc_quirk_map_t;
static const ddc_quirk_map_t ddc_quirks[] = {
- {
- quirk_dt_sync_hm_vp, DDC_QUIRK_DT_SYNC_HM_VP,
- "Set detailed timing sync polarity to -h +v"
- },
{
quirk_prefer_large_60, DDC_QUIRK_PREFER_LARGE_60,
"Detailed timing is not preferred, use largest mode at 60Hz"
@@ -251,20 +228,15 @@ DDCModeFromDetailedTiming(int scrnIndex,
if (timing->interlaced)
Mode->Flags |= V_INTERLACE;
- if (quirks & DDC_QUIRK_DT_SYNC_HM_VP)
- Mode->Flags |= V_NHSYNC | V_PVSYNC;
+ if (timing->misc & 0x02)
+ Mode->Flags |= V_PVSYNC;
else
- {
- if (timing->misc & 0x02)
- Mode->Flags |= V_PHSYNC;
- else
- Mode->Flags |= V_NHSYNC;
+ Mode->Flags |= V_NVSYNC;
- if (timing->misc & 0x01)
- Mode->Flags |= V_PVSYNC;
- else
- Mode->Flags |= V_NVSYNC;
- }
+ if (timing->misc & 0x01)
+ Mode->Flags |= V_PHSYNC;
+ else
+ Mode->Flags |= V_NHSYNC;
return Mode;
}

View File

@ -0,0 +1,16 @@
diff -up xorg-server-1.3.0.0/hw/xfree86/modes/xf86EdidModes.c.da xorg-server-1.3.0.0/hw/xfree86/modes/xf86EdidModes.c
--- xorg-server-1.3.0.0/hw/xfree86/modes/xf86EdidModes.c.da 2007-09-26 17:04:02.000000000 +1000
+++ xorg-server-1.3.0.0/hw/xfree86/modes/xf86EdidModes.c 2007-09-26 17:04:27.000000000 +1000
@@ -401,8 +401,10 @@ xf86DDCMonitorSet(int scrnIndex, MonPtr
Monitor->DDC = DDC;
- Monitor->widthmm = 10 * DDC->features.hsize;
- Monitor->heightmm = 10 * DDC->features.vsize;
+ if (Monitor->widthmm <= 0 && Monitor->heightmm <= 0) {
+ Monitor->widthmm = 10 * DDC->features.hsize;
+ Monitor->heightmm = 10 * DDC->features.vsize;
+ }
/* If this is a digital display, then we can use reduced blanking */
if (DDC->features.input_type)

View File

@ -1,17 +0,0 @@
--- xorg-server-1.3.0.0/randr/rrxinerama.c.jx 2007-01-30 02:01:52.000000000 -0500
+++ xorg-server-1.3.0.0/randr/rrxinerama.c 2007-04-25 13:26:23.000000000 -0400
@@ -425,6 +425,14 @@
return;
#endif
+ /*
+ * Xinerama isn't capable enough to have multiple protocol screens each
+ * with their own output geometry. So if there's more than one protocol
+ * screen, just don't even try.
+ */
+ if (screenInfo.numScreens > 1)
+ return;
+
(void) AddExtension(PANORAMIX_PROTOCOL_NAME, 0,0,
ProcRRXineramaDispatch,
SProcRRXineramaDispatch,

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
--- xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c.jx 2007-04-16 12:53:50.000000000 -0400
+++ xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c 2007-05-02 14:03:28.000000000 -0400
@@ -1202,6 +1202,23 @@
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;
}
@ -21,10 +22,10 @@
+ return preferred_mode;
+}
+
#define DEBUG_REPROBE 1
void
@@ -1377,8 +1394,7 @@
_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 */