1
0
OBS User unknown 2007-11-15 23:56:44 +00:00 committed by Git OBS Bridge
parent 7c9438d00b
commit 4521bf8ff9
6 changed files with 213 additions and 27 deletions

26
commit-29e0e18.diff Normal file
View File

@ -0,0 +1,26 @@
commit 29e0e180729a4f0cc020985a4de4c8bc4b9c7f5f
Author: Keith Packard <keithp@koto.keithp.com>
Date: Mon Oct 22 13:38:16 2007 -0700
Leave hardware-specified preferred modes alone when user preference exists.
Instead of removing the preference bit marking the hardware declared mode
preference, leave it in place and just move the user preferred mode to the
front of the list while marking it with the USERPREF bit which will cause it
to be selected by the initial mode selection code.
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 0a48d5b..bb416fd 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -1417,9 +1417,8 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
output->probed_modes = mode;
}
mode->type |= (M_T_PREFERRED|M_T_USERPREF);
+ break;
}
- else
- mode->type &= ~M_T_PREFERRED;
}
}

130
commit-feac075.diff Normal file
View File

@ -0,0 +1,130 @@
commit feac0759522cbdc3e61ccfa373df735903c5cb27
Author: Keith Packard <keithp@koto.keithp.com>
Date: Wed Oct 17 11:42:28 2007 +0800
Make config file preferred mode override monitor preferred mode.
Add a new even-more-preferred bit to each mode which is used to make config
file preferences selected instead of the monitor preferred mode.
diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
index 0365ddd..af98b4f 100644
--- a/hw/xfree86/common/xf86str.h
+++ b/hw/xfree86/common/xf86str.h
@@ -142,6 +142,7 @@ typedef enum {
# define M_T_DEFAULT 0x10 /* (VESA) default modes */
# define M_T_USERDEF 0x20 /* One of the modes from the config file */
# define M_T_DRIVER 0x40 /* Supplied by the driver (EDID, etc) */
+# define M_T_USERPREF 0x80 /* mode preferred by the user config */
/* Video mode */
typedef struct _DisplayModeRec {
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index f589b5a..0a48d5b 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -711,7 +711,8 @@ xf86DefaultMode (xf86OutputPtr output, int width, int height)
for (mode = output->probed_modes; mode; mode = mode->next)
{
int dpi;
- int preferred = (mode->type & M_T_PREFERRED) != 0;
+ int preferred = (((mode->type & M_T_PREFERRED) != 0) +
+ ((mode->type & M_T_USERPREF) != 0));
int diff;
if (xf86ModeWidth (mode, output->initial_rotation) > width ||
@@ -1415,7 +1416,7 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
mode->prev = NULL;
output->probed_modes = mode;
}
- mode->type |= M_T_PREFERRED;
+ mode->type |= (M_T_PREFERRED|M_T_USERPREF);
}
else
mode->type &= ~M_T_PREFERRED;
@@ -1532,6 +1533,7 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
int o, c;
DisplayModePtr target_mode = NULL;
+ int target_preferred = 0;
Rotation target_rotation = RR_Rotate_0;
xf86CrtcPtr *crtcs;
DisplayModePtr *modes;
@@ -1572,43 +1574,34 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
}
/*
- * Let outputs with preferred modes drive screen size
+ * User preferred > preferred > other modes
*/
for (o = 0; o < config->num_output; o++)
{
- xf86OutputPtr output = config->output[o];
+ xf86OutputPtr output = config->output[o];
+ DisplayModePtr default_mode;
+ int default_preferred;
- if (enabled[o] &&
- xf86OutputHasPreferredMode (output, width, height))
+ if (!enabled[o])
+ continue;
+ default_mode = xf86DefaultMode (output, width, height);
+ if (!default_mode)
+ continue;
+ default_preferred = (((default_mode->type & M_T_PREFERRED) != 0) +
+ ((default_mode->type & M_T_USERPREF) != 0));
+ if (default_preferred > target_preferred || !target_mode)
{
- target_mode = xf86DefaultMode (output, width, height);
+ target_mode = default_mode;
+ target_preferred = default_preferred;
target_rotation = output->initial_rotation;
- if (target_mode)
- {
- modes[o] = target_mode;
- config->compat_output = o;
- break;
- }
- }
- }
- if (!target_mode)
- {
- for (o = 0; o < config->num_output; o++)
- {
- xf86OutputPtr output = config->output[o];
- if (enabled[o])
- {
- target_mode = xf86DefaultMode (output, width, height);
- target_rotation = output->initial_rotation;
- if (target_mode)
- {
- modes[o] = target_mode;
- config->compat_output = o;
- break;
- }
- }
+ config->compat_output = o;
}
}
+ if (target_mode)
+ modes[config->compat_output] = target_mode;
+ /*
+ * Fill in other output modes
+ */
for (o = 0; o < config->num_output; o++)
{
xf86OutputPtr output = config->output[o];
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
index 9693e12..4c843cd 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -39,6 +39,9 @@
#ifndef M_T_DRIVER
#define M_T_DRIVER 0x40
#endif
+#ifndef M_T_USERPREF
+#define M_T_USERPREF 0x80
+#endif
#ifndef HARDWARE_CURSOR_ARGB
#define HARDWARE_CURSOR_ARGB 0x00004000
#endif

14
ia64linuxPciInit.diff Normal file
View File

@ -0,0 +1,14 @@
--- hw/xfree86/os-support/bus/linuxPci.c
+++ hw/xfree86/os-support/bus/linuxPci.c
@@ -999,7 +999,10 @@ ia64linuxPciInit()
struct stat st;
linuxPciInit();
-
+
+ /* Need space for fake devices. */
+ xf86MaxPciDevs = MAX_PCI_DEVICES;
+
if (!stat("/proc/sgi_sn/licenseID", &st) && pciNumBuses) {
/* Be a little paranoid here and only use this code for Altix systems.
* It is generic, so it should work on any system, but depends on

View File

@ -1,22 +0,0 @@
--- xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c.deadloop 2007-10-01 11:46:05.000000000 +0200
+++ xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c 2007-10-01 11:53:35.000000000 +0200
@@ -1415,9 +1415,10 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn,
if (preferred_mode)
{
+ int found = 0;
for (mode = output->probed_modes; mode; mode = mode->next)
{
- if (!strcmp (preferred_mode, mode->name))
+ if (!found && !strcmp (preferred_mode, mode->name))
{
if (mode != output->probed_modes)
{
@@ -1431,6 +1432,7 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn,
output->probed_modes = mode;
}
mode->type |= M_T_PREFERRED;
+ found = 1;
}
else
mode->type &= ~M_T_PREFERRED;

View File

@ -1,3 +1,24 @@
-------------------------------------------------------------------
Thu Nov 15 22:00:47 CET 2007 - sndirsch@suse.de
- commit-29e0e18.diff
* Make config file preferred mode override monitor preferred
mode.
- commit-feac075.diff
* Leave hardware-specified preferred modes alone when user
preference exists.
- obsoletes preferred_mode-fix.diff
-------------------------------------------------------------------
Thu Nov 15 15:47:36 CET 2007 - sndirsch@suse.de
- added xorg-x11-fonts-core/xorg-x11 to Requires (Bug #341312)
-------------------------------------------------------------------
Wed Nov 14 17:18:00 CET 2007 - schwab@suse.de
- ia64linuxPciInit: allocate extra space for fake devices.
------------------------------------------------------------------- -------------------------------------------------------------------
Sat Nov 10 20:09:23 CET 2007 - sndirsch@suse.de Sat Nov 10 20:09:23 CET 2007 - sndirsch@suse.de

View File

@ -21,11 +21,11 @@ BuildRequires: libjpeg-devel
Url: http://xorg.freedesktop.org/ Url: http://xorg.freedesktop.org/
%define EXPERIMENTAL 0 %define EXPERIMENTAL 0
Version: 7.3 Version: 7.3
Release: 25 Release: 27
License: X11/MIT License: X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4 Group: System/X11/Servers/XF86_4
Requires: pkgconfig xorg-x11-fonts-core Requires: pkgconfig xorg-x11-fonts-core xorg-x11
%if %suse_version > 1010 %if %suse_version > 1010
%ifnarch s390 s390x %ifnarch s390 s390x
Requires: xorg-x11-driver-input xorg-x11-driver-video Requires: xorg-x11-driver-input xorg-x11-driver-video
@ -86,7 +86,9 @@ Patch77: fbdevhw.diff
Patch79: edit_data_sanity_check.diff Patch79: edit_data_sanity_check.diff
Patch80: pixman.diff Patch80: pixman.diff
Patch81: xserver-1.3.0-xkb-and-loathing.patch Patch81: xserver-1.3.0-xkb-and-loathing.patch
Patch82: preferred_mode-fix.diff Patch83: ia64linuxPciInit.diff
Patch84: commit-feac075.diff
Patch85: commit-29e0e18.diff
%description %description
This package contains the X.Org Server. This package contains the X.Org Server.
@ -98,7 +100,7 @@ Summary: Additional Xservers (Xdmx, Xephyr, Xnest, Xvfb)
Group: System/X11/Servers/XF86_4 Group: System/X11/Servers/XF86_4
Provides: xorg-x11-Xnest xorg-x11-Xvfb xorg-x11-server:/usr/bin/Xdmx Provides: xorg-x11-Xnest xorg-x11-Xvfb xorg-x11-server:/usr/bin/Xdmx
Obsoletes: xorg-x11-Xnest xorg-x11-Xvfb Obsoletes: xorg-x11-Xnest xorg-x11-Xvfb
Requires: xorg-x11-fonts-core Requires: xorg-x11-fonts-core xorg-x11
AutoReqProv: on AutoReqProv: on
%description extra %description extra
@ -125,6 +127,7 @@ This package contains the X.Org Server SDK.
%package -n xorg-x11-Xvnc %package -n xorg-x11-Xvnc
Summary: VNC Server for the X Window System Summary: VNC Server for the X Window System
Group: System/X11/Servers/XF86_4 Group: System/X11/Servers/XF86_4
Requires: xorg-x11-fonts-core xorg-x11
Provides: vnc:/usr/X11R6/bin/Xvnc XFree86-Xvnc Provides: vnc:/usr/X11R6/bin/Xvnc XFree86-Xvnc
Obsoletes: XFree86-Xvnc Obsoletes: XFree86-Xvnc
%ifarch ia64 %ifarch ia64
@ -198,7 +201,9 @@ popd
%patch79 -p1 %patch79 -p1
%patch80 %patch80
%patch81 -p1 %patch81 -p1
%patch82 -p1 %patch83
%patch84 -p1
%patch85 -p1
%build %build
pushd xorg-docs-* pushd xorg-docs-*
@ -527,6 +532,18 @@ exit 0
/usr/bin/Xvnc /usr/bin/Xvnc
%endif %endif
%changelog %changelog
* Thu Nov 15 2007 - sndirsch@suse.de
- commit-29e0e18.diff
* Make config file preferred mode override monitor preferred
mode.
- commit-feac075.diff
* Leave hardware-specified preferred modes alone when user
preference exists.
- obsoletes preferred_mode-fix.diff
* Thu Nov 15 2007 - sndirsch@suse.de
- added xorg-x11-fonts-core/xorg-x11 to Requires (Bug #341312)
* Wed Nov 14 2007 - schwab@suse.de
- ia64linuxPciInit: allocate extra space for fake devices.
* Sat Nov 10 2007 - sndirsch@suse.de * Sat Nov 10 2007 - sndirsch@suse.de
- updated to Mesa 7.0.2 (final) sources - updated to Mesa 7.0.2 (final) sources
* Wed Oct 31 2007 - sndirsch@suse.de * Wed Oct 31 2007 - sndirsch@suse.de