merging trunk

This commit is contained in:
Stephan Raue 2010-03-16 11:53:00 +01:00
commit 890feb4608
41 changed files with 192 additions and 1044 deletions

View File

@ -1 +1 @@
http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.34-rc1.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.34-rc1.tar.bz2

View File

@ -13,3 +13,9 @@ progress "make variable directory structure"
$IONICE chmod 1777 /var/run /var/tmp
$IONICE touch /var/run/utmp
$IONICE chmod 1777 /var/run/utmp
$IONICE touch /var/log/wtmp
$IONICE chmod 1777 /var/log/wtmp

View File

@ -8,10 +8,14 @@ $SCRIPTS/install Linux-PAM
PKG_DIR=`find $PACKAGES -type d -name $1`
ROOT_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw $ROOT_PASSWORD`"
USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw $USER_PASSWORD`"
add_user root "$ROOT_PWD" 0 0 "Root User" "/storage" "/bin/sh"
add_group root 0
add_user $USER_NAME "$USER_PWD" 1000 1000 "User" "/storage" "/bin/sh"
add_group $USER_GROUP 1000
cp -PR $BUILD/busybox*/_install-system/* $INSTALL
echo "chmod 4755 $INSTALL/bin/busybox" >> $FAKEROOT_SCRIPT

View File

@ -1 +1 @@
http://xorg.freedesktop.org/archive/individual/driver/xf86-video-ati-6.12.191.tar.bz2
http://xorg.freedesktop.org/archive/individual/driver/xf86-video-ati-6.12.192.tar.bz2

View File

@ -1 +1 @@
http://xorg.freedesktop.org/releases/individual/lib/libXt-1.0.7.tar.bz2
http://xorg.freedesktop.org/archive/individual/lib/libXt-1.0.8.tar.bz2

View File

@ -1,336 +0,0 @@
diff -Naur xorg-server-1.7.99.1/configure xorg-server-1.7.99.1.patch/configure
diff -Naur xorg-server-1.7.99.1/configure.ac xorg-server-1.7.99.1.patch/configure.ac
--- xorg-server-1.7.99.1/configure.ac 2009-10-21 18:06:54.000000000 +0200
+++ xorg-server-1.7.99.1.patch/configure.ac 2009-10-24 10:51:17.074488205 +0200
@@ -501,9 +501,9 @@
AC_ARG_WITH(xkb-path, AS_HELP_STRING([--with-xkb-path=PATH], [Path to XKB base dir (default: ${datadir}/X11/xkb)]),
[ XKBPATH="$withval" ],
[ XKBPATH="${datadir}/X11/xkb" ])
-AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${datadir}/X11/xkb/compiled)]),
+AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${localstatedir}/cache/xkb)]),
[ XKBOUTPUT="$withval" ],
- [ XKBOUTPUT="compiled" ])
+ [ XKBOUTPUT="${localstatedir}/cache/xkb" ])
AC_ARG_WITH(default-xkb-rules, AS_HELP_STRING([--with-default-xkb-rules=RULES],
[Keyboard ruleset (default: base/evdev)]),
[ XKB_DFLT_RULES="$withval" ],
@@ -1099,7 +1099,7 @@
dnl Make sure XKM_OUTPUT_DIR is an absolute path
XKBOUTPUT_FIRSTCHAR=`echo $XKBOUTPUT | cut -b 1`
if [[ x$XKBOUTPUT_FIRSTCHAR != x/ -a x$XKBOUTPUT_FIRSTCHAR != 'x$' ]] ; then
- XKBOUTPUT="$XKB_BASE_DIRECTORY/$XKBOUTPUT"
+ AC_MSG_ERROR([xkb-output must be an absolute path.])
fi
dnl XKM_OUTPUT_DIR (used in code) must end in / or file names get hosed
diff -Naur xorg-server-1.7.99.1/xkb/ddxLoad.c xorg-server-1.7.99.1.patch/xkb/ddxLoad.c
--- xorg-server-1.7.99.1/xkb/ddxLoad.c 2009-10-21 15:46:53.000000000 +0200
+++ xorg-server-1.7.99.1.patch/xkb/ddxLoad.c 2009-10-24 10:50:23.303364966 +0200
@@ -30,6 +30,13 @@
#include <xkb-config.h>
+#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */
+# include <sha1.h>
+#else /* Use OpenSSL's libcrypto */
+# include <stddef.h> /* buggy openssl/sha.h wants size_t */
+# include <openssl/sha.h>
+#endif
+
#include <stdio.h>
#include <ctype.h>
#include <X11/X.h>
@@ -43,24 +50,13 @@
#define XKBSRV_NEED_FILE_FUNCS
#include <xkbsrv.h>
#include <X11/extensions/XI.h>
+#include <errno.h>
#include "xkb.h"
#if defined(CSRG_BASED) || defined(linux) || defined(__GNU__)
#include <paths.h>
#endif
- /*
- * If XKM_OUTPUT_DIR specifies a path without a leading slash, it is
- * relative to the top-level XKB configuration directory.
- * Making the server write to a subdirectory of that directory
- * requires some work in the general case (install procedure
- * has to create links to /var or somesuch on many machines),
- * so we just compile into /usr/tmp for now.
- */
-#ifndef XKM_OUTPUT_DIR
-#define XKM_OUTPUT_DIR "compiled/"
-#endif
-
#define PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\""
#define ERROR_PREFIX "\"> \""
#define POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\""
@@ -175,6 +171,45 @@
}
static Bool
+Sha1Asc(char sha1Asc[SHA_DIGEST_LENGTH*2+1], const char * input)
+{
+ int i;
+ unsigned char sha1[SHA_DIGEST_LENGTH];
+
+#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */
+ SHA1_CTX ctx;
+
+ SHA1Init (&ctx);
+ SHA1Update (&ctx, input, strlen(input));
+ SHA1Final (sha1, &ctx);
+#else /* Use OpenSSL's libcrypto */
+ SHA_CTX ctx;
+ int success;
+
+ success = SHA1_Init (&ctx);
+ if (! success)
+ return BadAlloc;
+
+ success = SHA1_Update (&ctx, input, strlen(input));
+ if (! success)
+ return BadAlloc;
+
+ success = SHA1_Final (sha1, &ctx);
+ if (! success)
+ return BadAlloc;
+#endif
+
+ /* convert sha1 to sha1_asc */
+ for(i=0; i<SHA_DIGEST_LENGTH; ++i) {
+ sprintf(sha1Asc+i*2, "%02X", sha1[i]);
+ }
+
+ return Success;
+}
+
+/* call xkbcomp and compile XKB keymap, return xkm file name in
+ nameRtrn */
+static Bool
XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
XkbComponentNamesPtr names,
unsigned want,
@@ -183,7 +218,11 @@
int nameRtrnLen)
{
FILE * out;
- char *buf = NULL, keymap[PATH_MAX], xkm_output_dir[PATH_MAX];
+ char * buf = NULL, xkmfile[PATH_MAX], xkm_output_dir[PATH_MAX];
+ char * tmpXkmFile = NULL;
+ char * canonicalXkmFileName = NULL;
+ char sha1Asc[SHA_DIGEST_LENGTH*2+1], xkbKeyMapBuf[100*1024];
+ int ret, result;
const char *emptystring = "";
const char *xkbbasedirflag = emptystring;
@@ -194,15 +233,69 @@
/* WIN32 has no popen. The input must be stored in a file which is
used as input for xkbcomp. xkbcomp does not read from stdin. */
char tmpname[PATH_MAX];
- const char *xkmfile = tmpname;
+ const char *xkbfile = tmpname;
#else
- const char *xkmfile = "-";
+ const char *xkbfile = "-";
+#endif
+
+ /* Write keymap source (xkbfile) to memory buffer `xkbKeyMapBuf',
+ of which SHA1 is generated and used as result xkm file name */
+ memset(xkbKeyMapBuf, 0, sizeof(xkbKeyMapBuf));
+ out = fmemopen(xkbKeyMapBuf, sizeof(xkbKeyMapBuf), "w");
+ if (NULL == out) {
+ ErrorF("[xkb] Open xkbKeyMapBuf for writing failed\n");
+ return False;
+ }
+ ret = XkbWriteXKBKeymapForNames(out, names, xkb, want, need);
+ if (fclose(out) !=0)
+ {
+ ErrorF("[xkb] XkbWriteXKBKeymapForNames error, perhaps xkbKeyMapBuf is too small\n");
+ return False;
+ }
+#ifdef DEBUG
+ if (xkbDebugFlags) {
+ ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n");
+ fputs(xkbKeyMapBuf, stderr);
+ }
#endif
+ if (!ret) {
+ ErrorF("[xkb] Generating XKB Keymap failed, giving up compiling keymap\n");
+ return False;
+ }
- snprintf(keymap, sizeof(keymap), "server-%s", display);
+ DebugF("[xkb] computing SHA1 of keymap\n");
+ if (Success == Sha1Asc(sha1Asc, xkbKeyMapBuf)) {
+ snprintf(xkmfile, sizeof(xkmfile), "server-%s", sha1Asc);
+ }
+ else {
+ ErrorF("[xkb] Computing SHA1 of keymap failed, "
+ "using display name instead as xkm file name\n");
+ snprintf(xkmfile, sizeof(xkmfile), "server-%s", display);
+ }
OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir));
+ /* set nameRtrn, fail if it's too small */
+ if ((strlen(xkmfile)+1 > nameRtrnLen) && nameRtrn) {
+ ErrorF("[xkb] nameRtrn too small to hold xkmfile name\n");
+ return False;
+ }
+ strncpy(nameRtrn, xkmfile, nameRtrnLen);
+
+ /* if the xkm file already exists, reuse it */
+ canonicalXkmFileName = Xprintf("%s%s.xkm", xkm_output_dir, xkmfile);
+ if (access(canonicalXkmFileName, R_OK) == 0) {
+ /* yes, we can reuse the old xkm file */
+ LogMessage(X_INFO, "XKB: reuse xkmfile %s\n", canonicalXkmFileName);
+ result = True;
+ goto _ret;
+ }
+ LogMessage(X_INFO, "XKB: generating xkmfile %s\n", canonicalXkmFileName);
+
+ /* continue to call xkbcomp to compile the keymap. to avoid race
+ condition, we compile it to a tmpfile then rename it to
+ xkmfile */
+
#ifdef WIN32
strcpy(tmpname, Win32TempDir());
strcat(tmpname, "\\xkb_XXXXXX");
@@ -225,19 +318,30 @@
}
}
+ if ( (tmpXkmFile = tempnam(xkm_output_dir, NULL)) == NULL ) {
+ ErrorF("[xkb] Can't generate temp xkm file name");
+ result = False;
+ goto _ret;
+ }
+
buf = Xprintf("\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" "
- "-em1 %s -emp %s -eml %s \"%s%s.xkm\"",
+ "-em1 %s -emp %s -eml %s \"%s\"",
xkbbindir, xkbbindirsep,
( (xkbDebugFlags < 2) ? 1 :
((xkbDebugFlags > 10) ? 10 : (int)xkbDebugFlags) ),
- xkbbasedirflag, xkmfile,
+ xkbbasedirflag, xkbfile,
PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1,
- xkm_output_dir, keymap);
+ tmpXkmFile);
if (xkbbasedirflag != emptystring) {
xfree(xkbbasedirflag);
}
+ /* there's a potential race condition between calling tempnam()
+ and invoking xkbcomp to write the result file (potential temp
+ file name conflicts), but since xkbcomp is a standalone
+ program, we have to live with this */
+
#ifndef WIN32
out= Popen(buf,"w");
#else
@@ -245,31 +349,43 @@
#endif
if (out!=NULL) {
-#ifdef DEBUG
- if (xkbDebugFlags) {
- ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n");
- XkbWriteXKBKeymapForNames(stderr,names,xkb,want,need);
+ /* write XKBKeyMapBuf to xkbcomp */
+ if (EOF==fputs(xkbKeyMapBuf, out))
+ {
+ ErrorF("[xkb] Sending keymap to xkbcomp failed\n");
+ result = False;
+ goto _ret;
}
-#endif
- XkbWriteXKBKeymapForNames(out,names,xkb,want,need);
#ifndef WIN32
if (Pclose(out)==0)
#else
if (fclose(out)==0 && System(buf) >= 0)
#endif
{
+ /* xkbcomp success */
if (xkbDebugFlags)
DebugF("[xkb] xkb executes: %s\n",buf);
- if (nameRtrn) {
- strncpy(nameRtrn,keymap,nameRtrnLen);
- nameRtrn[nameRtrnLen-1]= '\0';
+
+ /* if canonicalXkmFileName already exists now, we simply
+ overwrite it, this is OK */
+ ret = rename(tmpXkmFile, canonicalXkmFileName);
+ if (0 != ret) {
+ ErrorF("[xkb] Can't rename %s to %s, error: %s\n",
+ tmpXkmFile, canonicalXkmFileName,
+ strerror(errno));
+
+ /* in case of error, don't unlink tmpXkmFile, leave it
+ for debugging */
+
+ result = False;
+ goto _ret;
}
- if (buf != NULL)
- xfree (buf);
- return True;
+
+ result = True;
+ goto _ret;
}
else
- LogMessage(X_ERROR, "Error compiling keymap (%s)\n", keymap);
+ LogMessage(X_ERROR, "Error compiling keymap (%s)\n", xkbfile);
#ifdef WIN32
/* remove the temporary file */
unlink(tmpname);
@@ -284,9 +400,17 @@
}
if (nameRtrn)
nameRtrn[0]= '\0';
+ result = False;
+
+_ret:
+ if (tmpXkmFile)
+ free(tmpXkmFile);
+ if (canonicalXkmFileName)
+ xfree(canonicalXkmFileName);
if (buf != NULL)
xfree (buf);
- return False;
+
+ return result;
}
static FILE *
@@ -370,7 +494,6 @@
DebugF("Loaded XKB keymap %s, defined=0x%x\n",fileName,(*xkbRtrn)->defined);
}
fclose(file);
- (void) unlink (fileName);
return (need|want)&(~missing);
}
diff -Naur xorg-server-1.7.99.1/xkb/README.compiled xorg-server-1.7.99.1.patch/xkb/README.compiled
--- xorg-server-1.7.99.1/xkb/README.compiled 2008-10-13 01:19:06.000000000 +0200
+++ xorg-server-1.7.99.1.patch/xkb/README.compiled 2009-10-24 10:50:28.069400854 +0200
@@ -4,10 +4,10 @@
or some other tool might destroy or replace the files in this directory,
so it is not a safe place to store compiled keymaps for long periods of
time. The default keymap for any server is usually stored in:
- X<num>-default.xkm
-where <num> is the display number of the server in question, which makes
-it possible for several servers *on the same host* to share the same
-directory.
+ server-<SHA1>.xkm
+
+where <SHA1> is the SHA1 hash of keymap source, so that compiled
+keymap of different keymap sources are stored in different files.
Unless the X server is modified, sharing this directory between servers on
different hosts could cause problems.

