Update to server 1.6.5.

This commit is contained in:
matthieu 2009-10-31 14:09:43 +00:00
parent b6548f4956
commit 8542099ff7
20 changed files with 384 additions and 204 deletions

View File

@ -1,3 +1,171 @@
commit 439c58849304907900e4dc7429aedb0192749c02
Author: Keith Packard <keithp@keithp.com>
Date: Sun Oct 11 22:03:32 2009 -0700
Bump version to 1.6.5
Signed-off-by: Keith Packard <keithp@keithp.com>
commit 7f2f71da5125ae01a8279a4886090a711100d671
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Sep 28 14:18:45 2009 +1000
ephyr: if -parent is given, check for a trailing -screen. (#24144)
If -parent is given, don't open up a new window if -screen is given as well.
The commandline option -screen allows to set the depth of the embedded
Xephry instance, even though width and height are autoscaled on -parent.
This patch checks for a -screen parameter after -parent and - if one is
found - delays initializing the screen. The parent window id is stored
temporarily but re-set after a -screen argument.
The following command is thus valid:
Xephyr -parent 1234 -screen 640x480@8 -screen 1024x768
It embeds the first 8-bit screen into window 1234 and opens up a new window
for the second screen. Multiple parent arguments are possible, the screens
are embedded in-order.
X.Org Bug 24144 <http://bugs.freedesktop.org/show_bug.cgi?id=24144>
Tested-by: Vic Lee
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 19be992d9dc542b61fa3f4fd32a09071c9e64880)
Signed-off-by: Keith Packard <keithp@keithp.com>
commit c07b2368a7dedb66455eea313c06859afa2e1a9c
Author: Keith Packard <keithp@keithp.com>
Date: Thu Oct 1 15:24:58 2009 -0700
Bump to version 1.6.4.901
Signed-off-by: Keith Packard <keithp@keithp.com>
commit fc31f76b6ff735e4a4006c5454c4d496ee8b154a
Author: Keith Packard <keithp@keithp.com>
Date: Wed Sep 30 11:40:19 2009 -0700
Re-fix DGA removal.
Removing DGA ended up breaking any drivers calling into the old
xf86DiDGAInit function as it tried to see if DGA was already enabled
and ended up crashing if the VT wasn't completely initialized. Oops.
Also, if the driver initializes DGA itself, have the DiDGA
initialization overwrite that information as the DiDGA code will call
ReInit on mode detect.
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit db98b26ee145f70e732e2cf4a6ac3de77fdf4adc)
commit 8cf659f3a5914369a2137ac17b689e5a9fe9ca27
Author: Keith Packard <keithp@keithp.com>
Date: Sun Sep 27 19:21:45 2009 -0700
Bump to version 1.6.4
Signed-off-by: Keith Packard <keithp@keithp.com>
commit a26fd1a6d61507b3e69a04d6f6c192a6ec363c5c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Sep 16 15:46:55 2009 +1000
Don't send events through the master if the device has SendCoreEvents off.
In server 1.6, all devices are attached to the master device (VCP or VCK).
Sending an event through the master device means the device is sending core
events. If a device is configured as SendCoreEvents, just send through the
device, not through the master.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 507e57381fea6334f7dc8da6925e53d2c76fddcb
Author: Keith Packard <keithp@keithp.com>
Date: Fri Sep 18 21:12:17 2009 -0700
xfree86/modes: Remove all framebuffer support from DGA
This removes all rendering and mapping code from xf86DiDGA, leaving
just mode setting and raw input device access. The mapping code didn't
have the offset within /dev/mem for the frame buffer and the pixmap
support assumed that the framebuffer was never reallocated.
(cherry picked from 0b7c6c728c2e2d8433a188315cc591308a89cd85)
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit c3d182a47902d02f9e64f933b8565ae336f73f54
Author: Rémi Cardona <remi@gentoo.org>
Date: Mon Sep 14 17:09:59 2009 +0200
dix: append "built-ins" to the font path in SetDefaultFontPath
49b93df8a3002db7196aa3fc1fd8dca1c12a55d6 made the hard dependency on
a "fixed" font go away but only Xorg could use the built-ins fonts by
default.
With this commit, all DDXs get "built-ins" appended to their FontPath, not
just Xorg.
Tested with Xorg, Xvfb and Xnest.
(cherry picked from commit f56cbe1ef24415d0142b9a7d0ab0a031069ccb52)
Signed-off-by: Rémi Cardona <remi@gentoo.org>
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Tested-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
commit 9bc4a69040493e589a3811ca5e085e323438996d
Author: Daniel Stone <daniel@fooishbar.org>
Date: Wed Sep 9 15:48:33 2009 +1000
fbdevhw: Test for graphics:fb%d as well as graphics/fb%d
Apparently the kernel can't decide on an API to expose to userspace, so
let's just try both in the hope that one will work.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Acked-by: Michel Dänzer <michel@daenzer.net>
(cherry picked from commit f4350c66b493d63fa06be87caa958d7033232ea4)
commit d78669c92d751464bc3c8f79f2aa21ca0951e3a9
Author: Keith Packard <keithp@keithp.com>
Date: Tue Sep 22 12:09:48 2009 -0700
render: return the supported version rather than just passing the proto's version
Signed-off-by: Keith Packard <keithp@keithp.com>
commit f5d1da499c3d64f0a4ac217eb19911b8e35cb49b
Author: Michel Dänzer <daenzer@vmware.com>
Date: Tue Jun 23 16:45:39 2009 +0200
dri2: Don't crash if pPriv is NULL.
(cherry picked from commit df597709d71f47b8516e27c6fb1bfffd59de5e48)
Signed-off-by: Keith Packard <keithp@keithp.com>
commit 468787bdd2c34f9edf46da76b6357034c216fa7b
Author: Richard Hughes <richard@hughsie.com>
Date: Fri Aug 14 11:44:35 2009 +0100
Don't reset the lastDeviceEventTime when doing DPMS actions
When we change the DPMS mode, don't play games with the last event time as
this breaks applications using IDLETIME to turn the backlight off after a
preset time.
This patch fixes gnome-power-manager and xfce-power-manager
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit c1d901d723c3bee523736eacc15b44a7dff484fe)
Signed-off-by: Keith Packard <keithp@keithp.com>
commit 3044711412d0a08ba65a491bd2441c0c8980f5e2
Author: Keith Packard <keithp@keithp.com>
Date: Tue Aug 25 22:37:16 2009 -0700

