* Fri Nov 02 2007 Adam Jackson <ajax@redhat.com> 1.4.99.1-0.6

- Merge a bunch of the more trivial patches upstream.
- New git snapshot containing the merged bits.
- Remove unused patches.
- Drop the XFree86 obsoletes.
This commit is contained in:
Adam Jackson 2007-11-02 17:11:11 +00:00
parent 494b014eed
commit 06b805d972
49 changed files with 189 additions and 17814 deletions

View File

@ -1,28 +0,0 @@
From: Kristian Høgsberg <krh@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Fix crash in xf86InitOrigins()
In a multihead setup, if only the first screen can be
initialized, but the second screen is mentioned first in the
ServerLayout section, the xf86InitOrigins() function will crash
because the screen referred to in the e.g. "RightOf" part is
non-existent.
---
--- a/hw/xfree86/common/xf86Cursor.c.init-origins-fix 2004-10-18 22:22:42.675899006 -0400
+++ b/hw/xfree86/common/xf86Cursor.c 2004-10-18 22:21:42.540867549 -0400
@@ -566,6 +566,14 @@
screen = &xf86ConfigLayout.screens[i];
+ if (screen->refscreen != NULL &&
+ screen->refscreen->screennum >= xf86NumScreens) {
+ screensLeft &= ~(1 << i);
+ xf86Msg(X_WARNING, "Not including screen \"%s\" in origins calculation.\n",
+ screen->screen->id);
+ continue;
+ }
+
switch(screen->where) {
case PosObsolete:
OldStyleConfig = TRUE;

View File

@ -1,16 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Build libxf86config with -fPIC
---
--- xorg-server-1.0.1/hw/xfree86/parser/Makefile.am.xf86configfpic 2006-03-06 13:57:45.000000000 -0500
+++ xorg-server-1.0.1/hw/xfree86/parser/Makefile.am 2006-03-06 13:59:11.000000000 -0500
@@ -23,7 +23,7 @@
DRI.c \
Extensions.c
-AM_CFLAGS = $(XORG_CFLAGS)
+AM_CFLAGS = $(XORG_CFLAGS) -fPIC -fvisibility=hidden
EXTRA_DIST = \
Configint.h \

View File

@ -1,34 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Don't backfill windows with bg=none
Disable backfilling of windows created with bg=none, which otherwise
would force a framebuffer readback.
Note that this patch can only be dropped if you verify that
https://bugzilla.redhat.com/show_bug.cgi?id=285991
is fixed (which it is in upstream git as of
f98dfec79dadb70fa7bba84e7335f92b3a73dc02
---
--- a/composite/compalloc.c.spiffiffity 2006-03-13 16:59:55.000000000 -0500
+++ b/composite/compalloc.c 2006-04-12 16:37:50.000000000 -0400
@@ -478,6 +478,7 @@
* Copy bits from the parent into the new pixmap so that it will
* have "reasonable" contents in case for background None areas.
*/
+#if 0
if (pGC)
{
XID val = IncludeInferiors;
@@ -492,6 +493,7 @@
w, h, 0, 0);
FreeScratchGC (pGC);
}
+#endif
return pPixmap;
}

View File

@ -1,31 +0,0 @@
--- xorg-server-1.1.1/hw/xfree86/os-support/linux/Makefile.am.automake-1.10 2006-11-30 15:35:09.000000000 -0500
+++ xorg-server-1.1.1/hw/xfree86/os-support/linux/Makefile.am 2006-12-01 11:00:04.000000000 -0500
@@ -41,7 +41,7 @@
INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) -I/usr/include/drm # FIXME this last part is crack
# FIXME: These need to be added to the build
-LNX_EXTRA_SOURCES = \
+LNX_EXTRA_SRCS = \
lnx_font.c \
lnx_jstk.c \
lnxResource.c
--- xorg-server-1.1.1/hw/xfree86/os-support/misc/Makefile.am.automake-1.10 2006-07-05 14:31:41.000000000 -0400
+++ xorg-server-1.1.1/hw/xfree86/os-support/misc/Makefile.am 2006-12-01 11:00:57.000000000 -0500
@@ -1,14 +1,14 @@
# FIXME: Add the *.S files to build when applicable
-I386_SOURCES = BUSmemcpy.S IODelay.S SlowBcopy.S
+I386_SRCS = BUSmemcpy.S IODelay.S SlowBcopy.S
OTHER_SOURCES = BUSmemcpy.c IODelay.c SlowBcopy.c
ARCH_SOURCES = $(OTHER_SOURCES)
# FIXME: Add to the build (NeedPortIO)
-PORTIO_SOURCES = PortIO.S
+PORTIO_SRCS = PortIO.S
# FIXME: Add to the build (if HasGcc || HasGcc2)
-ILHACK_SOURCES = xf86_IlHack.c
+ILHACK_SRCS = xf86_IlHack.c
noinst_LTLIBRARIES = libmisc.la

View File

@ -1,33 +0,0 @@
--- xorg-server-1.1.1/include/dix-config.h.in.builderstring 2006-07-05 14:38:48.000000000 -0400
+++ xorg-server-1.1.1/include/dix-config.h.in 2006-08-09 16:59:05.000000000 -0400
@@ -15,6 +15,9 @@
/* Operating System Vendor */
#undef OSVENDOR
+/* Builder string */
+#undef BUILDERSTRING
+
/* Default font path */
#undef COMPILEDDEFAULTFONTPATH
--- xorg-server-1.1.1/configure.ac.builderstring 2006-08-09 14:04:19.000000000 -0400
+++ xorg-server-1.1.1/configure.ac 2006-08-09 16:58:25.000000000 -0400
@@ -358,6 +358,9 @@
AC_ARG_WITH(os-vendor, AS_HELP_STRING([--with-os-vendor=OSVENDOR], [Name of OS vendor]),
[ OSVENDOR="$withval" ],
[ OSVENDOR="" ])
+AC_ARG_WITH(builderstring, AS_HELP_STRING([--with-builderstring=BUILDERSTRING], [Additional builder string]),
+ [ BUILDERSTRING="$withval" ]
+ [ ])
AC_ARG_WITH(mesa-source, AS_HELP_STRING([--with-mesa-source=MESA_SOURCE], [Path to Mesa source tree]),
[ MESA_SOURCE="$withval" ],
[ MESA_SOURCE="" ])
@@ -817,6 +820,8 @@
AC_DEFINE_UNQUOTED(BUILDERADDR, ["$BUILDERADDR"], [Builder address])
AC_DEFINE_UNQUOTED(OSNAME, ["$OSNAME"], [Operating System Name])
AC_DEFINE_UNQUOTED(OSVENDOR, ["$OSVENDOR"], [Operating System Vendor])
+AC_DEFINE_UNQUOTED(BUILDERSTRING, ["$BUILDERSTRING"], [Builder string])
+
AC_SUBST([VENDOR_STRING])
AC_SUBST([VENDOR_STRING_SHORT])
AC_SUBST([VENDOR_RELEASE])

View File

@ -1,17 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Enable builtin font FPE.
---
--- ./dix/dixfonts.c.builtin-fonts 2006-09-06 16:45:20.000000000 -0400
+++ ./dix/dixfonts.c 2006-09-06 16:45:31.000000000 -0400
@@ -1904,9 +1904,7 @@
} else
#endif
{
-#ifdef KDRIVESERVER
BuiltinRegisterFpeFunctions();
-#endif
FontFileRegisterFpeFunctions();
#ifndef NOFONTSERVERACCESS
fs_register_fpe_functions();

View File

@ -1,85 +0,0 @@
--- xorg-server-1.1.1/miext/cw/cw_ops.c.graphics-expose 2006-07-05 20:23:57.000000000 -0400
+++ xorg-server-1.1.1/miext/cw/cw_ops.c 2006-10-04 23:54:03.000000000 -0400
@@ -30,6 +30,7 @@
#include "gcstruct.h"
#include "pixmapstr.h"
#include "cw.h"
+#include "mi.h"
#define SETUP_BACKING_DST(_pDst, _pGC) \
cwGCPtr pGCPrivate = getCwGC (_pGC); \
@@ -185,7 +186,7 @@
int w, int h, int dstx, int dsty)
{
int odstx, odsty;
- RegionPtr exposed = NULL;
+ int osrcx, osrcy;
SETUP_BACKING_DST(pDst, pGC);
SETUP_BACKING_SRC(pSrc, pGC);
@@ -193,19 +194,20 @@
odstx = dstx;
odsty = dsty;
+ osrcx = srcx;
+ osrcy = srcy;
CW_OFFSET_XY_DST(dstx, dsty);
CW_OFFSET_XY_SRC(srcx, srcy);
- exposed = (*pBackingGC->ops->CopyArea)(pBackingSrc, pBackingDst,
- pBackingGC, srcx, srcy, w, h,
- dstx, dsty);
-
- if (exposed != NULL)
- REGION_TRANSLATE(pDst->pScreen, exposed, odstx - dstx, odsty - dsty);
-
+ (*pBackingGC->ops->CopyArea)(pBackingSrc, pBackingDst,
+ pBackingGC, srcx, srcy, w, h,
+ dstx, dsty);
+
EPILOGUE(pGC);
- return exposed;
+ return miHandleExposures(pSrc, pDst, pGC,
+ osrcx, osrcy, w, h,
+ odstx, odsty, 0);
}
static RegionPtr
@@ -213,7 +215,7 @@
int w, int h, int dstx, int dsty, unsigned long plane)
{
int odstx, odsty;
- RegionPtr exposed = NULL;
+ int osrcx, osrcy;
SETUP_BACKING_DST(pDst, pGC);
SETUP_BACKING_SRC(pSrc, pGC);
@@ -221,19 +223,20 @@
odstx = dstx;
odsty = dsty;
+ osrcx = srcx;
+ osrcy = srcy;
CW_OFFSET_XY_DST(dstx, dsty);
CW_OFFSET_XY_SRC(srcx, srcy);
- exposed = (*pBackingGC->ops->CopyPlane)(pBackingSrc, pBackingDst,
- pBackingGC, srcx, srcy, w, h,
- dstx, dsty, plane);
-
- if (exposed != NULL)
- REGION_TRANSLATE(pDst->pScreen, exposed, odstx - dstx, odsty - dsty);
+ (*pBackingGC->ops->CopyPlane)(pBackingSrc, pBackingDst,
+ pBackingGC, srcx, srcy, w, h,
+ dstx, dsty, plane);
EPILOGUE(pGC);
- return exposed;
+ return miHandleExposures(pSrc, pDst, pGC,
+ osrcx, osrcy, w, h,
+ odstx, odsty, plane);
}
static void

View File

@ -1,20 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Disable Composite in Xnest.
---
--- xorg-server-1.1.1/hw/xnest/Args.c.no-xnest-composite 2006-07-05 14:31:42.000000000 -0400
+++ xorg-server-1.1.1/hw/xnest/Args.c 2006-07-25 14:02:33.000000000 -0400
@@ -51,9 +51,12 @@
Bool xnestDoDirectColormaps = False;
Window xnestParentWindow = 0;
+/* XXX terrible hack */
+extern Bool noCompositeExtension;
/* ddxInitGlobals - called by |InitGlobals| from os/util.c */
void ddxInitGlobals(void)
{
+ noCompositeExtension = TRUE;
}
int