View File

@ -0,0 +1,25 @@
Bug#564203
From 8ca4233017e9f441303088e7054b6a7c4f171d80 Mon Sep 17 00:00:00 2001
From: Michael Vogt <mvo@ubuntu.com>
Date: Wed, 6 Jan 2010 14:40:34 +0100
Subject: [PATCH] * hw/xfree86/modes/xf86Crtc.c:
- only call gamma_set if its non NULL
---
hw/xfree86/modes/xf86Crtc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index d015c6a..573fe96 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -354,7 +354,7 @@ xf86CrtcSetModeTransform (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotati
}
/* Only upload when needed, to avoid unneeded delays. */
- if (!crtc->active)
+ if (!crtc->active && crtc->funcs->gamma_set)
crtc->funcs->gamma_set(crtc, crtc->gamma_red, crtc->gamma_green,
crtc->gamma_blue, crtc->gamma_size);

View File

@ -0,0 +1,22 @@
[PATCH] Do not trap access to timer and keyboard
Some VESA BIOSes need to access to them.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
---
hw/xfree86/os-support/hurd/hurd_video.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/hw/xfree86/os-support/hurd/hurd_video.c b/hw/xfree86/os-support/hurd/hurd_video.c
index 4a99db3..e049ceb 100644
--- a/hw/xfree86/os-support/hurd/hurd_video.c
+++ b/hw/xfree86/os-support/hurd/hurd_video.c
@@ -124,8 +124,6 @@ xf86EnableIO()
FatalError("xf86EnableIO: ioperm() failed (%s)\n", strerror(errno));
return FALSE;
}
- ioperm(0x40,4,0); /* trap access to the timer chip */
- ioperm(0x60,4,0); /* trap access to the keyboard controller */
return TRUE;
}