View File

@ -219,19 +219,10 @@ ProcDPMSForceLevel(client)
if (!DPMSEnabled)
return BadMatch;
if (stuff->level == DPMSModeOn) {
lastDeviceEventTime.milliseconds =
GetTimeInMillis();
} else if (stuff->level == DPMSModeStandby) {
lastDeviceEventTime.milliseconds =
GetTimeInMillis() - DPMSStandbyTime;
} else if (stuff->level == DPMSModeSuspend) {
lastDeviceEventTime.milliseconds =
GetTimeInMillis() - DPMSSuspendTime;
} else if (stuff->level == DPMSModeOff) {
lastDeviceEventTime.milliseconds =
GetTimeInMillis() - DPMSOffTime;
} else {
if (stuff->level != DPMSModeOn &&
stuff->level != DPMSModeStandby &&
stuff->level != DPMSModeSuspend &&
stuff->level != DPMSModeOff) {
client->errorValue = stuff->level;
return BadValue;
}

89
xserver/aclocal.m4 vendored
View File

@ -7640,7 +7640,7 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
dnl xorg-macros.m4. Generated from xorg-macros.m4.in:xorgversion.m4 by configure.
dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure.
dnl
dnl Copyright 2005-2006 Sun Microsystems, Inc. All rights reserved.
dnl
@ -7677,27 +7677,24 @@ dnl of the copyright holder.
# your configure.ac with the minimum required version, such as:
# XORG_MACROS_VERSION(1.1)
#
# To force at least a version with this macro defined, also add:
# m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.1 or later before running autoconf/autogen])])
# To ensure that this macro is defined, also add:
# m4_ifndef([XORG_MACROS_VERSION],
# [m4_fatal([must install xorg-macros 1.1 or later before running autoconf/autogen])])
#
#
# See the "minimum version" comment for each macro you use to see what
# version you require.
AC_DEFUN([XORG_MACROS_VERSION],[
[XORG_MACROS_needed_version=$1
XORG_MACROS_needed_major=`echo $XORG_MACROS_needed_version | sed 's/\..*$//'`
XORG_MACROS_needed_minor=`echo $XORG_MACROS_needed_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`]
AC_MSG_CHECKING([if xorg-macros used to generate configure is at least ${XORG_MACROS_needed_major}.${XORG_MACROS_needed_minor}])
[XORG_MACROS_version=1.2.1
XORG_MACROS_major=`echo $XORG_MACROS_version | sed 's/\..*$//'`
XORG_MACROS_minor=`echo $XORG_MACROS_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`]
if test $XORG_MACROS_major -ne $XORG_MACROS_needed_major ; then
AC_MSG_ERROR([configure built with incompatible version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.x])
fi
if test $XORG_MACROS_minor -lt $XORG_MACROS_needed_minor ; then
AC_MSG_ERROR([configure built with too old of a version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.${XORG_MACROS_minor}.0 or newer])
fi
AC_MSG_RESULT([yes, $XORG_MACROS_version])
m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.3.0])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,,
[m4_fatal([xorg-macros major version ]maj_needed[ is required but ]vers_have[ found])])
m4_if(m4_version_compare(vers_have, [$1]), -1,
[m4_fatal([xorg-macros version $1 or higher is required but ]vers_have[ found])])
m4_undefine([vers_have])
m4_undefine([maj_have])
m4_undefine([maj_needed])
]) # XORG_MACROS_VERSION
# XORG_PROG_RAWCPP()
@ -7964,7 +7961,7 @@ AC_SUBST(MAKE_HTML)
# their AM_CFLAGS (or other appropriate *_CFLAGS) to use them.
AC_DEFUN([XORG_CHECK_MALLOC_ZERO],[
AC_ARG_ENABLE(malloc0returnsnull,
AC_HELP_STRING([--enable-malloc0returnsnull],
AS_HELP_STRING([--enable-malloc0returnsnull],
[malloc(0) returns NULL (default: auto)]),
[MALLOC_ZERO_RETURNS_NULL=$enableval],
[MALLOC_ZERO_RETURNS_NULL=auto])
@ -8016,7 +8013,7 @@ AC_SUBST([XTMALLOC_ZERO_CFLAGS])
AC_DEFUN([XORG_WITH_LINT],[
# Allow checking code with lint, sparse, etc.
AC_ARG_WITH(lint, [AC_HELP_STRING([--with-lint],
AC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint],
[Use a lint-style source code checker (default: disabled)])],
[use_lint=$withval], [use_lint=no])
if test "x$use_lint" = "xyes" ; then
@ -8057,7 +8054,7 @@ AM_CONDITIONAL(LINT, [test x$LINT != xno])
AC_DEFUN([XORG_LINT_LIBRARY],[
AC_REQUIRE([XORG_WITH_LINT])
# Build lint "library" for more indepth checks of programs calling this library
AC_ARG_ENABLE(lint-library, [AC_HELP_STRING([--enable-lint-library],
AC_ARG_ENABLE(lint-library, [AS_HELP_STRING([--enable-lint-library],
[Create lint library (default: disabled)])],
[make_lint_lib=$enableval], [make_lint_lib=no])
if test "x$make_lint_lib" != "xno" ; then
@ -8087,9 +8084,9 @@ if test "x$GCC" = xyes ; then
CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \
-Wmissing-declarations -Wnested-externs -fno-strict-aliasing \
-Wbad-function-cast"
case `gcc -dumpversion` in
case `$CC -dumpversion` in
3.4.* | 4.*)
CWARNFLAGS+=" -Wold-style-definition -Wdeclaration-after-statement"
CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement"
;;
esac
else
@ -8099,7 +8096,51 @@ else
fi
fi
AC_SUBST(CWARNFLAGS)
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
]) # XORG_CWARNFLAGS
# XORG_STRICT_OPTION
# -----------------------
# Minimum version: 1.3.0
#
# Add configure option to enable strict compilation
AC_DEFUN([XORG_STRICT_OPTION], [
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_PROG_CC_C99])
AC_REQUIRE([XORG_CWARNFLAGS])
AC_ARG_ENABLE(strict-compilation,
AS_HELP_STRING([--enable-strict-compilation],
[Enable all warnings from compiler and make them errors (default: disabled)]),
[STRICT_COMPILE=$enableval], [STRICT_COMPILE=no])
if test "x$STRICT_COMPILE" = "xyes"; then
AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"])
if test "x$GCC" = xyes ; then
STRICT_CFLAGS="-pedantic -Werror"
elif test "x$SUNCC" = "xyes"; then
STRICT_CFLAGS="-errwarn"
elif test "x$INTELCC" = "xyes"; then
STRICT_CFLAGS="-Werror"
fi
fi
CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"
AC_SUBST([CWARNFLAGS])
]) # XORG_STRICT_OPTION
# XORG_DEFAULT_OPTIONS
# --------------------
# Minimum version: 1.3.0
#
# Defines default options for X.Org modules.
#
AC_DEFUN([XORG_DEFAULT_OPTIONS], [
XORG_CWARNFLAGS
XORG_STRICT_OPTION
XORG_RELEASE_VERSION
XORG_CHANGELOG
XORG_MANPAGE_SECTIONS
]) # XORG_DEFAULT_OPTIONS
dnl Copyright 2005 Red Hat, Inc
dnl
dnl Permission to use, copy, modify, distribute, and sell this software and its
@ -8134,7 +8175,7 @@ dnl
AC_DEFUN([XORG_RELEASE_VERSION],[
AC_ARG_WITH(release-version,
AC_HELP_STRING([--with-release-version=STRING],
AS_HELP_STRING([--with-release-version=STRING],
[Use release version string in package name]),
[RELEASE_VERSION="$withval"],
[RELEASE_VERSION=""])

22
xserver/configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.62 for xorg-server 1.6.3.901.
# Generated by GNU Autoconf 2.62 for xorg-server 1.6.5.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@ -750,8 +750,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='xorg-server'
PACKAGE_TARNAME='xorg-server'
PACKAGE_VERSION='1.6.3.901'
PACKAGE_STRING='xorg-server 1.6.3.901'
PACKAGE_VERSION='1.6.5'
PACKAGE_STRING='xorg-server 1.6.5'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_unique_file="Makefile.am"
@ -1979,7 +1979,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures xorg-server 1.6.3.901 to adapt to many kinds of systems.
\`configure' configures xorg-server 1.6.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -2049,7 +2049,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of xorg-server 1.6.3.901:";;
short | recursive ) echo "Configuration of xorg-server 1.6.5:";;
esac
cat <<\_ACEOF
@ -2363,7 +2363,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
xorg-server configure 1.6.3.901
xorg-server configure 1.6.5
generated by GNU Autoconf 2.62
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -2377,7 +2377,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by xorg-server $as_me 1.6.3.901, which was
It was created by xorg-server $as_me 1.6.5, which was
generated by GNU Autoconf 2.62. Invocation command line was
$ $0 $@
@ -3027,7 +3027,7 @@ fi
# Define the identity of the package.
PACKAGE='xorg-server'
VERSION='1.6.3.901'
VERSION='1.6.5'
cat >>confdefs.h <<_ACEOF
@ -3198,7 +3198,7 @@ fi
RELEASE_DATE="2009-8-25"
RELEASE_DATE="2009-10-11"
ac_config_headers="$ac_config_headers include/do-not-use-config.h"
@ -39844,7 +39844,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by xorg-server $as_me 1.6.3.901, which was
This file was extended by xorg-server $as_me 1.6.5, which was
generated by GNU Autoconf 2.62. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -39897,7 +39897,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
xorg-server config.status 1.6.3.901
xorg-server config.status 1.6.5
configured by $0, generated by GNU Autoconf 2.62,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"

View File

@ -26,12 +26,12 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.57)
AC_INIT([xorg-server], 1.6.3.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
AC_INIT([xorg-server], 1.6.5, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
AM_MAINTAINER_MODE
RELEASE_DATE="2009-8-25"
RELEASE_DATE="2009-10-11"
dnl this gets generated by autoheader, and thus contains all the defines. we
dnl don't ever actually use it, internally.

View File

@ -1815,6 +1815,9 @@ SetFontPath(ClientPtr client, int npaths, unsigned char *paths, int *error)
int
SetDefaultFontPath(char *path)
{
char *temp_path,
*start,
*end;
unsigned char *cp,
*pp,
*nump,
@ -1825,12 +1828,31 @@ SetDefaultFontPath(char *path)
size = 0,
bad;
/* ensure temp_path contains "built-ins" */
start = path;
while (1) {
start = strstr(start, "built-ins");
if (start == NULL)
break;
end = start + strlen("built-ins");
if ((start == path || start[-1] == ',') && (!*end || *end == ','))
break;
start = end;
}
if (!start) {
temp_path = Xprintf("%s%sbuilt-ins", path, *path ? "," : "");
} else {
temp_path = Xstrdup(path);
}
if (!temp_path)
return BadAlloc;
/* get enough for string, plus values -- use up commas */
len = strlen(path) + 1;
nump = cp = newpath = (unsigned char *) xalloc(len);
len = strlen(temp_path) + 1;
nump = cp = newpath = xalloc(len);
if (!newpath)
return BadAlloc;
pp = (unsigned char *) path;
pp = (unsigned char *) temp_path;
cp++;
while (*pp) {
if (*pp == ',') {
@ -1849,6 +1871,7 @@ SetDefaultFontPath(char *path)
err = SetFontPathElements(num, newpath, &bad, TRUE);
xfree(newpath);
xfree(temp_path);
return err;
}

View File

@ -536,7 +536,7 @@ static EventListPtr
updateFromMaster(EventListPtr events, DeviceIntPtr dev, int *num_events)
{
DeviceIntPtr master = dev->u.master;
if (master && master->u.lastSlave != dev)
if (master && master->u.lastSlave != dev && dev->coreEvents)
{
updateSlaveDeviceCoords(master, dev);
master->u.lastSlave = dev;
@ -674,7 +674,7 @@ positionSprite(DeviceIntPtr dev, int *x, int *y,
* to the current screen. */
miPointerSetPosition(dev, &dev->last.valuators[0], &dev->last.valuators[1]);
if (dev->u.master) {
if (dev->u.master && dev->coreEvents) {
dev->u.master->last.valuators[0] = dev->last.valuators[0];
dev->u.master->last.valuators[1] = dev->last.valuators[1];
}

View File

@ -46,6 +46,11 @@ sets the screen size.
.BI -parent " id"
uses exiting window
.I id .
If a
.BI -screen
argument follows a
.BI -parent
argument, this screen is embedded into the given window.
.TP 8
.B -host-cursor
set 'cursor acceleration':

View File

@ -147,6 +147,7 @@ processScreenArg (char *screen_size, char *parent_id)
int
ddxProcessArgument (int argc, char **argv, int i)
{
static char* parent = NULL;
EPHYR_DBG("mark argv[%d]='%s'", i, argv[i] );
if (i == 1)
@ -158,6 +159,18 @@ ddxProcessArgument (int argc, char **argv, int i)
{
if(i+1 < argc)
{
int j;
/* If parent is specified and a screen argument follows, don't do
* anything, let the -screen handling init the rest */
for (j = i; j < argc; j++)
{
if (!strcmp(argv[j], "-screen"))
{
parent = argv[i + 1];
return 2;
}
}
processScreenArg ("100x100", argv[i+1]);
return 2;
}
@ -169,7 +182,8 @@ ddxProcessArgument (int argc, char **argv, int i)
{
if ((i+1) < argc)
{
processScreenArg (argv[i+1], NULL);
processScreenArg (argv[i+1], parent);
parent = NULL;
return 2;
}

View File

@ -612,22 +612,6 @@ configFiles(XF86ConfFilesPtr fileconf)
pathFrom = X_DEFAULT;
temp_path = defaultFontPath ? defaultFontPath : "";
/* ensure defaultFontPath contains "built-ins" */
start = strstr(temp_path, "built-ins");
end = start + strlen("built-ins");
if (start == NULL ||
!((start == temp_path || start[-1] == ',') && (!*end || *end == ','))) {
defaultFontPath = Xprintf("%s%sbuilt-ins",
temp_path, *temp_path ? "," : "");
if (must_copy == TRUE) {
if (defaultFontPath != NULL) {
must_copy = FALSE;
}
} else {
/* already made a copy of the font path */
xfree(temp_path);
}
}
/* xf86ValidateFontPath modifies its argument, but returns a copy of it. */
temp_path = must_copy ? XNFstrdup(defaultFontPath) : defaultFontPath;
defaultFontPath = xf86ValidateFontPath(temp_path);

View File

@ -120,8 +120,22 @@ DGAInit(
DGAScreenKey = &DGAScreenKeyIndex;
if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec))))
return FALSE;
pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen);
if (!pScreenPriv)
{
if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec))))
return FALSE;
dixSetPrivate(&pScreen->devPrivates, DGAScreenKey, pScreenPriv);
pScreenPriv->CloseScreen = pScreen->CloseScreen;
pScreen->CloseScreen = DGACloseScreen;
pScreenPriv->DestroyColormap = pScreen->DestroyColormap;
pScreen->DestroyColormap = DGADestroyColormap;
pScreenPriv->InstallColormap = pScreen->InstallColormap;
pScreen->InstallColormap = DGAInstallColormap;
pScreenPriv->UninstallColormap = pScreen->UninstallColormap;
pScreen->UninstallColormap = DGAUninstallColormap;
}
pScreenPriv->pScrn = pScrn;
pScreenPriv->numModes = num;
@ -146,17 +160,6 @@ DGAInit(
modes[i].flags &= ~DGA_PIXMAP_AVAILABLE;
#endif
dixSetPrivate(&pScreen->devPrivates, DGAScreenKey, pScreenPriv);
pScreenPriv->CloseScreen = pScreen->CloseScreen;
pScreen->CloseScreen = DGACloseScreen;
pScreenPriv->DestroyColormap = pScreen->DestroyColormap;
pScreen->DestroyColormap = DGADestroyColormap;
pScreenPriv->InstallColormap = pScreen->InstallColormap;
pScreen->InstallColormap = DGAInstallColormap;
pScreenPriv->UninstallColormap = pScreen->UninstallColormap;
pScreen->UninstallColormap = DGAUninstallColormap;
return TRUE;
}

View File

@ -190,10 +190,18 @@ do_get_buffers(DrawablePtr pDraw, int *width, int *height,
int need_fake_front = 0;
int have_fake_front = 0;
int front_format = 0;
const int dimensions_match = (pDraw->width == pPriv->width)
&& (pDraw->height == pPriv->height);
int dimensions_match;
int i;
if (!pPriv) {
*width = pDraw->width;
*height = pDraw->height;
*out_count = 0;
return NULL;
}
dimensions_match = (pDraw->width == pPriv->width)
&& (pDraw->height == pPriv->height);
buffers = xalloc((count + 1) * sizeof(buffers[0]));

View File

@ -318,7 +318,13 @@ fbdev_open_pci(struct pci_device * pPci, char **namep)
pPci->domain, pPci->bus, pPci->dev, pPci->func, i);
fd = open(filename, O_RDONLY, 0);
if (fd != -1) {
if (fd < 0) {
sprintf(filename,
"/sys/bus/pci/devices/%04x:%02x:%02x.%d/graphics:fb%d",
pPci->domain, pPci->bus, pPci->dev, pPci->func, i);
fd = open(filename, O_RDONLY, 0);
}
if (fd >= 0) {
close(fd);
sprintf(filename, "/dev/fb%d", i);

View File

@ -771,6 +771,9 @@ xf86CrtcScreenInit (ScreenPtr screen)
config->CloseScreen = screen->CloseScreen;
screen->CloseScreen = xf86CrtcCloseScreen;
#ifdef XFreeXDGA
_xf86_di_dga_init_internal(screen);
#endif
#ifdef RANDR_13_INTERFACE
return RANDR_INTERFACE_VERSION;
#else
@ -1884,6 +1887,10 @@ xf86SetScrnInfoModes (ScrnInfoPtr scrn)
}
}
scrn->currentMode = scrn->modes;
#ifdef XFreeXDGA
if (scrn->pScreen)
_xf86_di_dga_reinit_internal(scrn->pScreen);
#endif
}
static void

View File

@ -807,6 +807,10 @@ xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus);
Bool
xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address);
/* this is the real function, used only internally */
_X_INTERNAL Bool
_xf86_di_dga_init_internal (ScreenPtr pScreen);
/**
* Re-initialize dga for this screen (as when the set of modes changes)
*/
@ -814,6 +818,10 @@ xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address);
Bool
xf86DiDGAReInit (ScreenPtr pScreen);
/* This is the real function, used only internally */
_X_INTERNAL Bool
_xf86_di_dga_reinit_internal (ScreenPtr pScreen);
/*
* Set the subpixel order reported for the screen using
* the information from the outputs

View File

@ -72,8 +72,7 @@ xf86_dga_get_modes (ScreenPtr pScreen)
mode = modes + num++;
mode->mode = display_mode;
mode->flags = DGA_CONCURRENT_ACCESS | DGA_PIXMAP_AVAILABLE;
mode->flags |= DGA_FILL_RECT | DGA_BLIT_RECT;
mode->flags = DGA_CONCURRENT_ACCESS;
if (display_mode->Flags & V_DBLSCAN)
mode->flags |= DGA_DOUBLESCAN;
if (display_mode->Flags & V_INTERLACE)
@ -91,14 +90,14 @@ xf86_dga_get_modes (ScreenPtr pScreen)
mode->yViewportStep = 1;
mode->viewportFlags = DGA_FLIP_RETRACE;
mode->offset = 0;
mode->address = (unsigned char *) xf86_config->dga_address;
mode->bytesPerScanline = xf86_config->dga_stride;
mode->imageWidth = xf86_config->dga_width;
mode->imageHeight = xf86_config->dga_height;
mode->address = 0;
mode->imageWidth = mode->viewportWidth;
mode->imageHeight = mode->viewportHeight;
mode->bytesPerScanline = (mode->imageWidth * scrn->bitsPerPixel) >> 3;
mode->pixmapWidth = mode->imageWidth;
mode->pixmapHeight = mode->imageHeight;
mode->maxViewportX = mode->imageWidth - mode->viewportWidth;
mode->maxViewportY = mode->imageHeight - mode->viewportHeight;
mode->maxViewportX = 0;
mode->maxViewportY = 0;
display_mode = display_mode->next;
if (display_mode == scrn->modes)
@ -148,94 +147,12 @@ xf86_dga_set_viewport(ScrnInfoPtr scrn, int x, int y, int flags)
scrn->AdjustFrame(scrn->pScreen->myNum, x, y, flags);
}
static Bool
xf86_dga_get_drawable_and_gc (ScrnInfoPtr scrn, DrawablePtr *ppDrawable, GCPtr *ppGC)
{
ScreenPtr pScreen = scrn->pScreen;
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
PixmapPtr pPixmap;
GCPtr pGC;
pPixmap = GetScratchPixmapHeader (pScreen, xf86_config->dga_width, xf86_config->dga_height,
scrn->depth, scrn->bitsPerPixel, xf86_config->dga_stride,
(char *) scrn->memPhysBase + scrn->fbOffset);
if (!pPixmap)
return FALSE;
pGC = GetScratchGC (scrn->depth, pScreen);
if (!pGC)
{
FreeScratchPixmapHeader (pPixmap);
return FALSE;
}
*ppDrawable = &pPixmap->drawable;
*ppGC = pGC;
return TRUE;
}
static void
xf86_dga_release_drawable_and_gc (ScrnInfoPtr scrn, DrawablePtr pDrawable, GCPtr pGC)
{
FreeScratchGC (pGC);
FreeScratchPixmapHeader ((PixmapPtr) pDrawable);
}
static void
xf86_dga_fill_rect(ScrnInfoPtr scrn, int x, int y, int w, int h, unsigned long color)
{
GCPtr pGC;
DrawablePtr pDrawable;
XID vals[1];
xRectangle r;
if (!xf86_dga_get_drawable_and_gc (scrn, &pDrawable, &pGC))
return;
vals[0] = color;
ChangeGC (pGC, GCForeground, vals);
ValidateGC (pDrawable, pGC);
r.x = x;
r.y = y;
r.width = w;
r.height = h;
pGC->ops->PolyFillRect (pDrawable, pGC, 1, &r);
xf86_dga_release_drawable_and_gc (scrn, pDrawable, pGC);
}
static void
xf86_dga_sync(ScrnInfoPtr scrn)
{
ScreenPtr pScreen = scrn->pScreen;
WindowPtr pRoot = WindowTable [pScreen->myNum];
char buffer[4];
pScreen->GetImage (&pRoot->drawable, 0, 0, 1, 1, ZPixmap, ~0L, buffer);
}
static void
xf86_dga_blit_rect(ScrnInfoPtr scrn, int srcx, int srcy, int w, int h, int dstx, int dsty)
{
DrawablePtr pDrawable;
GCPtr pGC;
if (!xf86_dga_get_drawable_and_gc (scrn, &pDrawable, &pGC))
return;
ValidateGC (pDrawable, pGC);
pGC->ops->CopyArea (pDrawable, pDrawable, pGC, srcx, srcy, w, h, dstx, dsty);
xf86_dga_release_drawable_and_gc (scrn, pDrawable, pGC);
}
static Bool
xf86_dga_open_framebuffer(ScrnInfoPtr scrn,
char **name,
unsigned char **mem, int *size, int *offset, int *flags)
{
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
*size = xf86_config->dga_stride * xf86_config->dga_height;
*mem = (unsigned char *) (xf86_config->dga_address);
*offset = 0;
*flags = DGA_NEED_ROOT;
return TRUE;
return FALSE;
}
static void
@ -249,18 +166,27 @@ static DGAFunctionRec xf86_dga_funcs = {
xf86_dga_set_mode,
xf86_dga_set_viewport,
xf86_dga_get_viewport,
xf86_dga_sync,
xf86_dga_fill_rect,
xf86_dga_blit_rect,
NULL,
NULL,
NULL,
NULL
};
_X_EXPORT Bool
xf86DiDGAReInit (ScreenPtr pScreen)
{
return TRUE;
}
Bool
_xf86_di_dga_reinit_internal (ScreenPtr pScreen)
{
ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
if (!DGAAvailable(pScreen->myNum))
return TRUE;
if (!xf86_dga_get_modes (pScreen))
return FALSE;
@ -269,15 +195,21 @@ xf86DiDGAReInit (ScreenPtr pScreen)
_X_EXPORT Bool
xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address)
{
return TRUE;
}
Bool
_xf86_di_dga_init_internal (ScreenPtr pScreen)
{
ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
xf86_config->dga_flags = 0;
xf86_config->dga_address = dga_address;
xf86_config->dga_width = scrn->virtualX;
xf86_config->dga_height = scrn->virtualY;
xf86_config->dga_stride = scrn->displayWidth * scrn->bitsPerPixel >> 3;
xf86_config->dga_address = 0;
xf86_config->dga_width = 0;
xf86_config->dga_height = 0;
xf86_config->dga_stride = 0;
if (!xf86_dga_get_modes (pScreen))
return FALSE;

View File

@ -1,5 +1,5 @@
/*
* Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
* Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@ -460,7 +460,6 @@ xf86RandR12GetInfo (ScreenPtr pScreen, Rotation *rotations)
{
xf86ProbeOutputModes (scrp, 0, 0);
xf86SetScrnInfoModes (scrp);
xf86DiDGAReInit (pScreen);
}
for (mode = scrp->modes; ; mode = mode->next)
@ -1481,7 +1480,6 @@ xf86RandR12GetInfo12 (ScreenPtr pScreen, Rotation *rotations)
return TRUE;
xf86ProbeOutputModes (pScrn, 0, 0);
xf86SetScrnInfoModes (pScrn);
xf86DiDGAReInit (pScreen);
return xf86RandR12SetInfo12 (pScreen);
}

View File

@ -2127,17 +2127,6 @@ EOF
;;
esac
for pass in $passes; do
# The preopen pass in lib mode reverses $deplibs; put it back here
# so that -L comes before libs that need it for instance...
if test "$linkmode,$pass" = "lib,link"; then
## FIXME: Find the place where the list is rebuilt in the wrong
## order, and fix it there properly
tmp_deplibs=
for deplib in $deplibs; do
tmp_deplibs="$deplib $tmp_deplibs"
done
deplibs="$tmp_deplibs"
fi
if test "$linkmode,$pass" = "lib,link" ||
test "$linkmode,$pass" = "prog,scan"; then
libs="$deplibs"

View File

@ -446,7 +446,7 @@ mieqProcessInputEvents(void)
NewCurrentScreen (dev, DequeueScreen(dev), x, y);
}
else {
if (master) {
if (master && dev->coreEvents) {
/* Force a copy of the key class into the VCK so that the layout
is transferred. */
if (event->u.u.type == DeviceKeyPress ||
@ -473,7 +473,7 @@ mieqProcessInputEvents(void)
/* process slave first, then master */
dev->public.processInputProc(event, dev, nevents);
if (master)
if (master && dev->coreEvents)
master->public.processInputProc(masterEvents->event, master,
nevents);
}

View File

@ -54,6 +54,9 @@
#define UINT32_MAX 0xffffffffU
#endif
#define SERVER_RENDER_MAJOR 0
#define SERVER_RENDER_MINOR 10
static int ProcRenderQueryVersion (ClientPtr pClient);
static int ProcRenderQueryPictFormats (ClientPtr pClient);
static int ProcRenderQueryPictIndexValues (ClientPtr pClient);
@ -271,8 +274,8 @@ ProcRenderQueryVersion (ClientPtr client)
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
rep.majorVersion = RENDER_MAJOR;
rep.minorVersion = RENDER_MINOR;
rep.majorVersion = SERVER_RENDER_MAJOR;
rep.minorVersion = SERVER_RENDER_MINOR;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);