View File

@ -1,23 +0,0 @@
--- xorg-server-1.1.1/hw/xfree86/utils/Makefile.am.no-scanpci 2006-07-05 14:31:42.000000000 -0400
+++ xorg-server-1.1.1/hw/xfree86/utils/Makefile.am 2006-11-10 11:43:27.000000000 -0500
@@ -4,6 +4,5 @@
ioport \
kbd_mode \
pcitweak \
- scanpci \
xorgcfg \
xorgconfig
--- xorg-server-1.1.1/hw/xfree86/scanpci/Makefile.am.no-scanpci 2006-07-05 14:31:41.000000000 -0400
+++ xorg-server-1.1.1/hw/xfree86/scanpci/Makefile.am 2006-11-10 11:59:26.000000000 -0500
@@ -1,10 +1,8 @@
-module_LTLIBRARIES = libscanpci.la libpcidata.la
+module_LTLIBRARIES = libpcidata.la
libpcidata_la_LDFLAGS = -avoid-version
-libscanpci_la_LDFLAGS = -avoid-version
libpcidata_la_SOURCES = xf86PciData.c
-libscanpci_la_SOURCES = xf86ScanPci.c
INCLUDES = $(XORG_INCS)

View File

@ -1,11 +0,0 @@
--- xorg-server-1.1.1/hw/xfree86/xf4bpp/Makefile.am.xf1bpp 2006-07-05 14:31:42.000000000 -0400
+++ xorg-server-1.1.1/hw/xfree86/xf4bpp/Makefile.am 2006-11-10 12:53:25.000000000 -0500
@@ -46,8 +46,6 @@
mfbzerarc.c \
vgamodule.c
-libxf4bpp_la_LIBADD = ../xf1bpp/libxf1bpp.la
-
EXTRA_DIST = OScompiler.h ibmTrace.h ppcGCstr.h ppcSpMcro.h vgaReg.h \
vgaVideo.h wm3.h NOTES

View File

@ -1,45 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Don't filter modes away during VBE mode list construction.
Pass all VBE modes back up to the driver, on the assumption that it
knows how to filter modes intelligently.
---
--- xorg-server-1.1.1/hw/xfree86/vbe/vbeModes.c.jx 2006-07-05 14:31:42.000000000 -0400
+++ xorg-server-1.1.1/hw/xfree86/vbe/vbeModes.c 2006-09-22 15:29:34.000000000 -0400
@@ -153,34 +153,6 @@
xf86ErrorFVerb(DEBUG_VERB, "*");
}
- /*
- * Check if there's a valid monitor mode that this one can be matched
- * up with. The actual matching is done later.
- */
- if (modeOK) {
- Bool sizeMatch = FALSE;
- modeOK = FALSE;
- for (p = pScrn->monitor->Modes; p != NULL; p = p->next) {
- if ((p->HDisplay != mode->XResolution) ||
- (p->VDisplay != mode->YResolution) ||
- (p->Flags & (V_INTERLACE | V_DBLSCAN | V_CLKDIV2)))
- continue;
- sizeMatch = TRUE;
- /* XXX could support the various V_ flags */
- status = xf86CheckModeForMonitor(p, pScrn->monitor);
- if (status == MODE_OK) {
- modeOK = TRUE;
- break;
- }
- }
- if (sizeMatch && !modeOK) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Not using built-in mode \"%dx%d\" (%s)\n",
- mode->XResolution, mode->YResolution,
- xf86ModeStatusToString(status));
- }
- }
-
xf86ErrorFVerb(DEBUG_VERB,
"Mode: %x (%dx%d)\n", id, mode->XResolution, mode->YResolution);
xf86ErrorFVerb(DEBUG_VERB,

View File

@ -1,37 +0,0 @@
--- xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_init.c.vt-activate 2006-07-05 14:31:41.000000000 -0400
+++ xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_init.c 2006-12-14 22:00:25.000000000 -0500
@@ -248,14 +248,20 @@
#endif
/*
* now get the VT
+ *
+ * There's a race here, in that if someone else does a VT_ACTIVATE
+ * between our ACTIVATE/WAITACTIVE, we might never get the VT.
+ * So we have to fail in that case. There's really no fixing this,
+ * it's a racy protocol.
*/
if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, xf86Info.vtno) < 0)
- xf86Msg(X_WARNING, "xf86OpenConsole: VT_ACTIVATE failed: %s\n",
- strerror(errno));
+ FatalError("xf86OpenConsole: VT_ACTIVATE failed: %s\n",
+ strerror(errno));
+
if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, xf86Info.vtno) < 0)
- xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed: %s\n",
- strerror(errno));
+ FatalError("xf86OpenConsole: VT_WAITACTIVE failed: %s\n",
+ strerror(errno));
if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) < 0)
FatalError("xf86OpenConsole: VT_GETMODE failed %s\n",
@@ -352,6 +358,9 @@
if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, activeVT) < 0)
xf86Msg(X_WARNING, "xf86CloseConsole: VT_ACTIVATE failed: %s\n",
strerror(errno));
+ if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, activeVT) < 0)
+ xf86Msg(X_WARNING, "xf86CloseConsole: VT_WAITACTIVE failed: %s\n",
+ strerror(errno));
activeVT = -1;
}

View File

@ -1,11 +0,0 @@
--- xorg-server-1.1.1/mi/miinitext.c.xkb-in-xnest 2006-07-05 14:38:48.000000000 -0400
+++ xorg-server-1.1.1/mi/miinitext.c 2006-08-17 22:57:27.000000000 -0400
@@ -595,7 +595,7 @@
#ifdef XSYNC
if (!noSyncExtension) SyncExtensionInit();
#endif
-#if defined(XKB) && !defined(PRINT_ONLY_SERVER) && !defined(NO_HW_ONLY_EXTS)
+#if defined(XKB) && !defined(PRINT_ONLY_SERVER)
if (!noXkbExtension) XkbExtensionInit();
#endif
#ifdef XCMISC

View File

@ -1,16 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Enable the Composite extension by default
---
--- xorg-server-1.2.0/os/utils.c.enable-composite 2007-01-22 22:13:16.000000000 -0500
+++ xorg-server-1.2.0/os/utils.c 2007-01-23 12:26:04.000000000 -0500
@@ -138,7 +138,7 @@
#ifdef COMPOSITE
/* COMPOSITE is disabled by default for now until the
* interface is stable */
- #define COMPOSITE_DEFAULT FALSE
+ #define COMPOSITE_DEFAULT TRUE
_X_EXPORT Bool noCompositeExtension = !COMPOSITE_DEFAULT;
#endif

View File

@ -1,39 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Add selinux awareness.
Mesa contains some codegen paths that check for selinux, so we need to
link against libselinux to make that work.
---
--- xserver-20070223/hw/xfree86/dixmods/Makefile.am.selinux-awareness 2007-02-23 11:20:30.000000000 -0500
+++ xserver-20070223/hw/xfree86/dixmods/Makefile.am 2007-02-23 11:24:32.000000000 -0500
@@ -42,7 +42,7 @@
-I$(top_srcdir)/GL/glx
libGLcore_la_LDFLAGS = -avoid-version
-libGLcore_la_LIBADD = $(top_builddir)/GL/mesa/libGLcore.la
+libGLcore_la_LIBADD = $(top_builddir)/GL/mesa/libGLcore.la -lselinux
libGLcore_la_SOURCES = GLcoremodule.c
libafb_la_LDFLAGS = -avoid-version
--- xserver-20070223/configure.ac.selinux-awareness 2007-02-23 11:24:31.000000000 -0500
+++ xserver-20070223/configure.ac 2007-02-23 11:25:38.000000000 -0500
@@ -237,6 +237,8 @@
;;
esac
+SYS_LIBS="${SYS_LIBS} -lselinux"
+
dnl BSD *_video.c selection
AM_CONDITIONAL(ALPHA_VIDEO, [test "x$ALPHA_VIDEO" = xyes])
AM_CONDITIONAL(ARM_VIDEO, [test "x$ARM_VIDEO" = xyes])
@@ -1010,7 +1012,7 @@
AM_CONDITIONAL(XNEST, [test "x$XNEST" = xyes])
if test "x$XNEST" = xyes; then
- XNEST_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB $LIBS"
+ XNEST_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB $LIBS $XSERVER_LIBS"
AC_SUBST([XNEST_LIBS])
fi

View File

@ -1,32 +0,0 @@
--- xorg-server-1.2.0/hw/kdrive/Makefile.am.xephyr 2007-01-22 22:13:14.000000000 -0500
+++ xorg-server-1.2.0/hw/kdrive/Makefile.am 2007-01-23 12:28:32.000000000 -0500
@@ -1,16 +1,3 @@
-if KDRIVEVESA
-VESA_SUBDIRS = vesa ati chips epson i810 mach64 mga neomagic nvidia pm2 r128 \
- smi via
-endif
-
-if KDRIVEFBDEV
-FBDEV_SUBDIRS = fbdev
-endif
-
-if XSDLSERVER
-XSDL_SUBDIRS = sdl
-endif
-
if XEPHYR
XEPHYR_SUBDIRS = ephyr
endif
@@ -22,11 +9,7 @@
SUBDIRS = \
src \
$(LINUX_SUBDIRS) \
- $(XSDL_SUBDIRS) \
- $(FBDEV_SUBDIRS) \
- $(VESA_SUBDIRS) \
- $(XEPHYR_SUBDIRS) \
- fake
+ $(XEPHYR_SUBDIRS)
DIST_SUBDIRS = vesa ati chips epson i810 mach64 mga neomagic nvidia pm2 r128 \
smi via fbdev sdl ephyr src linux fake sis300

View File