View File

@ -1,30 +0,0 @@
--- xorg-server.orig/exa/exa.c 2008-10-14 23:24:44.000000000 +0200
+++ xorg-server/exa/exa.c 2008-10-14 23:25:52.000000000 +0200
@@ -882,6 +882,11 @@
dixSetPrivate(&pScreen->devPrivates, exaScreenPrivateKey, pExaScr);
pExaScr->migration = ExaMigrationAlways;
+ if (pScreenInfo->flags & EXA_MIGRATION_GREEDY) {
+ pExaScr->migration = ExaMigrationGreedy;
+ LogMessage(X_INFO, "EXA(%d): Forcing greedy migration option\n",
+ pScreen->myNum);
+ }
exaDDXDriverInit(pScreen);
--- xorg-server.orig/exa/exa.h 2008-10-14 23:24:44.000000000 +0200
+++ xorg-server/exa/exa.h 2008-10-14 23:25:52.000000000 +0200
@@ -737,6 +737,13 @@
#define EXA_TWO_BITBLT_DIRECTIONS (1 << 2)
/**
+ * EXA_MIGRATION_GREEDY indicates to EXA that the driver prefers to
+ * use the "greedy" migration heuristic. This is to work around
+ * issues with EXA on the Intel 965 chipset. (LP: #177492)
+ */
+#define EXA_MIGRATION_GREEDY (1 << 3)
+
+/**
* EXA_HANDLES_PIXMAPS indicates to EXA that the driver can handle
* all pixmap addressing and migration.
*/

View File

@ -0,0 +1,34 @@
From 4ae407a5a308febf63de27a62f8c301c73b37d3e Mon Sep 17 00:00:00 2001
From: Julien Cristau <jcristau@debian.org>
Date: Tue, 6 Oct 2009 17:44:33 +0200
Subject: [PATCH 1/5] Move config_init() after CreateWellKnownSockets() and InitCoreDevices()
config_init() can now add devices directly instead of scheduling a
timer.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Tested-by: Peter Hutterer <peter.hutterer@who-t.net>
---
dix/main.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
Index: xorg-server/dix/main.c
===================================================================
--- xorg-server.orig/dix/main.c
+++ xorg-server/dix/main.c
@@ -168,7 +168,6 @@
InitBlockAndWakeupHandlers();
/* Perform any operating system dependent initializations you'd like */
OsInit();
- config_init();
if(serverGeneration == 1)
{
CreateWellKnownSockets();
@@ -256,6 +255,7 @@
InitCoreDevices();
InitInput(argc, argv);
InitAndStartDevices();
+ config_init();
dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset);

