forked from pool/xorg-x11-server
This commit is contained in:
parent
7c9438d00b
commit
4521bf8ff9
26
commit-29e0e18.diff
Normal file
26
commit-29e0e18.diff
Normal 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
130
commit-feac075.diff
Normal 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
14
ia64linuxPciInit.diff
Normal 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
|
@ -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;
|
@ -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
|
||||
|
||||
|
@ -21,11 +21,11 @@ BuildRequires: libjpeg-devel
|
||||
Url: http://xorg.freedesktop.org/
|
||||
%define EXPERIMENTAL 0
|
||||
Version: 7.3
|
||||
Release: 25
|
||||
Release: 27
|
||||
License: X11/MIT
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Group: System/X11/Servers/XF86_4
|
||||
Requires: pkgconfig xorg-x11-fonts-core
|
||||
Requires: pkgconfig xorg-x11-fonts-core xorg-x11
|
||||
%if %suse_version > 1010
|
||||
%ifnarch s390 s390x
|
||||
Requires: xorg-x11-driver-input xorg-x11-driver-video
|
||||
@ -86,7 +86,9 @@ Patch77: fbdevhw.diff
|
||||
Patch79: edit_data_sanity_check.diff
|
||||
Patch80: pixman.diff
|
||||
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
|
||||
This package contains the X.Org Server.
|
||||
@ -98,7 +100,7 @@ Summary: Additional Xservers (Xdmx, Xephyr, Xnest, Xvfb)
|
||||
Group: System/X11/Servers/XF86_4
|
||||
Provides: xorg-x11-Xnest xorg-x11-Xvfb xorg-x11-server:/usr/bin/Xdmx
|
||||
Obsoletes: xorg-x11-Xnest xorg-x11-Xvfb
|
||||
Requires: xorg-x11-fonts-core
|
||||
Requires: xorg-x11-fonts-core xorg-x11
|
||||
AutoReqProv: on
|
||||
|
||||
%description extra
|
||||
@ -125,6 +127,7 @@ This package contains the X.Org Server SDK.
|
||||
%package -n xorg-x11-Xvnc
|
||||
Summary: VNC Server for the X Window System
|
||||
Group: System/X11/Servers/XF86_4
|
||||
Requires: xorg-x11-fonts-core xorg-x11
|
||||
Provides: vnc:/usr/X11R6/bin/Xvnc XFree86-Xvnc
|
||||
Obsoletes: XFree86-Xvnc
|
||||
%ifarch ia64
|
||||
@ -198,7 +201,9 @@ popd
|
||||
%patch79 -p1
|
||||
%patch80
|
||||
%patch81 -p1
|
||||
%patch82 -p1
|
||||
%patch83
|
||||
%patch84 -p1
|
||||
%patch85 -p1
|
||||
|
||||
%build
|
||||
pushd xorg-docs-*
|
||||
@ -527,6 +532,18 @@ exit 0
|
||||
/usr/bin/Xvnc
|
||||
%endif
|
||||
%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
|
||||
- updated to Mesa 7.0.2 (final) sources
|
||||
* Wed Oct 31 2007 - sndirsch@suse.de
|
||||
|
Loading…
Reference in New Issue
Block a user