@ -1,16 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Disable explicit commenting in Monitor section.
---
--- xorg-server-1.2.0/hw/xfree86/parser/Monitor.c.comment-less 2007-01-22 22:13:15.000000000 -0500
+++ xorg-server-1.2.0/hw/xfree86/parser/Monitor.c 2007-01-23 12:32:48.000000000 -0500
@@ -674,8 +674,6 @@
fprintf (cf, "\tDisplaySize %d\t%d\n",
ptr->mon_width,
ptr->mon_height);
- if ( ptr->mon_n_hsync || ptr->mon_n_vrefresh )
- fprintf(cf," ### Comment all HorizSync and VertRefresh values to use DDC:\n");
for (i = 0; i < ptr->mon_n_hsync; i++)
{
fprintf (cf, "\tHorizSync %2.1f - %2.1f\n",

View File

@ -1,29 +0,0 @@
--- hw/xfree86/parser/write.c.orig 2006-07-12 11:15:49.000000000 -0400
+++ hw/xfree86/parser/write.c 2006-07-12 11:19:59.000000000 -0400
@@ -108,13 +108,19 @@
xf86printLayoutSection (cf, cptr->conf_layout_lst);
- fprintf (cf, "Section \"Files\"\n");
- xf86printFileSection (cf, cptr->conf_files);
- fprintf (cf, "EndSection\n\n");
-
- fprintf (cf, "Section \"Module\"\n");
- xf86printModuleSection (cf, cptr->conf_modules);
- fprintf (cf, "EndSection\n\n");
+ if (cptr->conf_files != NULL)
+ {
+ fprintf (cf, "Section \"Files\"\n");
+ xf86printFileSection (cf, cptr->conf_files);
+ fprintf (cf, "EndSection\n\n");
+ }
+
+ if (cptr->conf_modules != NULL)
+ {
+ fprintf (cf, "Section \"Module\"\n");
+ xf86printModuleSection (cf, cptr->conf_modules);
+ fprintf (cf, "EndSection\n\n");
+ }
xf86printVendorSection (cf, cptr->conf_vendor_lst);

View File

@ -15,12 +15,12 @@
# RHEL5 bugfix sync
%define pkgname xorg-server
%define gitdate 20071101
%define gitdate 20071102
Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.4.99.1
Release: 0.5%{?dist}
Release: 0.6%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X
@ -38,10 +38,7 @@ Source0: ftp://ftp.x.org/pub/individual/xserver/%{pkgname}-%{version}.tar.bz2
Source100: comment-header-modefiles.txt
# general bug fixes
Patch0: xorg-x11-server-0.99.3-init-origins-fix.patch
Patch10: xorg-x11-server-1.1.1-vbe-filter-less.patch
Patch19: xserver-1.3.0-xnest-exposures.patch
Patch22: xserver-1.3.0-fbdevhw-magic-numbers.patch
# OpenGL compositing manager feature/optimization patches.
Patch100: xorg-x11-server-1.1.0-no-move-damage.patch
@ -53,25 +50,13 @@ Patch1001: xorg-x11-server-Red-Hat-extramodes.patch
Patch1003: xserver-1.4.99-pic-libxf86config.patch
Patch1004: xserver-1.4.99-selinux-awareness.patch
Patch1005: xserver-1.4.99-builtin-fonts.patch
Patch1008: xorg-x11-server-1.2.0-xf86config-comment-less.patch
Patch1010: xserver-1.3.0-no-prerelease-warning.patch
Patch1014: xserver-1.4.99-xaa-evict-pixmaps.patch
Patch1022: xserver-1.3.0-default-dpi.patch
Patch1024: xserver-1.3.0-avoid-ps2-probe.patch
Patch2004: xserver-1.3.0-honor-displaysize.patch
Patch2007: xserver-1.3.0-randr12-config-hack.patch
Patch2013: xserver-1.3.0-document-fontpath-correctly.patch
Patch2015: xserver-1.3.0-accidental-abi.patch
Patch2016: xserver-1.4.99-late-sigusr1.patch
# assorted PCI layer shenanigans. oh the pain.
##Patch2500: xorg-x11-server-1.2.99-unbreak-domain.patch
##Patch2501: xserver-1.3.0-pci-bus-count.patch
##Patch2502: xserver-1.3.0-mmap-failure-check.patch
##Patch2503: xserver-1.3.0-rom-search.patch
##Patch2504: xserver-1.3.0-domain-obiwan.patch
##Patch2505: xserver-1.3.0-pci-device-enable.patch
%define moduledir %{_libdir}/xorg/modules
@ -91,7 +76,7 @@ Patch2016: xserver-1.4.99-late-sigusr1.patch
%endif
%define kdrive --enable-kdrive --enable-xephyr --disable-xsdl --disable-xfake --disable-xfbdev --disable-kdrive-vesa
%define xservers --enable-xvfb --enable-xnest %{kdrive} --enable-dmx
%define xservers --enable-xvfb --enable-xnest %{kdrive} %{enable_xorg} --enable-dmx
# FIXME: Temporary Build deps on autotools, as needed...
BuildRequires: automake autoconf libtool
@ -180,7 +165,7 @@ upon.
%package Xnest
Summary: A nested server.
Group: User Interface/X
Obsoletes: XFree86-Xnest, xorg-x11-Xnest
Obsoletes: xorg-x11-Xnest
Requires: xorg-x11-server-common >= %{version}-%{release}
Provides: Xnest
@ -213,7 +198,7 @@ application for Xdmx would be to unify a 4 by 4 grid of 1280x1024 displays
%package Xvfb
Summary: A X Windows System virtual framebuffer X server.
Group: User Interface/X
Obsoletes: XFree86-Xvfb xorg-x11-Xvfb
Obsoletes: xorg-x11-Xvfb
Requires: xorg-x11-server-common >= %{version}-%{release}
Provides: Xvfb
@ -246,7 +231,7 @@ Render and Composite.
%package devel
Summary: SDK for X server driver module development
Group: User Interface/X
Obsoletes: XFree86-sdk xorg-x11-sdk xorg-x11-server-sdk
Obsoletes: xorg-x11-sdk xorg-x11-server-sdk
Requires: xorg-x11-util-macros
Requires: xorg-x11-proto-devel
Requires: pkgconfig
@ -300,8 +285,7 @@ fi
# --with-rgb-path should be superfluous now ?
# --with-pie ?
autoreconf -v --install || exit 1
%configure --enable-maintainer-mode \
%{enable_xorg} %{xservers} \
%configure --enable-maintainer-mode %{xservers} \
--disable-static \
--with-pic \
--disable-{a,c,m}fb \
@ -534,6 +518,12 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Fri Nov 02 2007 Adam Jackson <ajax@redhat.com> 1.4.99.1-0.6
- Merge a bunch of the more trivial patches upstream.
- New git snapshot containing the merged bits.
- Remove unused patches.
- Drop the XFree86 obsoletes.
* Fri Nov 02 2007 Adam Jackson <ajax@redhat.com> 1.4.99.1-0.5
- New git snapshot that fixes Xdmx build.
- Reenable Xdmx build.

View File

@ -1,18 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Fix MMX detection for AMD Geode processors.
---
--- a/fb/fbpict.c
+++ a/fb/fbpict.c
@@ -1516,7 +1516,9 @@ static unsigned int detectCPUFeatures(void) {
features |= SSE;
if (result & (1 << 26))
features |= SSE2;
- if ((result & MMX) && !(result & SSE) && (strcmp(vendor, "AuthenticAMD") == 0)) {
+ if ((features & MMX) && !(features & SSE) &&
+ (strcmp(vendor, "AuthenticAMD") == 0 ||
+ strcmp(vendor, "Geode by NSC") == 0)) {
/* check for AMD MMX extensions */
unsigned int result;

View File

@ -1,11 +0,0 @@
--- xorg-server-1.2.0/hw/xfree86/os-support/xf86_libc.h.jx 2007-01-22 22:13:15.000000000 -0500
+++ xorg-server-1.2.0/hw/xfree86/os-support/xf86_libc.h 2007-01-29 18:13:11.000000000 -0500
@@ -428,7 +428,7 @@
#define toupper(i) xf86toupper(i)
#undef ungetc
#define ungetc(i,FP) xf86ungetc(i,FP)
-#undef vfprinf
+#undef vfprintf
#define vfprintf(p,f,a) xf86vfprintf(p,f,a)
#undef vsnprintf
#define vsnprintf(s,n,f,a) xf86vsnprintf(s,n,f,a)

View File

@ -1,29 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Fix keysym typedef in Xephyr.
---
--- xorg-server-1.2.0/hw/kdrive/ephyr/hostx.c.xephyr-keysym 2007-01-22 22:13:14.000000000 -0500
+++ xorg-server-1.2.0/hw/kdrive/ephyr/hostx.c 2007-01-29 17:58:00.000000000 -0500
@@ -77,9 +77,10 @@
static int HostXWantDamageDebug = 0;
-extern KeySym EphyrKeymap[];
+/* these two need to be 32-bits. do not say KeySym, that way lies madness */
+extern unsigned int EphyrKeymap[];
+extern unsigned int kdKeymap[];
-extern KeySym kdKeymap[];
extern int kdMinScanCode;
extern int kdMaxScanCode;
extern int kdMinKeyCode;
@@ -662,7 +663,7 @@
void
hostx_load_keymap(void)
{
- KeySym *keymap;
+ unsigned int *keymap;
int host_width, min_keycode, max_keycode, width;
int i,j;

View File

@ -1,32 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Fix accidental ABI usage in RANDR 1.2 drivers.
Due to RANDR 1.2, xf86findOptionValue and xf86nameCompare are now ABI.
Make sure they're exported from the server.
---
diff -up xorg-server-1.3.0.0/hw/xfree86/parser/Flags.c.jx xorg-server-1.3.0.0/hw/xfree86/parser/Flags.c
--- xorg-server-1.3.0.0/hw/xfree86/parser/Flags.c.jx 2006-09-18 02:04:18.000000000 -0400
+++ xorg-server-1.3.0.0/hw/xfree86/parser/Flags.c 2007-10-03 11:08:01.000000000 -0400
@@ -330,7 +330,7 @@ xf86findOption (XF86OptionPtr list, cons
* returned. If the option is not found, a NULL is returned.
*/
-char *
+__attribute__((visibility("default"))) char *
xf86findOptionValue (XF86OptionPtr list, const char *name)
{
XF86OptionPtr p = xf86findOption (list, name);
diff -up xorg-server-1.3.0.0/hw/xfree86/parser/scan.c.jx xorg-server-1.3.0.0/hw/xfree86/parser/scan.c
--- xorg-server-1.3.0.0/hw/xfree86/parser/scan.c.jx 2006-10-04 17:46:03.000000000 -0400
+++ xorg-server-1.3.0.0/hw/xfree86/parser/scan.c 2007-10-03 10:57:43.000000000 -0400
@@ -985,7 +985,7 @@ StringToToken (char *str, xf86ConfigSymT
* Compare two names. The characters '_', ' ', and '\t' are ignored
* in the comparison.
*/
-int
+__attribute__((visibility("default"))) int
xf86nameCompare (const char *s1, const char *s2)
{
char c1, c2;

View File

@ -1,73 +0,0 @@
diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
index d925bed..8a2768d 100644
--- a/hw/xfree86/loader/xf86sym.c
+++ b/hw/xfree86/loader/xf86sym.c
@@ -259,6 +259,7 @@ _X_HIDDEN void *xfree86LookupTab[] = {
SYMFUNC(xf86UDelay)
SYMFUNC(xf86IODelay)
SYMFUNC(xf86SlowBcopy)
+ SYMFUNC(xf86SetReallySlowBcopy)
#ifdef __alpha__
SYMFUNC(xf86SlowBCopyToBus)
SYMFUNC(xf86SlowBCopyFromBus)
diff --git a/hw/xfree86/os-support/misc/SlowBcopy.c b/hw/xfree86/os-support/misc/SlowBcopy.c
index 7694eaa..5cd7168 100644
--- a/hw/xfree86/os-support/misc/SlowBcopy.c
+++ b/hw/xfree86/os-support/misc/SlowBcopy.c
@@ -22,21 +22,37 @@
#include "xf86_OSlib.h"
#include "compiler.h"
-/* The outb() isn't needed on my machine, but who knows ... -- ost */
+static int really_slow_bcopy;
+
_X_EXPORT void
-xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
+xf86SetReallySlowBcopy(void)
+{
+ really_slow_bcopy = 1;
+}
+
+#if defined(__i386__) || defined(__x86_64__)
+static void xf86_really_slow_bcopy(unsigned char *src, unsigned char *dst, int len)
{
while(len--)
{
*dst++ = *src++;
-#if !defined(__sparc__) && \
- !defined(__powerpc__) && \
- !defined(__mips__) && \
- !defined(__ia64__) && \
- !defined(__arm__)
outb(0x80, 0x00);
+ }
+}
#endif
+
+/* The outb() isn't needed on my machine, but who knows ... -- ost */
+_X_EXPORT void
+xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
+{
+#if defined(__i386__) || defined(__x86_64__)
+ if (really_slow_bcopy) {
+ xf86_really_slow_bcopy(src, dst, len);
+ return;
}
+#endif
+ while(len--)
+ *dst++ = *src++;
}
#ifdef __alpha__
diff --git a/hw/xfree86/os-support/xf86_OSproc.h b/hw/xfree86/os-support/xf86_OSproc.h
index 1bbbf56..6f0391d 100644
--- a/hw/xfree86/os-support/xf86_OSproc.h
+++ b/hw/xfree86/os-support/xf86_OSproc.h
@@ -159,6 +159,7 @@ extern void xf86BusToMem(unsigned char *, unsigned char *, int);
extern void xf86MemToBus(unsigned char *, unsigned char *, int);
extern void xf86IODelay(void);
extern void xf86UDelay(long usec);
+extern void xf86SetReallySlowBcopy(void);
extern void xf86SlowBcopy(unsigned char *, unsigned char *, int);
extern int xf86OpenSerial(pointer options);
extern int xf86SetSerial(int fd, pointer options);

View File

@ -1,53 +0,0 @@
--- xorg-server-1.3.0.0/hw/xfree86/common/xf86Bus.c.arm 2007-02-17 20:37:56.000000000 -0500
+++ xorg-server-1.3.0.0/hw/xfree86/common/xf86Bus.c 2007-06-04 11:33:14.000000000 -0400
@@ -3006,7 +3006,7 @@
}
-#if !defined(__sparc) && !defined(__sparc__) && !defined(__powerpc__) && !defined(__mips__)
+#if !defined(__sparc) && !defined(__sparc__) && !defined(__powerpc__) && !defined(__mips__) && !defined(__arm__)
#include "vgaHW.h"
#include "compiler.h"
#endif
@@ -3018,7 +3018,7 @@
CheckGenericGA()
{
/* This needs to be changed for multiple domains */
-#if !defined(__sparc__) && !defined(__sparc) && !defined(__powerpc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__arm__) && !defined(__s390__)
+#if !defined(__sparc__) && !defined(__sparc) && !defined(__powerpc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__arm__) && !defined(__s390__) && !defined(__arm__)
IOADDRESS GenericIOBase = VGAHW_GET_IOBASE();
CARD8 CurrentValue, TestValue;
--- xorg-server-1.3.0.0/hw/xfree86/os-support/linux/lnx_video.c.arm 2006-09-18 02:04:18.000000000 -0400
+++ xorg-server-1.3.0.0/hw/xfree86/os-support/linux/lnx_video.c 2007-06-04 11:35:21.000000000 -0400
@@ -62,7 +62,8 @@
#elif !defined(__powerpc__) && \
!defined(__mc68000__) && \
!defined(__sparc__) && \
- !defined(__mips__)
+ !defined(__mips__) && \
+ !defined(__arm__)
/*
* Due to conflicts with "compiler.h", don't rely on <sys/io.h> to declare
@@ -567,7 +568,7 @@
#endif
}
close(fd);
-#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__)
+#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__)
if (ioperm(0, 1024, 1) || iopl(3)) {
if (errno == ENODEV)
ErrorF("xf86EnableIOPorts: no I/O ports found\n");
--- xorg-server-1.3.0.0/hw/xfree86/os-support/misc/SlowBcopy.c.arm 2006-09-18 02:04:18.000000000 -0400
+++ xorg-server-1.3.0.0/hw/xfree86/os-support/misc/SlowBcopy.c 2007-06-04 11:31:28.000000000 -0400
@@ -35,7 +35,8 @@
#if !defined(__sparc__) && \
!defined(__powerpc__) && \
!defined(__mips__) && \
- !defined(__ia64__)
+ !defined(__ia64__) && \
+ !defined(__arm__)
outb(0x80, 0x00);
#endif
}

View File

@ -1,99 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Avoid PS/2 protocol probing for /dev/input/mice
The kernel will always upconvert to ExplorerPS/2 for all readers of
/dev/input/mice, so don't waste time on startup trying to figure
that out.
---
diff -up xorg-server-1.3.0.0/hw/xfree86/os-support/linux/lnx_mouse.c.jx xorg-server-1.3.0.0/hw/xfree86/os-support/linux/lnx_mouse.c
--- xorg-server-1.3.0.0/hw/xfree86/os-support/linux/lnx_mouse.c.jx 2006-09-18 02:04:18.000000000 -0400
+++ xorg-server-1.3.0.0/hw/xfree86/os-support/linux/lnx_mouse.c 2007-10-11 09:53:33.000000000 -0400
@@ -45,7 +45,8 @@ typedef enum {
MOUSE_PROTO_SERIAL,
MOUSE_PROTO_PS2,
MOUSE_PROTO_MSC,
- MOUSE_PROTO_GPM
+ MOUSE_PROTO_GPM,
+ MOUSE_PROTO_EXPPS2,
} protocolTypes;
static struct {
@@ -55,7 +56,8 @@ static struct {
{ MOUSE_PROTO_UNKNOWN, NULL },
{ MOUSE_PROTO_PS2, "PS/2" },
{ MOUSE_PROTO_MSC, "MouseSystems" },
- { MOUSE_PROTO_GPM, "GPM" }
+ { MOUSE_PROTO_GPM, "GPM" },
+ { MOUSE_PROTO_EXPPS2, "ExplorerPS/2" },
};
static const char *
@@ -87,7 +89,7 @@ FindDevice(InputInfoPtr pInfo, const cha
}
static const char *
-GuessProtocol(InputInfoPtr pInfo, int flags)
+lnxMouseMagic(InputInfoPtr pInfo)
{
int fd = -1;
const char *dev;
@@ -137,8 +139,10 @@ GuessProtocol(InputInfoPtr pInfo, int fl
}
}
- if (strcmp(realdev, DEFAULT_PS2_DEV) == 0)
- proto = MOUSE_PROTO_PS2;
+ if (strcmp(realdev, DEFAULT_MOUSE_DEV) == 0)
+ proto = MOUSE_PROTO_EXPPS2;
+ else if (strcmp(realdev, DEFAULT_PS2_DEV) == 0)
+ proto = MOUSE_PROTO_EXPPS2;
else if (strcmp(realdev, DEFAULT_GPM_DATA_DEV) == 0)
proto = MOUSE_PROTO_MSC;
else if (strcmp(realdev, DEFAULT_GPM_CTL_DEV) == 0)
@@ -171,15 +175,14 @@ GuessProtocol(InputInfoPtr pInfo, int fl
close(fd);
}
if (proto == MOUSE_PROTO_UNKNOWN) {
- xf86Msg(X_ERROR, "%s: GuessProtocol: Cannot find mouse protocol.\n",
+ xf86Msg(X_ERROR, "%s: Cannot find mouse protocol.\n",
pInfo->name);
return NULL;
} else {
for (i = 0; i < sizeof(devproto)/sizeof(devproto[0]); i++) {
if (devproto[i].proto == proto) {
xf86Msg(X_INFO,
- "%s: GuessProtocol: "
- "setting mouse protocol to \"%s\"\n",
+ "%s: Setting mouse protocol to \"%s\"\n",
pInfo->name, devproto[i].name);
return devproto[i].name;
}
@@ -188,6 +191,18 @@ GuessProtocol(InputInfoPtr pInfo, int fl
return NULL;
}
+static const char *
+GuessProtocol(InputInfoPtr pInfo, int flags)
+{
+ return lnxMouseMagic(pInfo);
+}
+
+static const char *
+SetupAuto(InputInfoPtr pInfo, int *protoPara)
+{
+ return lnxMouseMagic(pInfo);
+}
+
_X_EXPORT OSMouseInfoPtr
xf86OSMouseInit(int flags)
{
@@ -200,6 +215,7 @@ xf86OSMouseInit(int flags)
p->DefaultProtocol = DefaultProtocol;
p->FindDevice = FindDevice;
p->GuessProtocol = GuessProtocol;
+ p->SetupAuto = SetupAuto;
return p;
}

View File

@ -1,35 +0,0 @@
diff -up xorg-server-1.3.0.0/composite/compext.c.jx xorg-server-1.3.0.0/composite/compext.c
--- xorg-server-1.3.0.0/composite/compext.c.jx 2007-07-12 09:30:39.000000000 -0400
+++ xorg-server-1.3.0.0/composite/compext.c 2007-07-12 09:33:45.000000000 -0400
@@ -49,6 +49,9 @@
#include "compint.h"
+#define SERVER_COMPOSITE_MAJOR 0
+#define SERVER_COMPOSITE_MINOR 3
+
static CARD8 CompositeReqCode;
int CompositeClientPrivateIndex;
RESTYPE CompositeClientWindowType;
@@ -133,16 +136,16 @@ ProcCompositeQueryVersion (ClientPtr cli
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
- if (stuff->majorVersion < COMPOSITE_MAJOR) {
+ if (stuff->majorVersion < SERVER_COMPOSITE_MAJOR) {
rep.majorVersion = stuff->majorVersion;
rep.minorVersion = stuff->minorVersion;
} else {
- rep.majorVersion = COMPOSITE_MAJOR;
- if (stuff->majorVersion == COMPOSITE_MAJOR &&
- stuff->minorVersion < COMPOSITE_MINOR)
+ rep.majorVersion = SERVER_COMPOSITE_MAJOR;
+ if (stuff->majorVersion == SERVER_COMPOSITE_MAJOR &&
+ stuff->minorVersion < SERVER_COMPOSITE_MINOR)
rep.minorVersion = stuff->minorVersion;
else
- rep.minorVersion = COMPOSITE_MINOR;
+ rep.minorVersion = SERVER_COMPOSITE_MINOR;
}
pCompositeClient->major_version = rep.majorVersion;
pCompositeClient->minor_version = rep.minorVersion;

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Fix magic number in fbdevhw
The transformation between fbdev and xfree86 mode timings needs to be
invertible, otherwise Xen and other framebuffers that don't have real
pixel clocks won't initialize.
---
--- xorg-server-1.3.0.0/hw/xfree86/fbdevhw/fbdevhw.c.jx 2007-03-26 23:32:36.000000000 -0400
+++ xorg-server-1.3.0.0/hw/xfree86/fbdevhw/fbdevhw.c 2007-05-11 15:10:05.000000000 -0400
@@ -258,7 +258,7 @@
static void
fbdev2xfree_timing(struct fb_var_screeninfo *var, DisplayModePtr mode)
{
- mode->Clock = var->pixclock ? 1000000000/var->pixclock : 28000000;
+ mode->Clock = var->pixclock ? 1000000000/var->pixclock : 0;
mode->HDisplay = var->xres;
mode->HSyncStart = mode->HDisplay+var->right_margin;
mode->HSyncEnd = mode->HSyncStart+var->hsync_len;

View File

@ -1,152 +0,0 @@
commit 7e2c935920cafadbd87c351f1a3239932864fb90
Author: Fredrik Höglund <fredrik@kde.org>
Date: Fri May 18 20:06:14 2007 +0200
Add a new IDLETIME system sync counter.
This counter exposes the time in milliseconds since the last
input event. Clients such as screen savers and power managers
can set an alarm on this counter to find out when the idle time
reaches a certain value, without having to poll the server.
diff --git a/Xext/sync.c b/Xext/sync.c
index c5441a1..6fc2dcc 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -243,6 +243,11 @@ SyncInitServerTime(
void
);
+static void
+SyncInitIdleTime(
+ void
+);
+
static void
SyncResetProc(
ExtensionEntry * /* extEntry */
@@ -2400,6 +2405,7 @@ SyncExtensionInit(INITARGS)
* because there is always a servertime counter.
*/
SyncInitServerTime();
+ SyncInitIdleTime();
#ifdef DEBUG
fprintf(stderr, "Sync Extension %d.%d\n",
@@ -2520,3 +2526,116 @@ SyncInitServerTime(void)
ServertimeQueryValue, ServertimeBracketValues);
pnext_time = NULL;
}
+
+
+
+/*
+ * IDLETIME implementation
+ */
+
+static pointer IdleTimeCounter;
+static XSyncValue *pIdleTimeValueLess;
+static XSyncValue *pIdleTimeValueGreater;
+
+static void
+IdleTimeQueryValue (pointer pCounter, CARD64 *pValue_return)
+{
+ CARD32 idle = GetTimeInMillis() - lastDeviceEventTime.milliseconds;
+ XSyncIntsToValue (pValue_return, idle, 0);
+}
+
+static void
+IdleTimeBlockHandler (pointer env,
+ struct timeval **wt,
+ pointer LastSelectMask)
+{
+ XSyncValue idle;
+
+ if (!pIdleTimeValueLess && !pIdleTimeValueGreater)
+ return;
+
+ IdleTimeQueryValue (NULL, &idle);
+
+ if (pIdleTimeValueLess &&
+ XSyncValueLessOrEqual (idle, *pIdleTimeValueLess))
+ {
+ AdjustWaitForDelay (wt, 0);
+ }
+ else if (pIdleTimeValueGreater)
+ {
+ unsigned long timeout = 0;
+
+ if (XSyncValueLessThan (idle, *pIdleTimeValueGreater))
+ {
+ XSyncValue value;
+ Bool overflow;
+
+ XSyncValueSubtract (&value, *pIdleTimeValueGreater,
+ idle, &overflow);
+ timeout = XSyncValueLow32 (value);
+ }
+
+ AdjustWaitForDelay (wt, timeout);
+ }
+}
+
+static void
+IdleTimeWakeupHandler (pointer env,
+ int rc,
+ pointer LastSelectMask)
+{
+ XSyncValue idle;
+
+ if (!pIdleTimeValueLess && !pIdleTimeValueGreater)
+ return;
+
+ IdleTimeQueryValue (NULL, &idle);
+
+ if ((pIdleTimeValueGreater &&
+ XSyncValueGreaterThan (idle, *pIdleTimeValueGreater)) ||
+ (pIdleTimeValueLess && XSyncValueLessThan (idle, *pIdleTimeValueLess)))
+ {
+ SyncChangeCounter (IdleTimeCounter, idle);
+ }
+}
+
+static void
+IdleTimeBracketValues (pointer pCounter,
+ CARD64 *pbracket_less,
+ CARD64 *pbracket_greater)
+{
+ Bool registered = (pIdleTimeValueLess || pIdleTimeValueGreater);
+
+ if (registered && !pbracket_less && !pbracket_greater)
+ {
+ RemoveBlockAndWakeupHandlers(IdleTimeBlockHandler,
+ IdleTimeWakeupHandler,
+ NULL);
+ }
+ else if (!registered && (pbracket_less || pbracket_greater))
+ {
+ RegisterBlockAndWakeupHandlers(IdleTimeBlockHandler,
+ IdleTimeWakeupHandler,
+ NULL);
+ }
+
+ pIdleTimeValueGreater = pbracket_greater;
+ pIdleTimeValueLess = pbracket_less;
+}
+
+static void
+SyncInitIdleTime (void)
+{
+ CARD64 resolution;
+ XSyncValue idle;
+
+ IdleTimeQueryValue (NULL, &idle);
+ XSyncIntToValue (&resolution, 4);
+
+ IdleTimeCounter = SyncCreateSystemCounter ("IDLETIME", idle, resolution,
+ XSyncCounterUnrestricted,
+ IdleTimeQueryValue,
+ IdleTimeBracketValues);
+
+ pIdleTimeValueLess = pIdleTimeValueGreater = NULL;
+}

View File

@ -1,12 +0,0 @@
diff -up xorg-server-1.3.0.0/hw/xfree86/common/xf86AutoConfig.c.jx xorg-server-1.3.0.0/hw/xfree86/common/xf86AutoConfig.c
--- xorg-server-1.3.0.0/hw/xfree86/common/xf86AutoConfig.c.jx 2006-11-16 13:01:24.000000000 -0500
+++ xorg-server-1.3.0.0/hw/xfree86/common/xf86AutoConfig.c 2007-09-26 10:08:20.000000000 -0400
@@ -175,7 +175,7 @@ videoPtrToDriverName(pciVideoPtr info)
case 0x8086:
if ((info->chipType == 0x00d1) || (info->chipType == 0x7800))
return "i740";
- else return "i810";
+ else return "intel";
case 0x102b: return "mga";
case 0x10c8: return "neomagic";
case 0x105d: return "i128";

View File

@ -1,165 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Move SIGUSR1 notification as late as possible.
If we inherited a signal mask from the parent process that ignores SIGUSR1,
then we will send SIGUSR1 to the parent to indicate when we're ready to
accept connections. Unfortunately, we send this notification way too
early, right after creating the sockets rather than just before entering
the main loop.
Move it to just before Dispatch() so we're not lying quite so much.
---
diff -up xorg-server-1.3.0.0/dix/main.c.jx xorg-server-1.3.0.0/dix/main.c
--- xorg-server-1.3.0.0/dix/main.c.jx 2006-11-16 13:01:23.000000000 -0500
+++ xorg-server-1.3.0.0/dix/main.c 2007-10-15 14:37:13.000000000 -0400
@@ -442,6 +442,8 @@ main(int argc, char *argv[], char *envp[
FatalError("could not create connection block info");
}
+ NotifyParentProcess();
+
Dispatch();
/* Now free up whatever must be freed */
diff -up xorg-server-1.3.0.0/include/os.h.jx xorg-server-1.3.0.0/include/os.h
--- xorg-server-1.3.0.0/include/os.h.jx 2007-02-16 11:03:12.000000000 -0500
+++ xorg-server-1.3.0.0/include/os.h 2007-10-15 14:37:13.000000000 -0400
@@ -124,6 +124,8 @@ extern void ResetOsBuffers(void);
extern void InitConnectionLimits(void);
+extern void NotifyParentProcess(void);
+
extern void CreateWellKnownSockets(void);
extern void ResetWellKnownSockets(void);
diff -up xorg-server-1.3.0.0/os/connection.c.jx xorg-server-1.3.0.0/os/connection.c
--- xorg-server-1.3.0.0/os/connection.c.jx 2007-02-17 20:37:56.000000000 -0500
+++ xorg-server-1.3.0.0/os/connection.c 2007-10-15 14:42:19.000000000 -0400
@@ -370,6 +370,52 @@ InitConnectionLimits(void)
#endif
}
+/*
+ * If SIGUSR1 was set to SIG_IGN when the server started, assume that either
+ *
+ * a- The parent process is ignoring SIGUSR1
+ *
+ * or
+ *
+ * b- The parent process is expecting a SIGUSR1
+ * when the server is ready to accept connections
+ *
+ * In the first case, the signal will be harmless, in the second case,
+ * the signal will be quite useful.
+ */
+static void
+InitParentProcess(void)
+{
+#if !defined(WIN32)
+ OsSigHandlerPtr handler;
+ handler = OsSignal (SIGUSR1, SIG_IGN);
+ if ( handler == SIG_IGN)
+ RunFromSmartParent = TRUE;
+ OsSignal(SIGUSR1, handler);
+ ParentProcess = getppid ();
+#ifdef __UNIXOS2__
+ /*
+ * fg030505: under OS/2, xinit is not the parent process but
+ * the "grant parent" process of the server because execvpe()
+ * presents us an additional process number;
+ * GetPPID(pid) is part of libemxfix
+ */
+ ParentProcess = GetPPID (ParentProcess);
+#endif /* __UNIXOS2__ */
+#endif
+}
+
+void
+NotifyParentProcess(void)
+{
+#if !defined(WIN32)
+ if (RunFromSmartParent) {
+ if (ParentProcess > 1) {
+ kill (ParentProcess, SIGUSR1);
+ }
+ }
+#endif
+}
/*****************
* CreateWellKnownSockets
@@ -382,7 +428,6 @@ CreateWellKnownSockets(void)
int i;
int partial;
char port[20];
- OsSigHandlerPtr handler;
FD_ZERO(&AllSockets);
FD_ZERO(&AllClients);
@@ -436,42 +481,9 @@ CreateWellKnownSockets(void)
OsSignal (SIGTERM, GiveUp);
XFD_COPYSET (&WellKnownConnections, &AllSockets);
ResetHosts(display);
- /*
- * Magic: If SIGUSR1 was set to SIG_IGN when
- * the server started, assume that either
- *
- * a- The parent process is ignoring SIGUSR1
- *
- * or
- *
- * b- The parent process is expecting a SIGUSR1
- * when the server is ready to accept connections
- *
- * In the first case, the signal will be harmless,
- * in the second case, the signal will be quite
- * useful
- */
-#if !defined(WIN32)
- handler = OsSignal (SIGUSR1, SIG_IGN);
- if ( handler == SIG_IGN)
- RunFromSmartParent = TRUE;
- OsSignal(SIGUSR1, handler);
- ParentProcess = getppid ();
-#ifdef __UNIXOS2__
- /*
- * fg030505: under OS/2, xinit is not the parent process but
- * the "grant parent" process of the server because execvpe()
- * presents us an additional process number;
- * GetPPID(pid) is part of libemxfix
- */
- ParentProcess = GetPPID (ParentProcess);
-#endif /* __UNIXOS2__ */
- if (RunFromSmartParent) {
- if (ParentProcess > 1) {
- kill (ParentProcess, SIGUSR1);
- }
- }
-#endif
+
+ InitParentProcess();
+
#ifdef XDMCP
XdmcpInit ();
#endif
@@ -520,16 +532,7 @@ ResetWellKnownSockets (void)
ResetAuthorization ();
ResetHosts(display);
- /*
- * See above in CreateWellKnownSockets about SIGUSR1
- */
-#if !defined(WIN32)
- if (RunFromSmartParent) {
- if (ParentProcess > 1) {
- kill (ParentProcess, SIGUSR1);
- }
- }
-#endif
+
/*
* restart XDMCP
*/

File diff suppressed because it is too large Load Diff

View File

@ -1,35 +0,0 @@
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Disable Composite on 8bpp displays.
---
diff --git a/composite/compext.c b/composite/compext.c
index 4c25cc7..af05b4a 100644
--- a/composite/compext.c
+++ b/composite/compext.c
@@ -678,6 +678,25 @@ CompositeExtensionInit (void)
ExtensionEntry *extEntry;
int s;
+ for (s = 0; s < screenInfo.numScreens; s++) {
+ ScreenPtr pScreen = screenInfo.screens[s];
+ VisualPtr vis;
+
+ /* Composite on 8bpp pseudocolor root windows appears to fail, so
+ * just disable it on anything pseudocolor for safety.
+ */
+ for (vis = pScreen->visuals; vis->vid != pScreen->rootVisual; vis++)
+ ;
+ if ((vis->class | DynamicClass) == PseudoColor)
+ return;
+
+ /* Ensure that Render is initialized, which is required for automatic
+ * compositing.
+ */
+ if (GetPictureScreenIfSet(pScreen) == NULL)
+ return;
+ }
+
CompositeClientWindowType = CreateNewResourceType (FreeCompositeClientWindow);
if (!CompositeClientWindowType)
return;

View File

@ -1,76 +0,0 @@
From: Julien Cristau <jcristau@debian.org>
Date: Wed, 30 May 2007 02:01:30 +0000 (-0400)
Subject: Make sure that the ramdac symbols are present in the server
X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=commitdiff;h=3c6f1428489c1f71acd41066ea73ef4ae7c60f17
Make sure that the ramdac symbols are present in the server
The former ramdac module is now built into the server, so its symbols need to
be explicitly exported to drivers (Debian #423129).
---
--- a/hw/xfree86/loader/xf86sym.c
+++ b/hw/xfree86/loader/xf86sym.c
@@ -96,6 +96,11 @@
#endif
#include "xf86DDC.h"
#include "edid.h"
+#include "xf86Cursor.h"
+#include "xf86RamDac.h"
+#include "BT.h"
+#include "IBM.h"
+#include "TI.h"
#ifndef HAS_GLIBC_SIGSETJMP
#if defined(setjmp) && defined(__GNU_LIBRARY__) && \
@@ -1255,4 +1260,50 @@ _X_HIDDEN void *xfree86LookupTab[] = {
SYMFUNC(xf86I2CWriteRead)
SYMFUNC(xf86I2CWriteVec)
SYMFUNC(xf86I2CWriteWord)
+
+ /* ramdac/xf86RamDac.c */
+ SYMFUNC(RamDacCreateInfoRec)
+ SYMFUNC(RamDacHelperCreateInfoRec)
+ SYMFUNC(RamDacDestroyInfoRec)
+ SYMFUNC(RamDacHelperDestroyInfoRec)
+ SYMFUNC(RamDacInit)
+ SYMFUNC(RamDacHandleColormaps)
+ SYMFUNC(RamDacFreeRec)
+ SYMFUNC(RamDacGetHWIndex)
+ SYMVAR(RamDacHWPrivateIndex)
+ SYMVAR(RamDacScreenPrivateIndex)
+
+ /* ramdac/xf86Cursor.c */
+ SYMFUNC(xf86InitCursor)
+ SYMFUNC(xf86CreateCursorInfoRec)
+ SYMFUNC(xf86DestroyCursorInfoRec)
+ SYMFUNC(xf86ForceHWCursor)
+
+ /* ramdac/BT.c */
+ SYMFUNC(BTramdacProbe)
+ SYMFUNC(BTramdacSave)
+ SYMFUNC(BTramdacRestore)
+ SYMFUNC(BTramdacSetBpp)
+
+ /* ramdac/IBM.c */
+ SYMFUNC(IBMramdacProbe)
+ SYMFUNC(IBMramdacSave)
+ SYMFUNC(IBMramdacRestore)
+ SYMFUNC(IBMramdac526SetBpp)
+ SYMFUNC(IBMramdac640SetBpp)
+ SYMFUNC(IBMramdac526CalculateMNPCForClock)
+ SYMFUNC(IBMramdac640CalculateMNPCForClock)
+ SYMFUNC(IBMramdac526HWCursorInit)
+ SYMFUNC(IBMramdac640HWCursorInit)
+ SYMFUNC(IBMramdac526SetBppWeak)
+
+ /* ramdac/TI.c */
+ SYMFUNC(TIramdacCalculateMNPForClock)
+ SYMFUNC(TIramdacProbe)
+ SYMFUNC(TIramdacSave)
+ SYMFUNC(TIramdacRestore)
+ SYMFUNC(TIramdac3026SetBpp)
+ SYMFUNC(TIramdac3030SetBpp)
+ SYMFUNC(TIramdacHWCursorInit)
+ SYMFUNC(TIramdacLoadPalette)
};

View File

@ -1,33 +0,0 @@
diff -up xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c.jx xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c
--- xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c.jx 2007-10-03 13:10:28.000000000 -0400
+++ xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c 2007-10-05 09:58:11.000000000 -0400
@@ -1420,6 +1420,9 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn,
{
if (!strcmp (preferred_mode, mode->name))
{
+ DisplayModePtr m;
+
+ /* Sort it to the front of the list */
if (mode != output->probed_modes)
{
if (mode->prev)
@@ -1431,10 +1434,17 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn,
mode->prev = NULL;
output->probed_modes = mode;
}
+
+ /* Mark it preferred */
mode->type |= M_T_PREFERRED;
+
+ /* And unprefer everything else */
+ for (m = output->probed_modes; m; m = m->next)
+ if (m != mode)
+ m->type &= ~M_T_PREFERRED;
+
+ break;
}
- else
- mode->type &= ~M_T_PREFERRED;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,37 +0,0 @@
--- xorg-server-1.3.0.0/randr/rrxinerama.c.jx 2007-05-17 17:07:31.000000000 -0400
+++ xorg-server-1.3.0.0/randr/rrxinerama.c 2007-05-31 21:41:13.000000000 -0400
@@ -147,12 +147,6 @@
}
static Bool
-RRXineramaScreenActive (ScreenPtr pScreen)
-{
- return rrGetScrPriv(pScreen) != NULL;
-}
-
-static Bool
RRXineramaCrtcActive (RRCrtcPtr crtc)
{
return crtc->mode != NULL && crtc->numOutputs > 0;
@@ -164,7 +158,7 @@
int i, n;
n = 0;
- if (RRXineramaScreenActive (pScreen))
+ if (rrGetScrPriv (pScreen))
{
rrScrPriv(pScreen);
for (i = 0; i < pScrPriv->numCrtcs; i++)
@@ -174,6 +168,12 @@
return n;
}
+static Bool
+RRXineramaScreenActive (ScreenPtr pScreen)
+{
+ return RRXineramaScreenCount (pScreen) > 0;
+}
+
int
ProcRRXineramaGetScreenCount(ClientPtr client)
{

View File

@ -1,54 +0,0 @@
From: Michel Dänzer <michel@tungstengraphics.com>
Date: Thu, 24 May 2007 10:10:05 +0000 (+0200)
Subject: Consolidate portPriv->pDraw assignments into xf86XVEnlistPortInWindow.
X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=commitdiff;h=649e7f82d8d4333443493056b81eb20d6cf022bc
Consolidate portPriv->pDraw assignments into xf86XVEnlistPortInWindow.
This avoids a crash in xf86XVReputVideo and also cleans up the code slightly.
---
--- a/hw/xfree86/common/xf86xv.c
+++ b/hw/xfree86/common/xf86xv.c
@@ -979,6 +979,9 @@ xf86XVEnlistPortInWindow(WindowPtr pWin,
winPriv->next = PrivRoot;
pWin->devPrivates[XF86XVWindowIndex].ptr = (pointer)winPriv;
}
+
+ portPriv->pDraw = (DrawablePtr)pWin;
+
return Success;
}
@@ -1375,7 +1378,6 @@ xf86XVPutVideo(
result = xf86XVEnlistPortInWindow((WindowPtr)pDraw, portPriv);
if(result != Success) return result;
- portPriv->pDraw = pDraw;
portPriv->type = XvInputMask;
/* save a copy of these parameters */
@@ -1479,7 +1481,6 @@ xf86XVPutStill(
xf86XVEnlistPortInWindow((WindowPtr)pDraw, portPriv);
portPriv->isOn = XV_ON;
- portPriv->pDraw = pDraw;
portPriv->drw_x = drw_x; portPriv->drw_y = drw_y;
portPriv->drw_w = drw_w; portPriv->drw_h = drw_h;
portPriv->type = 0; /* no mask means it's transient and should
@@ -1529,7 +1530,6 @@ xf86XVGetVideo(
result = xf86XVEnlistPortInWindow((WindowPtr)pDraw, portPriv);
if(result != Success) return result;
- portPriv->pDraw = pDraw;
portPriv->type = XvOutputMask;
/* save a copy of these parameters */
@@ -1784,7 +1784,6 @@ xf86XVPutImage(
(portPriv->AdaptorRec->flags & VIDEO_OVERLAID_IMAGES)) {
portPriv->isOn = XV_ON;
- portPriv->pDraw = pDraw;
portPriv->drw_x = drw_x; portPriv->drw_y = drw_y;
portPriv->drw_w = drw_w; portPriv->drw_h = drw_h;
portPriv->type = 0; /* no mask means it's transient and should

View File

@ -1,291 +0,0 @@
From: Eric Anholt <eric@anholt.net>
Date: Thu, 11 Oct 2007 23:48:56 +0000 (-0700)
Subject: Bug #10304,12784,11603: Add quirks for several physical size issues.
X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=commitdiff;h=fc092334ac0a323b80a9602cb8bf60ca9dee3bfa
Bug #10304,12784,11603: Add quirks for several physical size issues.
A lot of EDID writers apparently end up stuffing centimeters (like the
maximum image size field) into the detailed timings, instead of millimeters.
Some of them only get it wrong in one direction. Also, add a quirk to let
us mark the largest 75hz mode as preferred, which will often be used for
EDID 1.0 CRTs.
---
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -2134,8 +2134,12 @@ _X_EXPORT xf86MonPtr
xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus)
{
ScrnInfoPtr scrn = output->scrn;
+ xf86MonPtr mon;
- return xf86DoEDID_DDC2 (scrn->scrnIndex, pDDCBus);
+ mon = xf86DoEDID_DDC2 (scrn->scrnIndex, pDDCBus);
+ xf86DDCApplyQuirks (scrn->scrnIndex, pDDCBus);
+
+ return mon;
}
static char *_xf86ConnectorNames[] = { "None", "VGA", "DVI-I", "DVI-D",
--- a/hw/xfree86/modes/xf86EdidModes.c
+++ b/hw/xfree86/modes/xf86EdidModes.c
@@ -54,6 +54,16 @@ typedef enum {
DDC_QUIRK_PREFER_LARGE_60 = 1 << 0,
/* 135MHz clock is too high, drop a bit */
DDC_QUIRK_135_CLOCK_TOO_HIGH = 1 << 1,
+ /* Prefer the largest mode at 75 Hz */
+ DDC_QUIRK_PREFER_LARGE_75 = 1 << 2,
+ /* Convert detailed timing's horizontal from units of cm to mm */
+ DDC_QUIRK_DETAILED_H_IN_CM = 1 << 3,
+ /* Convert detailed timing's vertical from units of cm to mm */
+ DDC_QUIRK_DETAILED_V_IN_CM = 1 << 4,
+ /* Detailed timing descriptors have bogus size values, so just take the
+ * maximum size and use that.
+ */
+ DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE = 1 << 5,
} ddc_quirk_t;
static Bool quirk_prefer_large_60 (int scrnIndex, xf86MonPtr DDC)
@@ -81,6 +91,52 @@ static Bool quirk_prefer_large_60 (int s
return FALSE;
}
+static Bool quirk_prefer_large_75 (int scrnIndex, xf86MonPtr DDC)
+{
+ /* Bug #11603: Funai Electronics PM36B */
+ if (memcmp (DDC->vendor.name, "FCM", 4) == 0 &&
+ DDC->vendor.prod_id == 13600)
+ return TRUE;
+
+ return FALSE;
+}
+
+static Bool quirk_detailed_h_in_cm (int scrnIndex, xf86MonPtr DDC)
+{
+ /* Bug #10304: "LGPhilipsLCD LP154W01-A5" */
+ /* Bug #12784: "LGPhilipsLCD LP154W01-TLA2" */
+ if (memcmp (DDC->vendor.name, "LPL", 4) == 0 &&
+ DDC->vendor.prod_id == 0)
+ return TRUE;
+
+ /* Bug #11603: Funai Electronics PM36B */
+ if (memcmp (DDC->vendor.name, "FCM", 4) == 0 &&
+ DDC->vendor.prod_id == 13600)
+ return TRUE;
+
+ return FALSE;
+}
+
+static Bool quirk_detailed_v_in_cm (int scrnIndex, xf86MonPtr DDC)
+{
+ /* Bug #11603: Funai Electronics PM36B */
+ if (memcmp (DDC->vendor.name, "FCM", 4) == 0 &&
+ DDC->vendor.prod_id == 13600)
+ return TRUE;
+
+ return FALSE;
+}
+
+static Bool quirk_detailed_use_maximum_size (int scrnIndex, xf86MonPtr DDC)
+{
+ /* Bug #10304: LGPhilipsLCD LP154W01-A5 */
+ if (memcmp (DDC->vendor.name, "LPL", 4) == 0 &&
+ DDC->vendor.prod_id == 0)
+ return TRUE;
+
+ return FALSE;
+}
+
static Bool quirk_135_clock_too_high (int scrnIndex, xf86MonPtr DDC)
{
/* Envision Peripherals, Inc. EN-7100e. See bug #9550. */
@@ -106,6 +162,22 @@ static const ddc_quirk_map_t ddc_quirks[
quirk_135_clock_too_high, DDC_QUIRK_135_CLOCK_TOO_HIGH,
"Recommended 135MHz pixel clock is too high"
},
+ {
+ quirk_prefer_large_75, DDC_QUIRK_PREFER_LARGE_75,
+ "Detailed timing is not preferred, use largest mode at 75Hz"
+ },
+ {
+ quirk_detailed_h_in_cm, DDC_QUIRK_DETAILED_H_IN_CM,
+ "Detailed timings give horizontal size in cm."
+ },
+ {
+ quirk_detailed_v_in_cm, DDC_QUIRK_DETAILED_V_IN_CM,
+ "Detailed timings give vertical size in cm."
+ },
+ {
+ quirk_detailed_use_maximum_size, DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE,
+ "Detailed timings give sizes in cm."
+ },
{
NULL, DDC_QUIRK_NONE,
"No known quirks"
@@ -303,6 +375,98 @@ DDCGuessRangesFromModes(int scrnIndex, M
}
}
+static ddc_quirk_t
+xf86DDCDetectQuirks(int scrnIndex, xf86MonPtr DDC, Bool verbose)
+{
+ ddc_quirk_t quirks;
+ int i;
+
+ quirks = DDC_QUIRK_NONE;
+ for (i = 0; ddc_quirks[i].detect; i++) {
+ if (ddc_quirks[i].detect (scrnIndex, DDC)) {
+ if (verbose) {
+ xf86DrvMsg (scrnIndex, X_INFO, " EDID quirk: %s\n",
+ ddc_quirks[i].description);
+ }
+ quirks |= ddc_quirks[i].quirk;
+ }
+ }
+
+ return quirks;
+}
+
+/**
+ * Applies monitor-specific quirks to the decoded EDID information.
+ *
+ * Note that some quirks applying to the mode list are still implemented in
+ * xf86DDCGetModes.
+ */
+void
+xf86DDCApplyQuirks(int scrnIndex, xf86MonPtr DDC)
+{
+ ddc_quirk_t quirks = xf86DDCDetectQuirks (scrnIndex, DDC, FALSE);
+ int i;
+
+ for (i = 0; i < DET_TIMINGS; i++) {
+ struct detailed_monitor_section *det_mon = &DDC->det_mon[i];
+
+ if (det_mon->type != DT)
+ continue;
+
+ if (quirks & DDC_QUIRK_DETAILED_H_IN_CM)
+ det_mon->section.d_timings.h_size *= 10;
+
+ if (quirks & DDC_QUIRK_DETAILED_V_IN_CM)
+ det_mon->section.d_timings.v_size *= 10;
+
+ if (quirks & DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE) {
+ det_mon->section.d_timings.h_size = 10 * DDC->features.hsize;
+ det_mon->section.d_timings.v_size = 10 * DDC->features.vsize;
+ }
+ }
+}
+
+/**
+ * Walks the modes list, finding the mode with the largest area which is
+ * closest to the target refresh rate, and marks it as the only preferred mode.
+*/
+static void
+xf86DDCSetPreferredRefresh(int scrnIndex, DisplayModePtr modes,
+ float target_refresh)
+{
+ DisplayModePtr mode, best = modes;
+
+ for (mode = modes; mode; mode = mode->next)
+ {
+ mode->type &= ~M_T_PREFERRED;
+
+ if (mode == best) continue;
+
+ if (mode->HDisplay * mode->VDisplay >
+ best->HDisplay * best->VDisplay)
+ {
+ best = mode;
+ continue;
+ }
+ if (mode->HDisplay * mode->VDisplay ==
+ best->HDisplay * best->VDisplay)
+ {
+ double mode_refresh = xf86ModeVRefresh (mode);
+ double best_refresh = xf86ModeVRefresh (best);
+ double mode_dist = fabs(mode_refresh - target_refresh);
+ double best_dist = fabs(best_refresh - target_refresh);
+
+ if (mode_dist < best_dist)
+ {
+ best = mode;
+ continue;
+ }
+ }
+ }
+ if (best)
+ best->type |= M_T_PREFERRED;
+}
+
_X_EXPORT DisplayModePtr
xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC)
{
@@ -312,15 +476,9 @@ xf86DDCGetModes(int scrnIndex, xf86MonPt
xf86DrvMsg (scrnIndex, X_INFO, "EDID vendor \"%s\", prod id %d\n",
DDC->vendor.name, DDC->vendor.prod_id);
- quirks = DDC_QUIRK_NONE;
- for (i = 0; ddc_quirks[i].detect; i++)
- if (ddc_quirks[i].detect (scrnIndex, DDC))
- {
- xf86DrvMsg (scrnIndex, X_INFO, " EDID quirk: %s\n",
- ddc_quirks[i].description);
- quirks |= ddc_quirks[i].quirk;
- }
-
+
+ quirks = xf86DDCDetectQuirks(scrnIndex, DDC, TRUE);
+
preferred = PREFERRED_TIMING_MODE(DDC->features.msc);
if (quirks & DDC_QUIRK_PREFER_LARGE_60)
preferred = 0;
@@ -357,32 +515,11 @@ xf86DDCGetModes(int scrnIndex, xf86MonPt
Modes = xf86ModesAdd(Modes, Mode);
if (quirks & DDC_QUIRK_PREFER_LARGE_60)
- {
- DisplayModePtr best = Modes;
- for (Mode = Modes; Mode; Mode = Mode->next)
- {
- if (Mode == best) continue;
- if (Mode->HDisplay * Mode->VDisplay > best->HDisplay * best->VDisplay)
- {
- best = Mode;
- continue;
- }
- if (Mode->HDisplay * Mode->VDisplay == best->HDisplay * best->VDisplay)
- {
- double mode_refresh = xf86ModeVRefresh (Mode);
- double best_refresh = xf86ModeVRefresh (best);
- double mode_dist = fabs(mode_refresh - 60.0);
- double best_dist = fabs(best_refresh - 60.0);
- if (mode_dist < best_dist)
- {
- best = Mode;
- continue;
- }
- }
- }
- if (best)
- best->type |= M_T_PREFERRED;
- }
+ xf86DDCSetPreferredRefresh(scrnIndex, Modes, 60);
+
+ if (quirks & DDC_QUIRK_PREFER_LARGE_75)
+ xf86DDCSetPreferredRefresh(scrnIndex, Modes, 75);
+
return Modes;
}
--- a/hw/xfree86/modes/xf86Modes.h
+++ b/hw/xfree86/modes/xf86Modes.h
@@ -95,4 +95,7 @@ xf86GetMonitorModes (ScrnInfoPtr pScrn,
DisplayModePtr
xf86GetDefaultModes (Bool interlaceAllowed, Bool doubleScanAllowed);
+void
+xf86DDCApplyQuirks(int scrnIndex, xf86MonPtr DDC);
+
#endif /* _XF86MODES_H_ */

View File

@ -1,28 +0,0 @@
commit 2fe74ef339c3a4902ae8214f5a0454662895422c
Author: Matthias Hopf <mhopf@suse.de>
Date: Thu Mar 15 16:56:01 2007 +0100
Fix calculations in x86 emulator for the long long case (Andreas Schwab).
diff --git a/hw/xfree86/x86emu/prim_ops.c b/hw/xfree86/x86emu/prim_ops.c
index 461e09e..b9e7257 100644
--- a/hw/xfree86/x86emu/prim_ops.c
+++ b/hw/xfree86/x86emu/prim_ops.c
@@ -2082,7 +2082,7 @@ Implements the IMUL instruction and side effects.
void imul_long_direct(u32 *res_lo, u32* res_hi,u32 d, u32 s)
{
#ifdef __HAS_LONG_LONG__
- s64 res = (s32)d * (s32)s;
+ s64 res = (s64)(s32)d * (s32)s;
*res_lo = (u32)res;
*res_hi = (u32)(res >> 32);
@@ -2174,7 +2174,7 @@ Implements the MUL instruction and side effects.
void mul_long(u32 s)
{
#ifdef __HAS_LONG_LONG__
- u64 res = (u32)M.x86.R_EAX * (u32)s;
+ u64 res = (u64)M.x86.R_EAX * s;
M.x86.R_EAX = (u32)res;
M.x86.R_EDX = (u32)(res >> 32);

View File

@ -1,36 +0,0 @@
--- xorg-server-1.3.0.0/os/utils.c.jx 2007-04-25 13:28:05.000000000 -0400
+++ xorg-server-1.3.0.0/os/utils.c 2007-04-30 14:33:04.000000000 -0400
@@ -1725,6 +1725,8 @@
int pid;
} *pidlist;
+static sighandler_t old_alarm = NULL; /* XXX horrible awful hack */
+
pointer
Popen(char *command, char *type)
{
@@ -1746,11 +1748,15 @@
return NULL;
}
+ /* Ignore the smart scheduler while this is going on */
+ old_alarm = signal(SIGALRM, SIG_IGN);
+
switch (pid = fork()) {
case -1: /* error */
close(pdes[0]);
close(pdes[1]);
xfree(cur);
+ signal(SIGALRM, old_alarm);
return NULL;
case 0: /* child */
if (setgid(getgid()) == -1)
@@ -1926,6 +1932,8 @@
/* allow EINTR again */
OsReleaseSignals ();
+ signal(SIGALRM, old_alarm);
+
return pid == -1 ? -1 : pstat;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +0,0 @@
--- a/randr/rrscreen.c.orig 2006-07-05 21:31:44.000000000 +0300
+++ b/randr/rrscreen.c 2007-02-03 00:00:10.000000000 +0200
@@ -723,7 +723,6 @@
pScrPriv = rrGetScrPriv(pScreen);
time = ClientTimeToServerTime(stuff->timestamp);
- configTime = ClientTimeToServerTime(stuff->configTimestamp);
oldWidth = pScreen->width;
oldHeight = pScreen->height;
@@ -738,11 +737,15 @@
return BadAlloc;
/*
- * if the client's config timestamp is not the same as the last config
+ * If the client's config timestamp is not the same as the last config
* timestamp, then the config information isn't up-to-date and
- * can't even be validated
+ * can't even be validated.
+ *
+ * Note that the client only knows about the milliseconds part of the
+ * timestamp, so using CompareTimeStamps here would cause randr to suddenly
+ * stop working after several hours have passed (freedesktop bug #6502).
*/
- if (CompareTimeStamps (configTime, pScrPriv->lastConfigTime) != 0)
+ if (stuff->configTimestamp != pScrPriv->lastConfigTime.milliseconds)
{
rep.status = RRSetConfigInvalidConfigTime;
goto sendReply;

View File

@ -0,0 +1,28 @@
From fe82a1fe634a2e0ceb030de90309d26044c7b75e Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Thu, 1 Nov 2007 15:06:17 -0400
Subject: [PATCH] Enable builtin font FPE.
---
dix/dixfonts.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index c21b3ec..c951b05 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -1890,11 +1890,8 @@ InitFonts (void)
} else
#endif
{
-#ifdef BUILTIN_FONTS
BuiltinRegisterFpeFunctions();
-#else
FontFileRegisterFpeFunctions();
-#endif
#ifndef NOFONTSERVERACCESS
fs_register_fpe_functions();
#endif
--
1.5.3.4

View File

@ -0,0 +1,32 @@
From 6a39049e34eeefeeb821970d83e1994870af8f3e Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Thu, 1 Nov 2007 14:56:25 -0400
Subject: [PATCH] Don't backfill bg=None windows in Composite.
---
composite/compalloc.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/composite/compalloc.c b/composite/compalloc.c
index 006e808..67d830d 100644
--- a/composite/compalloc.c
+++ b/composite/compalloc.c
@@ -478,6 +478,7 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h)
* Copy bits from the parent into the new pixmap so that it will
* have "reasonable" contents in case for background None areas.
*/
+#if 0
if (pGC)
{
XID val = IncludeInferiors;
@@ -492,6 +493,7 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h)
w, h, 0, 0);
FreeScratchGC (pGC);
}
+#endif
}
else
{
--
1.5.3.4

View File

@ -0,0 +1,25 @@
From 6344659a33a7c192dffe6e796c771d02f78da5e5 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Thu, 1 Nov 2007 15:02:24 -0400
Subject: [PATCH] Build libxf86config with -fPIC.
---
hw/xfree86/parser/Makefile.am | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/hw/xfree86/parser/Makefile.am b/hw/xfree86/parser/Makefile.am
index 849ee8b..0691158 100644
--- a/hw/xfree86/parser/Makefile.am
+++ b/hw/xfree86/parser/Makefile.am
@@ -25,7 +25,7 @@ libxf86config_a_SOURCES = \
DRI.c \
Extensions.c
-AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
+AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) -fPIC -fvisibility=hidden
EXTRA_DIST = \
Configint.h \
--
1.5.3.4

View File

@ -0,0 +1,48 @@
From 823a13f90b5619823325ea162ae30d652e448492 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Thu, 1 Nov 2007 10:39:57 -0400
Subject: [PATCH] Link GL subsystem against libselinux.
---
configure.ac | 4 +++-
hw/xfree86/dixmods/Makefile.am | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 57132b0..a16b46a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -339,6 +339,8 @@ case $host_cpu in
;;
esac
+SYS_LIBS="${SYS_LIBS} -lselinux"
+
dnl BSD *_video.c selection
AM_CONDITIONAL(ALPHA_VIDEO, [test "x$ALPHA_VIDEO" = xyes])
AM_CONDITIONAL(ARM_VIDEO, [test "x$ARM_VIDEO" = xyes])
@@ -1229,7 +1231,7 @@ AC_MSG_RESULT([$XNEST])
AM_CONDITIONAL(XNEST, [test "x$XNEST" = xyes])
if test "x$XNEST" = xyes; then
- XNEST_LIBS="$CONFIG_LIB $FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $CWRAP_LIB"
+ XNEST_LIBS="$CONFIG_LIB $FB_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $CWRAP_LIB $XSERVER_LIBS"
XNEST_SYS_LIBS="$XNESTMODULES_LIBS"
AC_SUBST([XNEST_LIBS])
AC_SUBST([XNEST_SYS_LIBS])
diff --git a/hw/xfree86/dixmods/Makefile.am b/hw/xfree86/dixmods/Makefile.am
index efc5f4a..1b9ecfd 100644
--- a/hw/xfree86/dixmods/Makefile.am
+++ b/hw/xfree86/dixmods/Makefile.am
@@ -50,7 +50,7 @@ INCLUDES = @XORG_INCS@ \
-I$(top_srcdir)/GL/glx
libGLcore_la_LDFLAGS = -avoid-version
-libGLcore_la_LIBADD = $(top_builddir)/GL/mesa/libGLcore.la
+libGLcore_la_LIBADD = $(top_builddir)/GL/mesa/libGLcore.la -lselinux
libGLcore_la_SOURCES = GLcoremodule.c
libafb_la_LDFLAGS = -avoid-version
--
1.5.3.4

View File

@ -1,17 +1,49 @@
From fb3008787193b79909fe922577794f7d4a656922 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Sun, 28 Oct 2007 09:37:52 +0100
Subject: [PATCH] Add pixmap eviction for XAA.
Date: Thu, 1 Nov 2007 15:18:31 -0400
Subject: [PATCH] Add pixmap eviction call for XAA.
DRI drivers without zero-copy EXT_texture_from_pixmap need to copy the
texture image out of video memory to bind it. Ick. Add a hack to
evict XAA pixmaps and disable the pixmap cache when the first texture
is bound.
---
diff -up xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c
--- xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps 2007-08-13 10:27:45.000000000 +1000
+++ xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c 2007-08-13 10:28:35.000000000 +1000
@@ -97,6 +97,30 @@ XAADestroyInfoRec(XAAInfoRecPtr infoRec)
GL/glx/glxdri.c | 16 ++++++++++++++++
hw/xfree86/xaa/xaaInit.c | 24 ++++++++++++++++++++++++
2 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index c0da07b..6c4faed 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -360,6 +360,22 @@ __glXDRIbindTexImage(__GLXcontext *baseContext,
pixmap = (PixmapPtr) glxPixmap->pDraw;
+ if (!screen->texOffsetStart) {
+ /* When the GLX_EXT_texture_from_pixmap is used, as it's
+ * implemented here, we want to pull pixmap out of video memory
+ * and into host memory. */
+ extern void XAAEvictPixmaps(void);
+ static int evictedPixmaps = 0;
+
+ if (!evictedPixmaps) {
+ __glXDRIenterServer(GL_FALSE);
+ if (dlsym(RTLD_DEFAULT, "XAAEvictPixmaps"))
+ XAAEvictPixmaps();
+ __glXDRIleaveServer(GL_FALSE);
+ evictedPixmaps = TRUE;
+ }
+ }
+
if (screen->texOffsetStart && screen->texOffset) {
__GLXDRIdrawable **texOffsetOverride = screen->texOffsetOverride;
int i, firstEmpty = 16;
diff --git a/hw/xfree86/xaa/xaaInit.c b/hw/xfree86/xaa/xaaInit.c
index 4222425..602b525 100644
--- a/hw/xfree86/xaa/xaaInit.c
+++ b/hw/xfree86/xaa/xaaInit.c
@@ -88,6 +88,30 @@ XAADestroyInfoRec(XAAInfoRecPtr infoRec)
xfree(infoRec);
}
@ -34,7 +66,7 @@ diff -up xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps xorg-ser
+
+ infoRec->offscreenDepths = 0;
+ infoRec->Flags &= ~OFFSCREEN_PIXMAPS;
+
+
+ XAAMoveOutOffscreenPixmaps(pScreen);
+ XAAInvalidatePixmapCache(pScreen);
+ }
@ -42,29 +74,6 @@ diff -up xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps xorg-ser
Bool
XAAInit(ScreenPtr pScreen, XAAInfoRecPtr infoRec)
diff -up xorg-server-1.3.0.0/GL/glx/glxdri.c.offscreen-pixmaps xorg-server-1.3.0.0/GL/glx/glxdri.c
--- xorg-server-1.3.0.0/GL/glx/glxdri.c.offscreen-pixmaps 2007-08-13 10:23:52.000000000 +1000
+++ xorg-server-1.3.0.0/GL/glx/glxdri.c 2007-08-13 10:26:08.000000000 +1000
@@ -380,6 +380,22 @@ __glXDRIbindTexImage(__GLXcontext *baseC
__GLXDRIscreen * const screen =
(__GLXDRIscreen *) __glXgetActiveScreen(pScreen->myNum);
+ if (!screen->texOffsetStart) {
+ /* When the GLX_EXT_texture_from_pixmap is used, as it's
+ * implemented here, we want to pull pixmap out of video memory
+ * and into host memory. */
+ extern void XAAEvictPixmaps(void);
+ static int evictedPixmaps = 0;
+
+ if (!evictedPixmaps) {
+ __glXDRIenterServer(GL_FALSE);
+ if (dlsym(RTLD_DEFAULT, "XAAEvictPixmaps"))
+ XAAEvictPixmaps();
+ __glXDRIleaveServer(GL_FALSE);
+ evictedPixmaps = TRUE;
+ }
+ }
+
pixmap = (PixmapPtr) glxPixmap->pDraw;
if (screen->texOffsetStart && screen->driScreen.setTexOffset) {
--
1.5.3.4