View File

@ -1,35 +0,0 @@
Disable damage notifications on move for manually redirected windows.
The automatic compositor needs damage notification on move, but a
compositing manager doesn't.
Index: xorg-server/composite/compwindow.c
===================================================================
--- xorg-server.orig/composite/compwindow.c 2008-06-18 10:28:16.000000000 +0300
+++ xorg-server/composite/compwindow.c 2008-06-18 12:06:20.000000000 +0300
@@ -580,12 +580,15 @@
}
else
{
+ CompWindowPtr cw = GetCompWindow (pWin);
+
ptOldOrg.x -= dx;
ptOldOrg.y -= dy;
REGION_TRANSLATE (prgnSrc, prgnSrc,
pWin->drawable.x - ptOldOrg.x,
pWin->drawable.y - ptOldOrg.y);
- DamageRegionAppend(&pWin->drawable, prgnSrc);
+ if (pWin->redirectDraw && cw->update == CompositeRedirectAutomatic)
+ DamageRegionAppend(&pWin->drawable, prgnSrc);
}
cs->CopyWindow = pScreen->CopyWindow;
pScreen->CopyWindow = compCopyWindow;
@@ -664,7 +667,8 @@
/*
* Report that as damaged so it will be redrawn
*/
- DamageRegionAppend(&pWin->drawable, &damage);
+ if (cw->update == CompositeRedirectAutomatic)
+ DamageRegionAppend(&pWin->drawable, &damage);
REGION_UNINIT (pScreen, &damage);
/*
* Save the new border clip region

View File

@ -1,22 +0,0 @@
diff -Naur xorg-server-1.6.99.902.orig/Xi/exevents.c xorg-server-1.6.99.902/Xi/exevents.c
--- xorg-server-1.6.99.902.orig/Xi/exevents.c 2009-09-26 14:12:03.000000000 +0200
+++ xorg-server-1.6.99.902/Xi/exevents.c 2009-09-26 18:55:30.000000000 +0200
@@ -195,11 +195,15 @@
static void
CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master)
{
- KeyClassPtr mk = master->key;
- KeyClassPtr dk = device->key;
+ KeyClassPtr mk, dk;
int i;
- if (device == master)
+ if (device == master || device == NULL || master == NULL)
+ return;
+
+ mk = master->key;
+ dk = device->key;
+ if (dk == NULL || mk == NULL)
return;
mk->sourceid = device->id;

View File

@ -1,14 +0,0 @@
diff --git a/hw/xfree86/common/xf86VidMode.c b/hw/xfree86/common/xf86VidMode.c
index d855bd1..2af8c00 100644
--- a/hw/xfree86/common/xf86VidMode.c
+++ b/hw/xfree86/common/xf86VidMode.c
@@ -226,6 +226,9 @@ VidModeGetFirstModeline(int scrnIndex, pointer *mode, int *dotClock)
pScrn = xf86Screens[scrnIndex];
pVidMode = VMPTR(pScrn->pScreen);
+ if (pScrn->modes == NULL)
+ return FALSE;
+
pVidMode->First = pScrn->modes;
pVidMode->Next = pVidMode->First->next;

View File

@ -1,12 +0,0 @@
diff -Nurp patched/include/misc.h working/include/misc.h
--- patched/include/misc.h 2009-02-05 01:09:03.000000000 -0800
+++ working/include/misc.h 2009-02-05 02:12:57.000000000 -0800
@@ -86,7 +86,7 @@ extern unsigned long serverGeneration;
#ifndef MAXSCREENS
#define MAXSCREENS 16
#endif
-#define MAXCLIENTS 256
+#define MAXCLIENTS 512
#define MAXEXTENSIONS 128
#define MAXFORMATS 8
#define MAXDEVICES 20 /* input devices */

View File

@ -0,0 +1,53 @@
From fe7575e929d65e8c798104ec2f72b879051694d3 Mon Sep 17 00:00:00 2001
From: Julien Cristau <jcristau@debian.org>
Date: Mon, 8 Feb 2010 02:04:33 +0100
Subject: [PATCH] xfree86: fix build with xv disabled
---
hw/xfree86/modes/xf86Crtc.c | 2 ++
hw/xfree86/modes/xf86Crtc.h | 2 ++
2 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 30b49af..62f8737 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -3009,6 +3009,7 @@ xf86_crtc_box_area(BoxPtr box)
return (int) (box->x2 - box->x1) * (int) (box->y2 - box->y1);
}
+#ifdef XV
/*
* Return the crtc covering 'box'. If two crtcs cover a portion of
* 'box', then prefer 'desired'. If 'desired' is NULL, then prefer the crtc
@@ -3097,6 +3098,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn,
return ret;
}
+#endif
xf86_crtc_notify_proc_ptr
xf86_wrap_crtc_notify (ScreenPtr screen, xf86_crtc_notify_proc_ptr new)
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
index 9baa956..2fb32c1 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -908,6 +908,7 @@ xf86_hide_cursors (ScrnInfoPtr scrn);
extern _X_EXPORT void
xf86_cursors_fini (ScreenPtr screen);
+#ifdef XV
/*
* For overlay video, compute the relevant CRTC and
* clip video to that.
@@ -926,6 +927,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn,
RegionPtr reg,
INT32 width,
INT32 height);
+#endif
extern _X_EXPORT xf86_crtc_notify_proc_ptr
xf86_wrap_crtc_notify (ScreenPtr pScreen, xf86_crtc_notify_proc_ptr new);
--
1.6.6.1

View File

@ -1,13 +0,0 @@
diff -Nurp patched/hw/xfree86/modes/xf86RandR12.c working/hw/xfree86/modes/xf86RandR12.c
--- patched/hw/xfree86/modes/xf86RandR12.c 2009-03-02 22:57:18.000000000 -0800
+++ working/hw/xfree86/modes/xf86RandR12.c 2009-03-02 22:57:24.000000000 -0800
@@ -944,7 +944,8 @@ xf86RandR12SetRotations (ScreenPtr pScre
for (c = 0; c < config->num_crtc; c++) {
xf86CrtcPtr crtc = config->crtc[c];
- RRCrtcSetRotations (crtc->randr_crtc, rotations);
+ if (crtc != NULL)
+ RRCrtcSetRotations (crtc->randr_crtc, rotations);
}
#endif
randrp->supported_rotations = rotations;

View File

@ -1,61 +0,0 @@
diff --git a/hw/xfree86/ddc/interpret_edid.c b/hw/xfree86/ddc/interpret_edid.c
index c0e3df9..32288f7 100644
--- a/hw/xfree86/ddc/interpret_edid.c
+++ b/hw/xfree86/ddc/interpret_edid.c
@@ -51,6 +51,15 @@ static void get_whitepoint_section(Uchar *, struct whitePoints *);
static void get_detailed_timing_section(Uchar*, struct detailed_timings *);
static Bool validate_version(int scrnIndex, struct edid_version *);
+static Bool
+is_standard_aspect_ratio(int x, int y)
+{
+ return ((x == 16 && y == 9) ||
+ (x == 16 && y == 10) ||
+ (x == 4 && y == 3) ||
+ (x == 5 && y == 4));
+}
+
static void
handle_edid_quirks(xf86MonPtr m)
{
@@ -91,10 +100,7 @@ handle_edid_quirks(xf86MonPtr m)
* try to find the largest detailed timing that matches that aspect
* ratio and use that to fill in the feature section.
*/
- if ((m->features.hsize == 16 && m->features.vsize == 9) ||
- (m->features.hsize == 16 && m->features.vsize == 10) ||
- (m->features.hsize == 4 && m->features.vsize == 3) ||
- (m->features.hsize == 5 && m->features.vsize == 4)) {
+ if (is_standard_aspect_ratio(m->features.hsize, m->features.vsize)) {
int real_hsize = 0, real_vsize = 0;
float target_aspect, timing_aspect;
@@ -130,6 +136,28 @@ handle_edid_quirks(xf86MonPtr m)
xf86Msg(X_INFO, "Quirked EDID physical size to %dx%d cm\n",
m->features.hsize, m->features.vsize);
}
+
+ /*
+ * Some monitors do the reverse, putting real size in the global block
+ * and aspect ratios in the detailed timings. Check, but only if we
+ * think we've got a real physical size.
+ */
+ if (m->features.hsize && m->features.vsize) {
+ for (i = 0; i < 4; i++) {
+ if (m->det_mon[i].type == DT) {
+ struct detailed_timings *timing;
+ timing = &m->det_mon[i].section.d_timings;
+
+ if (is_standard_aspect_ratio(timing->h_size, timing->v_size)) {
+ timing->h_size = m->features.hsize * 10;
+ timing->v_size = m->features.vsize * 10;
+ xf86Msg(X_INFO, "Quirked timing size to %dx%d mm\n",
+ timing->h_size, timing->v_size);
+
+ }
+ }
+ }
+ }
}
xf86MonPtr

View File

@ -1,30 +0,0 @@
From f0ef98d8d54f5dfa3081b62ff672e0fe992b0a01 Mon Sep 17 00:00:00 2001
From: Bryce Harrington <bryce@bryceharrington.org>
Date: Wed, 18 Mar 2009 23:28:51 -0700
Subject: [PATCH] Check for null pointer dereference to prevent crash
on non-primary Xinerama screens when key repeating.
(LP: #324465)
Signed-off-by: Bryce Harrington <bryce@bryceharrington.org>
---
mi/mipointer.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/mi/mipointer.c b/mi/mipointer.c
index e37316e..fe5947f 100644
--- a/mi/mipointer.c
+++ b/mi/mipointer.c
@@ -306,6 +306,10 @@ miPointerWarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
pPointer = MIPOINTER(pDev);
SetupScreen (pScreen);
+ /* Null pointer causes crash on keyrepeat with Xinerama LP: (#324465) */
+ if (pPointer == NULL)
+ return;
+
if (pPointer->pScreen != pScreen)
{
(*pScreenPriv->screenFuncs->NewEventScreen) (pDev, pScreen, TRUE);
--
1.6.0.4

View File

@ -1,13 +0,0 @@
diff -Nurp patched/hw/xfree86/common/xisb.c working/hw/xfree86/common/xisb.c
--- patched/hw/xfree86/common/xisb.c 2009-02-02 21:53:58.000000000 +0100
+++ working/hw/xfree86/common/xisb.c 2009-02-02 21:55:09.000000000 +0100
@@ -98,6 +98,9 @@ XisbRead (XISBuffer *b)
{
int ret;
+ if (b == NULL)
+ return -2;
+
if (b->current >= b->end)
{
if (b->block_duration >= 0)

View File

@ -1,107 +0,0 @@
From 179cec1d2f919d8d8096d6030b0ad9b6285dfd4d Mon Sep 17 00:00:00 2001
From: Bryce Harrington <bryce@bryceharrington.org>
Date: Mon, 23 Mar 2009 14:25:18 -0700
Subject: [PATCH] Check null pointers to not crash on keyrepeat with Xinerama LP: (#324465)
With -nvidia, when using Xinerama, holding down a key in a text field
on a non-primary screen can cause an X crash. This is caused because
the MIPOINTER(pDev) can return a NULL pointer for a non-null pDev in
some cases, and the mipointer.c code lacks checks for this condition.
MIPOINTER() is a macro #defined locally to mipointer.c, which calls into
dixLookupPrivate(), a routine which returns NULL in at least some
circumstances - such as if the memory could not be xcalloc'd for
whatever reason. Hopefully upstream can provide a better fix for this,
but for now it seems reasonable to check the return values of this macro
for NULL before usage, as a minimum.
diff -Naur xorg-server-1.6.99.902.orig/mi/mipointer.c xorg-server-1.6.99.902/mi/mipointer.c
--- xorg-server-1.6.99.902.orig/mi/mipointer.c 2009-09-26 14:12:02.000000000 +0200
+++ xorg-server-1.6.99.902/mi/mipointer.c 2009-09-26 19:02:00.000000000 +0200
@@ -139,6 +139,10 @@
if (DevHasCursor(pDev))
{
pPointer = MIPOINTER(pDev);
+ if (pPointer == NULL) {
+ ErrorF("miPointerCloseScreen: Invalid input device pointer\n");
+ return FALSE;
+ }
if (pScreen == pPointer->pScreen)
pPointer->pScreen = 0;
@@ -191,6 +195,10 @@
return FALSE;
pPointer = MIPOINTER(pDev);
+ if (pPointer == NULL) {
+ ErrorF("miPointerDisplayCursor: Invalid input device pointer\n");
+ return FALSE;
+ }
pPointer->pCursor = pCursor;
pPointer->pScreen = pScreen;
@@ -204,6 +212,10 @@
miPointerPtr pPointer;
pPointer = MIPOINTER(pDev);
+ if (pPointer == NULL) {
+ ErrorF("miPointerConstrainCursor: Invalid input device pointer\n");
+ return FALSE;
+ }
pPointer->limits = *pBox;
pPointer->confined = PointerConfinedToScreen(pDev);
@@ -305,6 +317,10 @@
SetupScreen (pScreen);
pPointer = MIPOINTER(pDev);
+ if (pPointer == NULL) {
+ ErrorF("miPointerWarpCursor: Invalid input device pointer\n");
+ return;
+ }
if (pPointer->pScreen != pScreen)
{
@@ -436,13 +452,17 @@
ScreenPtr pScreen;
miPointerPtr pPointer;
- pPointer = MIPOINTER(pDev);
-
pScreen = screenInfo.screens[screen_no];
pScreenPriv = GetScreenPrivate (pScreen);
(*pScreenPriv->screenFuncs->NewEventScreen) (pDev, pScreen, FALSE);
NewCurrentScreen (pDev, pScreen, x, y);
+ pPointer = MIPOINTER(pDev);
+ if (pPointer == NULL) {
+ ErrorF("miPointerSetScreen: Invalid input device pointer\n");
+ return;
+ }
+
pPointer->limits.x2 = pScreen->width;
pPointer->limits.y2 = pScreen->height;
}
@@ -469,6 +489,10 @@
SetupScreen(pScreen);
pPointer = MIPOINTER(pDev);
+ if (pPointer == NULL) {
+ ErrorF("miPointerMoved: Invalid input device pointer\n");
+ return;
+ }
/* Hack: We mustn't call into ->MoveCursor for anything but the
* VCP, as this may cause a non-HW rendered cursor to be rendered during
@@ -498,6 +522,11 @@
miPointerPtr pPointer;
pPointer = MIPOINTER(pDev);
+ if (pPointer == NULL) {
+ ErrorF("miPointerSetPosition: Invalid input device pointer\n");
+ return;
+ }
+
pScreen = pPointer->pScreen;
if (!pScreen)
return; /* called before ready */

View File

@ -1,39 +0,0 @@
From 7813adf66be31d8b0e8df21821e786e688f7fe78 Mon Sep 17 00:00:00 2001
From: Bryce Harrington <bryce@bryceharrington.org>
Date: Fri, 27 Mar 2009 19:01:32 -0700
Subject: [PATCH] cwGetBackingPicture can segfault when minimizing/maximizing firefox with
a flash video playing. This appears to be a race condition in which the
backing picture's data is not always fully defined.
Signed-off-by: Bryce Harrington <bryce@bryceharrington.org>
---
miext/cw/cw_render.c | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/miext/cw/cw_render.c b/miext/cw/cw_render.c
index 6e0c727..fe8cba7 100644
--- a/miext/cw/cw_render.c
+++ b/miext/cw/cw_render.c
@@ -125,10 +125,15 @@ cwGetBackingPicture (PicturePtr pPicture, int *x_off, int *y_off)
WindowPtr pWindow = (WindowPtr) pDrawable;
PixmapPtr pPixmap = getCwPixmap (pWindow);
- *x_off = pDrawable->x - pPixmap->screen_x;
- *y_off = pDrawable->y - pPixmap->screen_y;
-
- return pPicturePrivate->pBackingPicture;
+ if (pDrawable && pPixmap) {
+ *x_off = pDrawable->x - pPixmap->screen_x;
+ *y_off = pDrawable->y - pPixmap->screen_y;
+
+ return pPicturePrivate->pBackingPicture;
+ } else {
+ *x_off = *y_off = 0;
+ return pPicture;
+ }
}
else
{
--
1.6.0.4

View File

@ -1,21 +0,0 @@
#
# Ubuntu: https://bugs.launchpad.net/bugs/353074
# Upstream: http://bugs.freedesktop.org/show_bug.cgi?id=21000
#
Index: xorg-server-1.6.0/hw/xfree86/modes/xf86EdidModes.c
===================================================================
--- xorg-server-1.6.0.orig/hw/xfree86/modes/xf86EdidModes.c 2009-04-01 19:45:23.000000000 +0200
+++ xorg-server-1.6.0/hw/xfree86/modes/xf86EdidModes.c 2009-04-01 19:45:32.000000000 +0200
@@ -155,6 +155,11 @@
DDC->vendor.prod_id == 13600)
return TRUE;
+ /* Bug #21000: LGPhilipsLCD LP154W01-TLAJ */
+ if (memcmp (DDC->vendor.name, "LPL", 4) == 0 &&
+ DDC->vendor.prod_id == 47360)
+ return TRUE;
+
return FALSE;
}

View File

@ -1,16 +0,0 @@
From 8663524ce398b56af596ab1e7e96b62ca45b79e9 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon, 13 Apr 2009 17:49:00 +1000
Subject: [PATCH] xfree86: don't synthesise a mouse section if synaptics devices are found.
diff -Naur xorg-server-1.6.99.902.orig/hw/xfree86/common/xf86Config.c xorg-server-1.6.99.902/hw/xfree86/common/xf86Config.c
--- xorg-server-1.6.99.902.orig/hw/xfree86/common/xf86Config.c 2009-09-26 14:12:03.000000000 +0200
+++ xorg-server-1.6.99.902/hw/xfree86/common/xf86Config.c 2009-09-26 19:05:52.000000000 +0200
@@ -2406,6 +2406,7 @@
{
if (strcmp((*dev)->driver, "kbd") == 0 ||
strcmp((*dev)->driver, "mouse") == 0 ||
+ strcmp((*dev)->driver, "synaptics") == 0 ||
strcmp((*dev)->driver, "vmmouse") == 0)
{
IDevPtr *current;

View File

@ -1,91 +0,0 @@
diff -Naur xorg-server-1.6.99.902.orig/hw/xfree86/common/xf86pciBus.c xorg-server-1.6.99.902/hw/xfree86/common/xf86pciBus.c
--- xorg-server-1.6.99.902.orig/hw/xfree86/common/xf86pciBus.c 2009-09-26 14:12:03.000000000 +0200
+++ xorg-server-1.6.99.902/hw/xfree86/common/xf86pciBus.c 2009-09-26 19:11:42.000000000 +0200
@@ -52,13 +52,7 @@
/* Bus-specific globals */
Bool pciSlotClaimed = FALSE;
-#define PCIINFOCLASSES(c) \
- ( (((c) & 0x00ff0000) == (PCI_CLASS_PREHISTORIC << 16)) \
- || (((c) & 0x00ff0000) == (PCI_CLASS_DISPLAY << 16)) \
- || ((((c) & 0x00ffff00) \
- == ((PCI_CLASS_MULTIMEDIA << 16) | (PCI_SUBCLASS_MULTIMEDIA_VIDEO << 8)))) \
- || ((((c) & 0x00ffff00) \
- == ((PCI_CLASS_PROCESSOR << 16) | (PCI_SUBCLASS_PROCESSOR_COPROC << 8)))) )
+#define PCIINFOCLASSES(c) (((c) & 0x00ffff00) == (PCI_CLASS_DISPLAY << 16))
/*
* PCI classes that have messages printed always. The others are only
@@ -85,6 +79,40 @@
sprintf(buffer, "%d@%d", busnum & 0x00ff, busnum >> 8);
}
+/* oh god what have i done */
+static Bool
+looks_like_bios_primary(struct pci_device *info)
+{
+ unsigned char *bios;
+ unsigned short vendor, device;
+ int offset;
+ Bool ret = FALSE;
+
+ bios = xf86MapVidMem(-1, VIDMEM_MMIO, 0xc0000, 0x10000);
+ if (!bios)
+ return FALSE;
+
+ if (bios[0] != 0x55 || bios[1] != 0xAA)
+ goto out;
+
+ offset = (bios[0x19] << 8) + bios[0x18];
+
+ if (bios[offset] != 'P' ||
+ bios[offset+1] != 'C' ||
+ bios[offset+2] != 'I' ||
+ bios[offset+3] != 'R')
+ goto out;
+
+ vendor = (bios[offset+5] << 8) + bios[offset+4];
+ device = (bios[offset+7] << 8) + bios[offset+6];
+
+ ret = (info->vendor_id == vendor) && (info->device_id == device);
+
+out:
+ xf86UnMapVidMem(-1, bios, 0x10000);
+ return ret;
+}
+
/*
* xf86Bus.c interface
*/
@@ -132,17 +160,25 @@
uint16_t command;
info = xf86PciVideoInfo[i];
+ if (!IS_VGA(info->device_class))
+ continue;
+
pci_device_cfg_read_u16(info, & command, 4);
- if ((command & PCI_CMD_MEM_ENABLE)
- && ((num == 1) || IS_VGA(info->device_class))) {
- if (primaryBus.type == BUS_NONE) {
+ if ((command & PCI_CMD_MEM_ENABLE)) {
+ if (num == 1) {
primaryBus.type = BUS_PCI;
primaryBus.id.pci = info;
- } else {
- xf86Msg(X_NOTICE,
+ break;
+ } else if (looks_like_bios_primary(info)) {
+ if (primaryBus.type == BUS_NONE) {
+ primaryBus.type = BUS_PCI;
+ primaryBus.id.pci = info;
+ } else {
+ xf86Msg(X_NOTICE,
"More than one possible primary device found\n");
- primaryBus.type ^= (BusType)(-1);
+ primaryBus.type ^= (BusType)(-1);
+ }
}
}
}

View File

@ -1,12 +0,0 @@
diff -Naur xorg-server-1.4.0.90/hw/xfree86/os-support/linux/lnx_apm.c xorg-server-1.4.0.90.edit/hw/xfree86/os-support/linux/lnx_apm.c
--- xorg-server-1.4.0.90/hw/xfree86/os-support/linux/lnx_apm.c 2007-12-14 00:38:23.000000000 +0100
+++ xorg-server-1.4.0.90.edit/hw/xfree86/os-support/linux/lnx_apm.c 2007-12-14 00:38:18.000000000 +0100
@@ -35,6 +35,8 @@
# define APM_SUSPEND_FAILED 0xf001
#endif
+typedef unsigned short apm_event_t;
+
static PMClose lnxAPMOpen(void);
static void lnxCloseAPM(void);
static pointer APMihPtr = NULL;

View File

@ -1,32 +0,0 @@
/* Upstream commit 56f21bda1ce95741c88c423b60bd709eef26eb12 was supposed to
* only avoid multiple scans of the PCI devices, but it actually also added
* an "optimization" based on using sysfs files instead of /proc. However,
* this code is broken, for instance because there are no ioctl handler on
* /sys/bus/pci/devices/*/config files while there some on /proc/bus/pci/*
*
* It breaks the Xserver on architectures that require such ioctls to scan
* the PCI devices and/or deal with PCI domains:
* #422077: xserver-xorg: Fatal server error on sparc: xf86MapPciMem failed
* #422095: xserver-xorg-core: fails to start on powerpc, no devices detected
*
* The following patch forces the server to behave as if we were running on
* a 2.4 kernel while scanning PCI devices, so that the sysfs code is disabled.
*
* Upstream doesn't apply this patch since they want to fix the sysfs-code.
* See https://bugs.freedesktop.org/show_bug.cgi?id=7248
*
* Thanks to Jim Watson for testing!
*/
diff -Naur xorg-server-1.5.1.orig/hw/xfree86/os-support/bus/linuxPci.c xorg-server-1.5.1/hw/xfree86/os-support/bus/linuxPci.c
--- xorg-server-1.5.1.orig/hw/xfree86/os-support/bus/linuxPci.c 2008-10-04 18:50:24.000000000 +0200
+++ xorg-server-1.5.1/hw/xfree86/os-support/bus/linuxPci.c 2008-10-04 18:52:08.000000000 +0200
@@ -131,7 +131,7 @@
static int fd = -1,is_write = 0;
char file[64];
struct stat ignored;
- static int is26 = -1;
+ static int is26 = 0;
if (dev == NULL) {
return -1;

View File

@ -1,32 +0,0 @@
Index: xorg-server/hw/xfree86/os-support/linux/lnx_init.c
===================================================================
--- xorg-server.orig/hw/xfree86/os-support/linux/lnx_init.c 2008-06-18 12:06:06.000000000 +0300
+++ xorg-server/hw/xfree86/os-support/linux/lnx_init.c 2008-06-18 12:06:25.000000000 +0300
@@ -344,10 +344,25 @@
if (VTSwitch)
{
+ struct vt_stat vts;
+
/*
- * Perform a switch back to the active VT when we were started
+ * Perform a switch back to the active VT when we were started.
+ * We cannot rely on vtSema to determine if the server was the
+ * active VT at the time of shutdown since it has already been
+ * released. Instead, we manually check the current VT and
+ * compare it with the VT we were running on.
*/
- if (activeVT >= 0) {
+ if (ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts) < 0)
+ {
+ /* If this failed, fall back to old behaviour
+ * of always switching. */
+ xf86Msg(X_WARNING,"xf86OpenConsole: VT_GETSTATE failed: %s\n",
+ strerror(errno));
+ vts.v_active = xf86Info.vtno;
+ }
+
+ if (activeVT >= 0 && vts.v_active == xf86Info.vtno) {
if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, activeVT) < 0)
xf86Msg(X_WARNING, "xf86CloseConsole: VT_ACTIVATE failed: %s\n",
strerror(errno));

View File

@ -0,0 +1,17 @@
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 84d3cac..673612f 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -2248,10 +2248,10 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n");
else if (xf86TargetPreferred(scrn, config, modes, enabled, width, height))
xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n");
- else if (xf86TargetAspect(scrn, config, modes, enabled, width, height))
- xf86DrvMsg(i, X_INFO, "Using fuzzy aspect match for initial modes\n");
else if (xf86TargetFallback(scrn, config, modes, enabled, width, height))
xf86DrvMsg(i, X_INFO, "Using sloppy heuristic for initial modes\n");
+ else if (xf86TargetAspect(scrn, config, modes, enabled, width, height))
+ xf86DrvMsg(i, X_INFO, "Using fuzzy aspect match for initial modes\n");
else
xf86DrvMsg(i, X_WARNING, "Unable to find initial modes\n");

View File

@ -1,32 +0,0 @@
From dc5cedd61e00afec33cbfaa7fdfbb6c357074dbd Mon Sep 17 00:00:00 2001
From: =?utf-8?q?S=C3=B8ren=20Sandmann=20Pedersen?= <sandmann@redhat.com>
Date: Thu, 11 Sep 2008 12:51:31 -0400
Subject: [PATCH] Make room for an external monitor if we have enough video RAM
---
hw/xfree86/modes/xf86Crtc.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 4de7e05..9bcf81b 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -987,6 +987,15 @@ xf86DefaultScreenLimits (ScrnInfoPtr scrn, int *widthp, int *heightp,
if (crtc_height > height)
height = crtc_height;
}
+
+ /* Make room for an external monitor if we have enough video ram */
+ if (scrn->videoRam >= 65536)
+ width += 1920;
+ else if (scrn->videoRam >= 32768)
+ width += 1280;
+ else if (scrn->videoRam >= 16384)
+ width += 1024;
+
if (config->maxWidth && width > config->maxWidth) width = config->maxWidth;
if (config->maxHeight && height > config->maxHeight) height = config->maxHeight;
if (config->minWidth && width < config->minWidth) width = config->minWidth;
--
1.6.0.1

View File

@ -1,26 +0,0 @@
From 079910986a1b8f5042e16ee2ba3ad9ed843b67ca Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Tue, 7 Oct 2008 11:09:14 -0400
Subject: [PATCH] Force ModeDebug on.
---
hw/xfree86/modes/xf86Crtc.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 9bcf81b..a953c8a 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -2084,8 +2084,7 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
xf86ProcessOptions (scrn->scrnIndex,
scrn->options,
config->options);
- config->debug_modes = xf86ReturnOptValBool (config->options,
- OPTION_MODEDEBUG, FALSE);
+ config->debug_modes = TRUE;
if (scrn->display->virtualX)
width = scrn->display->virtualX;
--
1.6.0.1

View File

@ -1,31 +0,0 @@
From a8079882f1884edc62a9de28af915bd8b65dfbbe Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Wed, 11 Mar 2009 14:02:11 -0400
Subject: [PATCH] Don't build the ACPI code.
No good can come of this.
---
configure.ac | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 72ae67e..04716f8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1269,13 +1269,11 @@ if test "x$XORG" = xyes; then
case $host_cpu in
ia64*)
linux_ia64=yes
- linux_acpi="yes"
;;
alpha*)
linux_alpha=yes
;;
i*86|amd64*|x86_64*)
- linux_acpi="yes"
;;
*)
;;
--
1.6.1.3

View File

@ -1,35 +0,0 @@
From 8875112f5c57ec5d575e717c5638fbc919145efb Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Mon, 16 Nov 2009 18:01:26 -0500
Subject: [PATCH] configure: Only link against libcrypto
openssl.pc will link you against libssl, which we don't need, and which
brings in another seven libraries we also don't need. This is still
bogus, we're really only trying to get a SHA1 routine, we could link it
statically and be even better off.
---
configure.ac | 6 ------
1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index f69f97e..254d33d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1297,14 +1297,8 @@ if test "x$SHA1_LIB" = "x" ; then
fi
if test "x$SHA1_LIB" = "x" ; then
- PKG_CHECK_EXISTS([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
- [HAVE_OPENSSL_PKC=no])
- if test "x$HAVE_OPENSSL_PKC" = xyes; then
- REQUIRED_LIBS="$REQUIRED_LIBS openssl"
- else
AC_CHECK_LIB([crypto], [SHA1_Init], [SHA1_LIB="-lcrypto"],
[AC_MSG_ERROR([OpenSSL must be installed in order to build the X server.])])
- fi
fi
PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS])
--
1.6.5.2

View File

@ -1 +1 @@
http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.7.5.tar.bz2
http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.7.5.902.tar.bz2

View File

@ -11,6 +11,15 @@
# Root password to integrate in the target system
ROOT_PASSWORD="openelec"
# User to integrate in the target system
USER_NAME="openelec"
# User group to integrate in the target system
USER_GROUP="openelec"
# User password to integrate in the target system
USER_PASSWORD="openelec"
# The TARGET_CPU variable controls which processor should be targeted for
# generated code.
case $TARGET_ARCH in

View File

@ -11,6 +11,15 @@
# Root password to integrate in the target system
ROOT_PASSWORD="openelec"
# User to integrate in the target system
USER_NAME="openelec"
# User group to integrate in the target system
USER_GROUP="openelec"
# User password to integrate in the target system
USER_PASSWORD="openelec"
# The TARGET_CPU variable controls which processor should be targeted for
# generated code.
case $TARGET_ARCH in

View File

@ -11,6 +11,15 @@
# Root password to integrate in the target system
ROOT_PASSWORD="openelec"
# User to integrate in the target system
USER_NAME="openelec"
# User group to integrate in the target system
USER_GROUP="openelec"
# User password to integrate in the target system
USER_PASSWORD="openelec"
# The TARGET_CPU variable controls which processor should be targeted for
# generated code.
case $TARGET_ARCH in