Commit Graph

2794 Commits

Author SHA1 Message Date
Jamey Sharp
e2929db7b7 dixChangeGC callers: Use ChangeGCVal instead of XID almost everywhere.
The exceptions are ProcChangeGC and CreateGC.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-05-13 17:13:48 -07:00
Jeremy Huddleston
bca85e2e12 Use _X_ATTRIBUTE_PRINTF _X_DEPRECATED _X_NORETURN
Use the values from xproto rather than duplicating the effort

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-13 10:03:23 -07:00
Kristian Høgsberg
421606a8ef dri2: Send out event when auxillary buffers are invalidated
This lets the DRI2 clients rely on the server to notify them when they
need to get new buffers.  Without this, OpenGL clients poll the server
in glViewport() which can be a performance problems and also isn't
completely correct behaviour.

We bump the DRI2 protocol minor to indicate the availability of the
event, which the DRI2 clients can use to avoid polling.  This speeds up
various piglit and oglc test cases as well as real applications.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-13 06:32:04 -07:00
Alan Coopersmith
f281db9a5e Remove ResNoAvoid definition, missed in the RAC removal
ResNoAvoid is #defined to ResBios, but ResBios was removed
from xf86str.h in 4b42448a23

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-13 04:20:34 -07:00
Jamey Sharp
04bad1b8a1 Kill ChangeGC in favor of dixChangeGC.
This doesn't change any behavior, but it isn't clear whether NullClient
is correct in all cases. As ajax says,

> For most of these changes, I think it's correct to use NullClient,
> since they are server-initiated changes and should not fail for (eg)
> xace reasons. ... At any rate, you're certainly not changing any
> semantics by leaving them all as NullClient, so this patch can't be
> more wrong than before.

The call in CreateGC is particularly questionable.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2010-05-12 18:10:01 -07:00
Jamey Sharp
65cedf3905 Kill DoChangeGC in favor of dixChangeGC.
This doesn't change any behavior, but it isn't clear whether NullClient
is correct in all cases. As ajax says,

> For most of these changes, I think it's correct to use NullClient,
> since they are server-initiated changes and should not fail for (eg)
> xace reasons. ... At any rate, you're certainly not changing any
> semantics by leaving them all as NullClient, so this patch can't be
> more wrong than before.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-05-12 18:09:55 -07:00
Mikhail Gusarov
3f3ff971ec Replace X-allocation functions with their C89 counterparts
The only remaining X-functions used in server are XNF*, the rest is converted to
plain alloc/calloc/realloc/free/strdup.

X* functions are still exported from server and x* macros are still defined in
header file, so both ABI and API are not affected by this change.

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-13 00:22:37 +07:00
Kristian Høgsberg
4f0006c220 dri2: Copy front to fake front in swapbuffer
If we don't have a fake front, nothing will happen.  The fix was extracted
from a bigger patch from Francisco Jerez.

https://bugs.freedesktop.org/show_bug.cgi?id=27305
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Pauli Nieminen <suokkos@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-12 10:00:15 -07:00
Keith Packard
3df22b293c Merge remote branch 'krh/dri2-resource-fixes' 2010-05-11 08:38:44 -07:00
Cyril Brulebois
fa6c701257 Fix null pointer dereference in xf86_reload_cursors().
Upon resume, X may try to dereference a null pointer, which has been
reported in Debian bug #507916 (http://bugs.debian.org/507916).

Jim Paris came up with a patch which solves the problem for him. Here's
a (hopefully) fixed version of his patch (without the typo).

Cc: Jim Paris <jim@jtan.com>
Signed-off-by: Cyril Brulebois <kibi@debian.org>
Reviewed-By: Matthias Hopf <mhopf@suse.de>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-11 08:35:28 -07:00
Kristian Høgsberg
9de0e31746 dri2: Take an XID for tracking the DRI2 drawable
Some pixmaps (window pixmaps and scratch pixmaps) don't have the
drawable->id set and thus DRI2 gets confused when using that field
for looking up the DRI2 drawable.  Go back to using privates for getting
at the DRI2 drawable from a DrawablePtr.  We need to keep the resource
tracking in place so we can remove the DRI2 drawable when the X resource
it was created for goes away.  Additionally, we also now track the DRI2
drawable using a client XID so we can reclaim the DRI2 drawable even if
the client goes before the drawable and doesn't destroy the DRI2 drawable.

Tested-by: Owen W. Taylor <otaylor@fishsoup.net>
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
2010-05-11 11:01:35 -04:00
Peter Hutterer
10de9e8ee3 xfree86: dga needs to use the master keyboard state (#27573)
GetPairedDevice() may not always return the keyboard, resulting in a
null-pointer dereference when accessing the XKB state.
For floating devices, the GetMaster() returns the device itself.

X.Org Bug 27573 <http://bugs.freedesktop.org/show_bug.cgi?id=27573>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Tested-by: Ben Hutchings <ben@decadent.org.uk>
2010-05-11 13:33:19 +10:00
Keith Packard
cdeb2c23f8 Fix cursor ref counting mistakes with sprites and xf86Cursor.c
A few cursor value assignments weren't getting correctly ref counted,
causing leaks of cursor objects.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-03 10:26:52 -07:00
Keith Packard
986d46144b Merge remote branch 'jamey/for-keith'
Conflicts:
	hw/xfree86/common/xf86xv.c
2010-04-30 12:40:53 -07:00
Keith Packard
a974c8e7cb Merge remote branch 'whot/for-keith' 2010-04-30 12:33:00 -07:00
Keith Packard
6581bc4591 Merge remote branch 'yselkowitz/master' 2010-04-30 12:29:52 -07:00
Keith Packard
0e91e19f78 Merge remote branch 'vignatti/for-keith' 2010-04-30 12:27:51 -07:00
Peter Hutterer
02e86221b8 xfree86: a missing input driver is not an error.
We call NIDR on all devices that make it through the config backend.
Including some that have no driver assigned to them (/dev/input/mouse0 for
example). Those ones then simply get ignored by NIDR, but this should not be
noted as an error in the log file.

X_INFO is sufficient, and it may just prevent some bugreports.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-04-30 11:33:25 +10:00
Adam Jackson
ffaae7c0c6 Remove mibank support
Banked framebuffers are so 1990.  As of 7.4 the only drivers remaining
that used this were chips, neomagic, trident, and vesa.  vesa only used
it when not using shadowfb, which is broadly undesirable anyway, and no
longer uses it at all as of 2.3.0.  neomagic never used it by default,
and support for it is gone in git master.  The other two effectively
only ever used it for ISA chips; since ISA support is now gone from
the server, they have been modified to only compile mibank support when
ISA support is available.

Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-27 11:14:03 -07:00
Jamey Sharp
b5b8f91b82 xfree86: use screen privates for Xv offscreen images.
This replaces a globally-allocated array that depended on MAXSCREENS.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Acked-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
2010-04-27 11:03:01 -07:00
Jamey Sharp
a1c2acfe79 xfree86: use screen privates for exclusive DGA clients.
Most DGA requests allow at most one client to be using DGA on each
screen. Instead of keeping track of the current client in a
MAXSCREEN-sized array, track it in a per-screen private.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Acked-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
2010-04-27 11:02:37 -07:00
Pierre-Loup A. Griffais
41bdb6c003 xf86: Don't crash when switching modes through RandR without owning the VT.
While VT-switched, FB access is disabled and should remain so. Trying to switch
modes in that state would re-enable it, potentially causing crashes if trying
to access it before the driver has recovered from the mode switch.

Signed-off-by: Pierre-Loup A. Griffais <pgriffais@nvidia.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-26 20:15:17 -07:00
Yaakov Selkowitz
6e0d847c27 xfree86: Fix reference to SGML entities
XORG_CHECK_LINUXDOC sets the SGML search path to the parent of X11/defs.ent.

Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
Tested-by: Gaetan Nadon <memsize@videotron.ca>
2010-04-26 11:35:53 -05:00
Yaakov Selkowitz
04b7d529c0 xfree86: Ignore linuxdoc generated docs
Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Acked-by: Gaetan Nadon <memsize@videotron.ca>
2010-04-26 11:35:52 -05:00
Tiago Vignatti
edbc56c088 include: remove couple of unused structures fields and bump ABI
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
2010-04-26 14:53:12 +03:00
Tiago Vignatti
64fd39f2f0 xfree86: no need to assign numScreens again
numScreens is always being assigned to 0 in dix for any server generation.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-23 16:13:57 +03:00
Tiago Vignatti
b61870595b xfree86: track screens' installed colormaps as screen privates
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Jamey Sharp <jamey@minilop.net>
2010-04-23 15:50:23 +03:00
Jamey Sharp
e055bef055 xfree86: use screen privates for exclusive DGA clients
Most DGA requests allow at most one client to be using DGA on each screen.
Instead of keeping track of the current client in a MAXSCREEN-sized array,
track it in a per-screen private.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Acked-by: Tiago Vignatti <tiago.vignatti@nokia.com>
2010-04-23 15:32:01 +03:00
Jamey Sharp
7c9733d063 xfree86: use screen privates for Xv offscreen images.
This replaces a globally-allocated array that depended on MAXSCREENS.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Acked-by: Tiago Vignatti <tiago.vignatti@nokia.com>
2010-04-23 15:30:03 +03:00
Tiago Vignatti
35d208125f xfree86: fix not reached code in fi1236 driver from i2c
This issue was introduced in the first dump of the code in 2004. I haven't
check what's the correct fix for it so I simply kept the behaviour of someone
calling this and removed the unreachable code.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-21 16:16:26 -07:00
Keith Packard
7ac6a6b7d0 Merge remote branch 'vignatti/for-keith'
Conflicts:
	exa/exa.c

Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-21 16:07:38 -07:00
Tiago Vignatti
f7ef6fd9a1 xfree86: fix not reached code in tty code
CLEARRTS_SUPPORT cannot be triggered at all. Notice that mouse driver manual
page states the support for it though.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-21 18:07:28 +03:00
Tiago Vignatti
7f457351d2 xfree86: check for NULL pointer before dereferences it in parser code
Seems to be harmless. Meh.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-04-21 18:07:17 +03:00
Tiago Vignatti
f491b0aa5b xfree86: fix not reached code in parser
...because Error is a macro that returns NULL.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-04-21 18:07:13 +03:00
Tiago Vignatti
0ba82562ee Death to Multibuffer extension
The rationale behind is because no sane application will use this when we have
modern APIs such DRI2. Besides, as a fact, xfree86 server has already
deprecated this extension in 1998:

    http://www.xfree86.org/3.3.6/isc7.html

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-04-21 18:06:35 +03:00
Keith Packard
28b7b2b8d0 unifdef -B -DRENDER to always include RENDER code
This patch was created with:

git ls-files '*.[ch]' | while read f; do unifdef -B -DRENDER -o $f $f; done

Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-19 09:26:10 -07:00
Keith Packard
b3ab978df8 Merge remote branch 'whot/for-keith' 2010-04-18 22:01:40 -07:00
Kristian Høgsberg
1da1f33f2d DRI2: Track DRI2 drawables as resources, not privates
The main motivation here is to have the resource system clean up the
DRI2 drawable automatically so glx doesn't have to.  Right now, the
glx drawable resource must be destroyed before the X drawable, so that
calling DRI2DestroyDrawable doesn't crash.  By making the DRI2
drawable a resource, GLX doesn't have to worry about that and the
resource destruction order becomes irrelevant.

https://bugs.freedesktop.org/show_bug.cgi?id=26394

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-16 14:53:31 -07:00
Benjamin Tissoires
a780e5b363 xf86ScaleAxis: support for high resolution devices
High resolution devices was generating integer overflow.
For instance the wacom Cintiq 21UX has an axis value up to
87000. Thus the term (dSx * (Cx - Rxlow)) is greater than
MAX_INT32.

Using 64bits integer avoids such problem.

Signed-off-by: Philippe Ribet <ribet@cena.fr>
Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-16 14:39:50 +10:00
Dan Nicholson
adbbc66108 xfree86: Fix priority ordering for ignoring input classes
Commit 8736d112af changed the priority
ordering of the InputClass option merging to be "last match wins". This
fixes the handling of Option "Ignore" to follow that logic.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-04-11 07:29:23 -07:00
Keith Packard
d7c98c1c81 Merge remote branch 'whot/for-keith' 2010-04-07 22:25:51 -07:00
Peter Hutterer
03ccbd2579 xfree86: remove dead input drivers from xorg.conf man page.
These drivers have been deactivated for over a year now, let's not refer
potential users to them.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-08 15:21:01 +10:00
Dan Nicholson
95f01bdfee xfree86: Search for a system xorg.conf.d
In addition to the conf files found in /etc/X11 or $sysconfdir/X11 used
for local administration, we also reserve a system directory for vendor
and package usage. The simple search path is:

	/usr/share/X11/xorg.conf.d
	$datadir/X11/xorg.conf.d

Files from these directories will have the lowest config priority. The
directory $datadir/X11/xorg.conf.d is exported from xorg-server.pc in
the variable "sysconfigdir". Packages should install their .conf files
to the directory specified by:

	`pkg-config --variable=sysconfigdir xorg-server`

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-08 15:21:01 +10:00
Dan Nicholson
a1bae63dc6 xfree86: Set a saner search path for xorg.conf.d
There's no reason to carry all the oddities from xorg.conf like appended
hostname to the search path for xorg.conf.d. This changes it to something
very simple:

	/etc/X11/<cmdline>
	$sysconfdir/X11/<cmdline>
	/etc/X11/xorg.conf.d
	$sysconfdir/X11/xorg.conf.d

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-08 15:21:01 +10:00
Dan Nicholson
2ac33888a9 xfree86: Document how -configdir affects the xorg.conf.d search path
Explain the "safe" path dance for -configdir, too.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-08 15:21:01 +10:00
Dan Nicholson
2460e921d1 xfree86: Allow adding sysconfdir and datadir to config search paths
We could just use $projectroot/etc and $projectroot/share, but the user
might have other plans for them.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-08 15:21:00 +10:00
Pierre-Loup A. Griffais
6b09f66d8c Don't keep a pointer to a possibly freed cursor when changing screens, preventing a crash in xf86CursorEnableDisableFBAccess() trying to restore it.
Signed-off-by: Pierre-Loup A. Griffais <pgriffais@nvidia.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-08 15:21:00 +10:00
Alan Coopersmith
82cf3a4ae0 Convert x86emu fixed size int typedefs to use stdint types
Fixes x86emu builds when using non-gnu compilers now that u64 is required

Before this fix, the u64 type would not be defined, causing
x86emu/sys.c to fail to build:
"sys.c", line 102: syntax error before or at: ldq_u
"sys.c", line 102: syntax error before or at: *

Since Keith requested using <stdint.h>, converted all the x86emu
typedefs to use the stdint types.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Acked-by: Matt Turner <mattst88@gmail.com>
Acked-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-07 16:18:24 -07:00
Keith Packard
a7698a6776 Merge remote branch 'jbarnes/master' 2010-04-06 12:36:15 -07:00
Tiago Vignatti
b9ad452ec9 xfree86: die gracefully in the vga arbiter if AddScreen fails
vga arbiter will be locked in one device while AbortDDX will call LeaveVT
routines from the other device. Fail!

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-02 00:09:20 -07:00
Ruediger Oertel
67b814d9b2 Remove now obsolete function chooseVideoDriver
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-03-29 12:01:46 -07:00
Ruediger Oertel
1dd5fbc5a4 xfree86: Handle driver autoconfiguration when .conf files exist
When doing driver autoconfiguration with some parts of the config file
present but no driver set (e.g. only input configuration) fix the case
that we may have multiple drivers to try.

Create a screen section for each driver and let them be tried in a row.

Signed-off-by: Ruediger Oertel <ro@suse.de>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Tested-by: Timo Aaltonen <timo.aaltonen@aalto.fi>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-03-29 12:01:15 -07:00
Jesse Barnes
165a4a9c7d GLX/DRI2: expose swap control extensions if DDX support is present
Export DDX swap control status from the DRI2 module and check for it in
GLX when initializing extensions.

Reviewed-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-29 10:03:12 -07:00
Jesse Barnes
5933b0abc6 DRI2: prevent swap wakes from waking MSC waiters
If a few swaps were queued leading to a throttle related block on the
client, and then the client submitted an MSC wait, one of the previous
swap wakeups could have caused the MSC wait to complete early.  Add a
flag for this to prevent a swap wake from prematurely waking an MSC
waiter.

Reported-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Reviewed-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-29 10:02:57 -07:00
Jesse Barnes
b00d435ddf DRI2: handle swapsPending better
Avoid a potential swapsPending underflow by incrementing it before
ScheduleSwap, which may complete it immediately.  And be sure to
decrement it again in case the schedule failed.

Reported-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Reviewed-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-29 10:02:51 -07:00
Jesse Barnes
0294ff2a5c DRI2: throttle swaps at submission time too
We need to throttle swaps here in addition to when the context is made
current to avoid causing problems with clients that just swap.
Throttling here also ensures our swaps get ordered as long as we block
the client occasionally.

Reported-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Reviewed-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-29 10:02:45 -07:00
Jesse Barnes
db1c7cb604 DRI2: advertise lowest supported DRI2 protocol version
Update our supported DRI2 protocol version as each driver does
DRI2ScreenInit, since depending on available kernel features, each DDX
may support different callbacks and therefore protocol.

Reviewed-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-29 10:02:37 -07:00
Jesse Barnes
87ca6320f2 DRI2: handle swap_interval of 0 correctly
A 0 swap interval means that swaps shouldn't be sync'd to vblank, so
just complete the swap immediately in that case.

Reviewed-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-29 10:02:30 -07:00
Jesse Barnes
8476d99231 DRI2: drawable lifetime fixes
Handle drawable destruction and lifetime correctly.

Check whether the drawable priv is valid in DRI2SwapInterval(),
DRI2WaitSBC() and DRI2WaitMSC(); it may have gone away, so be sure to
check it before using it.

If more than 1 outstanding swap is queued, we may complete several after
an app has exited.  If we free it after the first one completes and the
refcount reaches 0, we'll crash the server on subsequent completions.
So delay freeing until all swaps complete and remove the error message
as this is a normal occurence.  To do this properly, we must also avoid
destroying drawables in DRI2DestroyDrawable() if a swap or wait event is
pending.

And finally, make sure we free drawables in DRI2WaitMSCComplete() if
necessary (i.e. if the refcount has reached 0 and this MSC was the last
pending event on the object).

Reported-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Reviewed-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-29 10:02:22 -07:00
Jesse Barnes
b180e43977 DRI2: fix swapbuffers handling of SBC and target MSC
Returns expected SBC after completion of swap to caller, as required by
OML_sync_control spec, instead of the last_swap_target value.

Passes target_msc, divisor, remainder, correctly for
glXSwapBuffersMscOML() call, while retaining old behaviour for simple
glXSwapBuffers() call.

An OML swap can have a 0 target_msc, which just means it needs to
satisfy the divisor/remainder equation.  Pass this down to the driver as
needed so we can support it.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
2010-03-29 10:02:17 -07:00
Mario Kleiner
751e8c09d3 DRI2WaitSbc(): Fixes for correct semantic of glXWaitForSbcOML()
Added implementation for case target_sbc == 0. In that case, the
function shall schedule a wait until all pending swaps for the drawable
have completed.

Fix for non-blocking case. Old implementation returned random,
uninitialized values for (ust,msc,sbc) if it returned immediately
without scheduling a wait due to sbc >= target_sbc.

Now if function doesn't schedule a wait, but returns immediately,
it returns the (ust,msc,sbc) of the most recently completed swap,
i.e., the UST and MSC corresponding to the time when the returned
current SBC was reached.

Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
2010-03-29 10:02:13 -07:00
Mario Kleiner
0de4974b90 DRI2: Fix glitches in DRI2SwapComplete() and DRI2WakeupClient()
DRI2SwapComplete(): Increment pPriv->swap_count++; before calling
into callback for INTEL_swap_events extension, so the swap event
contains the current SBC after swap completion instead of the
previous one.

DRI2WakeupClient: Check for pPriv->target_sbc <= pPriv->swap_count,
had wrong comparison pPriv->target_sbc >= pPriv->swap_count for
unblocking of clients of DRI2WaitSBC().

Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
2010-03-29 10:01:53 -07:00
Jesse Barnes
4c8ec49826 DRI2: make target_sbc signed
We need to track invalid targets as well as 0 targets, so just make it
signed so our comparisons work like they should.

Reviewed-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Reported-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-29 10:01:46 -07:00
Jesse Barnes
c4d54816f2 DRI2: fixup handling of last_swap_target
We need to initialize the swap target, which is passed to the driver to
schedule events.  Rather than using -1 to indicate that the field is
uninitialized, just make sure we initialize it at drawable creation
time.

Reviewed-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-03-29 10:01:07 -07:00
Peter Hutterer
70bd02f2ea xfree86: merge driver from the input class into the options.
A driver that is assigned by an input class is only present as idev->driver.
The driver itself has no access to this information once PreInit is called.
For devices that rely on chain-hotplugging (wacom), this means that for the
second device the driver information is lost and the second device cannot be
initialized through NewInputDeviceRequest. Although this could be worked
around by hardcoding the driver name in the wacom driver, having the
assigned driver in the options seems like the better solution.

This issue only manifests itself with the udev backend. With HAL, the driver
is assigned by HAL and the option is duplicated in config/hal.c.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-03-26 15:30:55 +10:00
Peter Hutterer
0ecfab89d1 xfree86: remove if 1 from the dawn of time.
7+ years for an if 1 should be enough to just admit that there's no other
option.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
Reviewed-by: Corbin Simpson <MostAwesomeDude@gmail.com>
2010-03-24 08:07:25 +10:00
Yaakov Selkowitz
0820a6e2fb Fix .man.N targets for AM_SILENT_RULES
Add $(AM_V_GEN) for sed-based rules so they appear as expected with
automake silent rules, and $(AM_V_at) to completely hide cp/ln/rm
commands which are not prone to fail.

Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
2010-03-22 00:45:55 -05:00
Yaakov Selkowitz
5e00f464c5 Fix relink targets for silent rules
Add $(AM_V_at) to all relink make targets to silence them when automake
silent rules are in use.

Signed-off-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
2010-03-22 00:45:52 -05:00
Keith Packard
235fa50304 Merge commit 'fa5103a02bd509e4a102afdad2ab26cb22210367' 2010-03-21 15:38:40 -07:00
Oliver McFadden
e7ff956638 common: xf86Configure: alloc_strlen: Allocated memory does not have space for the terminating NUL of the string
buffer_alloc: Called allocating function "realloc" which allocated memory dictated by parameter "len + strlen(displaySize_string)"
alloc_strlen: Allocated memory does not have space for the terminating NUL of the string
var_assign: Assigned "ptr->mon_comment" to storage allocated by "realloc(ptr->mon_comment, len + strlen(displaySize_string))"

Signed-off-by: Oliver McFadden <oliver.mcfadden@nokia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-03-21 15:20:53 -07:00
Francisco Jerez
fa5103a02b dri2: No need to blit from front on DRI2GetBuffers if they're just being reused.
It can be quite an expensive operation, so we're better off not doing
it unless it's totally required.

Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
2010-03-16 09:51:08 -04:00
Roland Scheidegger
67a8c659f2 hw/xfree86: move reference counting out of the UseHWCursor[ARGB] functions
The problem is that the xf86_use_hw_cursor(_argb) functions may get this
correctly now, some drivers will replace these generic versions with their
own functions. It is pretty insane to expect them to do reference counting
of the cursor (as an example, look at driver/xf86-video-vmware to see how
that looks like as a workaround). There are even places in xserver itself
which replace these two functions.
The segfaults if no reference counting is done are caused because the
reference count of the cursor reached zero, hence the cursor was freed,
however xf86CursorEnableDisableFBAccess() brought it back to life from
the dead (from the SavedCursor).
This patch hence adds reference counting in xf86CursorSetCursor. As per Michel
Daenzer's suggestion, also free the cursor upon xf86CursorCloseScreen.
In theory with this it should be possible to remove the reference
counting in the UseHwCursor functions I think, though it should also be
safe to keep them.

Signed-off-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-03-15 08:37:53 -07:00
Roland Scheidegger
75efb46a14 hw/xfree86: fix refcounting in xf86_use_hw_cursor
This is the same fix as was done in
fcdc1d78cc for xf86_use_hw_cursor_argb.

Signed-off-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-03-15 08:36:33 -07:00
Peter Hutterer
df9f327304 xfree86: fix xf86Config.c build error in --enable-debug mode. (#26971)
xf86Config.c: In function 'configInputDevices':
xf86Config.c:1514: error: request for member 'lay_identifier' in something
not a structure or union
make[5]: *** [xf86Config.lo] Error 1

Introduced with e1165632bd.

X.Org Bug 26971 <http://bugs.freedesktop.org/show_bug.cgi?id=26971>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
2010-03-11 08:48:49 +10:00
Peter Hutterer
1160681032 xfree86: don't warn about nonexisting core pointer/keyboard in config.
In the vast majority of cases there is no xorg.conf that specifies a core
pointer/keyboard. Skip this warning, since we'll get another notification
about how the server relies on the config backend for input devices anyway.

Leave the warning in for the error case (AEI off).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-03-11 08:48:49 +10:00
Matt Turner
bbae92795c Replace assembly with generic unaligned access code
Removes Alpha assembly, and probably works around unaligned accesses on
other sensitive platforms.

Signed-off-by: Matt Turner <mattst88@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Compiled-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-03-03 20:02:49 -08:00
Keith Packard
de86a3a344 Allow for missing or disabled compat_output
When the compat output is missing (I don't think this is actually
possible), or is disabled (and hence has no crtc), we would like to
avoid dereferencing NULL pointers. This patch creates inline functions
to extract the current compat output, crtc or associated RandR crtc
structure, carefully checking for NULL pointers everywhere.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-25 12:48:27 -08:00
Keith Packard
fbbadca7e8 Share enum definition for det_monrec_parameter sync_source
There were two separate enum definitions, one inside
det_monrec_parameter struct and one for a local variable (which was then
stored inside the struct). Sharing a single definition makes the
code more obviously correct while making the compiler happier.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-25 12:48:06 -08:00
Robert Bragg
4b55b2cf8a DRI2: initialize event->drawable in DRI2SwapEvent
We weren't initialising the drawable in the event structure so the
client side DRI2WireToEvent used for translating the event into a GLX
event wouldn't be able to lookup up the corresponding GLXDrawable before
passing the event on.

Signed-off-by: Robert Bragg <robert@linux.intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-25 11:43:37 -08:00
Simon Farnsworth
93ff1bc588 Always enable outputs that have been forced on in the configuration file
If the user has gone to the effort of manually enabling an output in
the configuration file assume that they know what they're doing.

X.org Bug 14611 <http://bugs.freedesktop.org/show_bug.cgi?id=14611>

Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-22 13:28:40 -08:00
Rami Ylimaki
5b9a52be7e os: Prevent core dump from being truncated.
The problem fixed by this patch can be reproduced on Linux with the
following steps.
- Access NULL pointer intentionally in ProcessOtherEvent on key press.
- Instead of saving core dump to a file, write it into a pipe.
  echo "|/usr/sbin/my-core-dumper" > /proc/sys/kernel/core_pattern
- Dump the core by pressing a key.

While the core is being dumped into the pipe, the smart schedule timer
will cause a pending SIGALRM. Linux kernel stops writing data to the
pipe when there are pending signals. This causes the core dump to be
truncated. On my system I'm expecting a 6 MB dump but the size will be
60 kB instead. The problem is solved if we block the SIGALRM caused by
expired smart schedule timer.

I haven't been able to reproduce this problem in the following cases.
- Save core dump to a file instead of a pipe.
- kill -SEGV `pidof Xorg`
- Press a key to dump core while gdb is attached to Xorg.
- Give option -dumbSched to Xorg.

Also note that the fix works only when NoTrapSignals has the default
value FALSE. The problem can still be reproduced if error signals
aren't trapped. In addition to pending SIGALRM, there is a similar
problem with pending SIGIO from the keyboard driver during core dump.

Signed-off-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-17 23:20:52 -08:00
Oliver McFadden
031f92bf9a parser: corrected xf86getBoolValue to use case insensitive compare
commit c6e8637e29 introduced this
regression; it can cause existing config files to be parsed incorrectly.

Acked-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Oliver McFadden <oliver.mcfadden@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-17 23:16:25 -08:00
Alan Coopersmith
be96fb2f02 Solaris xf86OSRingBell() off-by-one error in filling iov[] array
When generating sound buffers for /dev/audio bells, insert waveform
for beep *or* silence, but not both, so we don't write one entry past
the end of the iov buffer when the final bit of soundwave ends up in
the final entry allocated in the iov array.

Fixes OpenSolaris bug 6894890:
 http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6894890

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-17 23:15:34 -08:00
Matt Turner
2d40f22d1e Use C-style comments in x86emu
Signed-off-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-17 23:13:04 -08:00
Dan Nicholson
8736d112af xfree86: Reorder InputClass option priorities
Currently the config and InputClasses are merged together so that the
options from the config backend have the highest priority. This is bad
since it means options such as a default XKB layout set by the backend
cannot be changed by the user.

This patch changes order of precedence to be:

1. xorg.conf
2. xorg.conf.d (later files have higher priority)
3. config backend

In order to allow this ordering, the config parsing has been changed to
read the xorg.conf.d files before xorg.conf. This has the consequence
that the core device picking which looks for the first InputDevice may
not find it in xorg.conf.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-15 15:27:42 +10:00
Peter Hutterer
d33adcdf03 dix: move config_init into the DDX.
The only DDX currently using hotplugging is the xfree86 one and it looks
like it'll stay that way for a bit. Move the initialization to the DDX,
since Xephyr, Xnest, and friends don't need HAL or udev notifications.

Add CloseInput (counterpart to InitInput) to be able to clean up the config
initialization from the DDX as well.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-02-15 09:15:18 +10:00
Soeren Sandmann
0b73f98cbd xfree86: Add qxl driver to the autoconfig logic
The qxl driver is for the QXL virtualized graphics device.

Signed-off-by: Søren Sandmann Pedersen <ssp@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-12 14:48:11 -08:00
Peter Hutterer
c6d9bc092c Add tag matching to input attributes.
Tags may be a list of comma-separated strings that match against a MatchTag
InputClass section. If any of the tags specified for a device match against
the MatchTag of the section, this match is evaluated true and passed on to
the next match condition.

Tags are specified as "input.tags" (hal) or "ID_INPUT.tags" (udev), the
value of the tags is case-sensitive and require an exact match (not a
substring match).

i.e. "quirk" will not match "QUIRK", "need_quirk" or "quirk_needed".

Example configuration:
udev:
    ENV{ID_INPUT.tags}="foo,bar"

hal:
    <merge key="input.tags" type="string">foo,bar</merge>

xorg.conf:
    Section "InputClass"
            Identifier "foobar quirks"
            MatchTag "foo|foobar"
            Option "Foobar" "on"
    EndSection

Where the xorg.conf section matches against any device with the tag "foo"
or tag "foobar" set.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-02-11 19:25:49 +10:00
Peter Hutterer
3ac43df5d4 Add xstrtokenize to the dix.
Move tokenize out of the parser, make it a dix util function instead.
Splitting a string into multiple substrings is useful by other places, so
let's use it across the line. Future users include config/hal, config/udev
and of course the parser.

Example usage:
char **substrings = xstrtokenize(my_string, "\n");

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-02-11 19:25:39 +10:00
Dan Nicholson
27d1b86d1b xfree86: Set fnmatch pathname flag for InputClass device matching
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:34 +10:00
Dan Nicholson
9b369f7127 xfree86: Allow multiple arguments to InputClass matches
In order to keep the number of InputClass sections manageable, allow
matches to contain multiple arguments. The arguments will be separated
by the '|' character. This allows a policy to apply to multiple types of
devices. For example:

    Section "InputClass"
        Identifier "Inverted Mice"
        MatchProduct "Crazy Mouse|Silly Mouse"
        Option "InvertX" "yes"
    EndSection

This applies to the MatchProduct, MatchVendor and MatchDevicePath
entries. Currently there is no way to escape characters, so names or
patterns cannot contain '|'.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:32 +10:00
Dan Nicholson
a378e361a5 xfree86: Use "Ignore" option in InputClass to skip devices
Sometimes it is desirable to skip adding specific input devices to the
server. The "Ignore" option is used similarly to Monitor sections so
that matched devices will not be added. BadIDChoice is returned to the
config backend so that it will clean up all resources.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:18 +10:00
Dan Nicholson
8b1a685f00 xfree86: Handle config files ending without newline
The config parser expects to find a newline at the end of each line, so
files ending without one would confuse it. A newline is inserted at the
end of the buffer in these situations. Additionally, switching to the
next config file is moved to the higher level to allow parsing of the
last line of the previous file to complete before shifting the index and
resetting the line number.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Tested-by: Stephan Raue<stephan.raue@gmx.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:14 +10:00
Dan Nicholson
67bc278a51 xfree86: Make InputClass docs and comments match reality
Drivers and options specified in InputClass sections work on a "first
match wins" strategy. Let's be consistent when documenting it.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:10 +10:00
Tiago Vignatti
5e81078cf5 xfree86: vgaarb: remove useless debug
This is RAC's remnant. Any sane person would use a more wise method of
debugging instead.

X.Org Bug 26074 <http://bugs.freedesktop.org/show_bug.cgi?id=26074>

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-28 22:45:01 -08:00
Aaron Plattner
e38df06772 DRI2: Bump the dri2 module version to 1.2.0 to reflect recent API changes.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-28 14:58:04 -08:00
Jesse Barnes
711e26466a DRI2: handle drawable destruction properly at DRI2SwapComplete time
Simon reported an issue with kwin that turned out to be a general problem.  If
a drawable goes away before its swap completes, we'll try to free it up.
However, we free it improperly, which causes a server crash in
DRI2DestroyDrawable.  Fix that up by splitting the free code out and calling
it from DRI2SwapComplete.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-27 14:35:18 -08:00
Alan Coopersmith
0038290728 Avoid segfaults in XF86VidMode GammaRamp functions if randr_crtc is NULL
Fixes crash when xscreensaver tries to use GammaRamp calls to fade out
http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6915712

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-27 14:18:20 -08:00
Keith Packard
0b21a0416b Merge remote branch 'alanc/master' 2010-01-27 14:14:15 -08:00
Michael Vogt
1e6fd65d0b xfree86/modes: only call gamma_set if its non NULL
I ran accross a crash with xf86-video-nv-2.1.15 [1] and xserver
1.7.3.901. It looks like the problem is that gamma_set is called even
if that is NULL.

[1] https://launchpad.net/bugs/494627

Reviewed-By: Matthias Hopf <mhopf@suse.de>
Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-27 14:10:48 -08:00
Aaron Plattner
f311f2d047 DRI2: Allow multiple driver names.
Each driver type (e.g. DRI2DriverDRI or DRI2DriverVDPAU) can have a name in the
driverNames array in DRI2InfoRec.  DRI2Connect returns the name for the driver
specified by driverType.  Also print names of supported drivers in
DRI2ScreenInit.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-27 13:57:00 -08:00
Christian Zander
f57bc0ede8 x86emu: Respect the LEA 67h address size prefix.
Signed-off-by: Christian Zander <chzander@nvidia.com>
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Tested-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-27 13:48:37 -08:00
Alan Coopersmith
39ab474197 Move OS-specific VT key handler code from common to os-support
Adds new function xf86Activate to the OS-specific *VTsw*.c files
and calls it from xf86ProcessActionEvent

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Tested-by: Tiago Vignatti <tiago.vignatti@nokia.com> (GNU/Linux)
2010-01-25 11:10:00 -08:00
Aaron Zang
15ca3312c0 Solaris: Avoid switching to inactive VT's
Fix for OpenSolaris bug 6876992: "[vconsole] Ctrl+Alt+F12 switchs to blank
console screen with hotkeys property turned-off"
http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6876992

Xorg needs to do sanity test for the VT it is commanded to switch to.
If the VT is not opened by any process, discard the switching request.

The changes also contain the fix for some flaws discovered when
getting the new gdm to run.

Signed-off-by: Aaron Zang <Aaron.Zang@Sun.COM>
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
2010-01-25 11:09:28 -08:00
Peter Hutterer
6850ea8fb9 xfree86: replace True/False with TRUE/FALSE.
xf86Xinput.c relied on xkbsrv.h's definition of True/False which seems odd
at first and weird on second glance.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-25 09:33:08 +13:00
Keith Packard
44f9c3d16c Merge remote branch 'jbarnes/master' 2010-01-13 10:19:21 -08:00
Jesse Barnes
84956ca43b GLX/DRI2: add INTEL_swap_event support
This allows clients to easily check for swap completion status in their
main loop.

Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Adam Jackson <ajax@nwnk.net>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-01-11 16:17:15 -05:00
Jesse Barnes
04a54f69a8 DRI2: add support for new DRI2 protocol requests
Support the new DRI2 2.2 protocol requests: DRI2SwapBuffers, DRI2GetMSC,
DRI2WaitMSC, DRI2WaitSBC and DRI2SwapInterval.

These requests allow the server to support the SGI_video_sync,
SGI_swap_interval, and OML_sync_control GLX extensions if DDX support is
present.  The new DDX APIs are documented in dri2.h.

Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Adam Jackson <ajax@nwnk.net>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-01-11 16:16:35 -05:00
Simon Thum
032f97808c xfree86: init pointer feedback controls from options
With InputClass support, it makes more sense to cover all
aspects of acceleration in options. Previously, one could only set the
default on the command line.

Signed-off-by: Simon Thum <simon.thum@gmx.de>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-01-11 15:30:03 +10:00
Simon Thum
0722c287a4 xfree86: document pointer acceleration in xorg.conf.man
Signed-off-by: Simon Thum <simon.thum@gmx.de>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-01-11 15:26:46 +10:00
Simon Thum
1aca2d7575 whitespace fixes
Signed-off-by: Simon Thum <simon.thum@gmx.de>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-01-11 15:26:46 +10:00
Simon Thum
14039b5a79 doc: actually document SendDragEvents
Signed-off-by: Simon Thum <simon.thum@gmx.de>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-01-11 15:26:45 +10:00
Tiago Vignatti
74ab27f64a Revert "Make sys.c use unaligned access functions provided in compiler."
This reverts commit da923d0bc1.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-08 12:51:21 -08:00
Adam Jackson
326429badf modes: Remove the ClockRanges type
ba2d39dd54 introduced warnings:

xf86Mode.c: In function ‘xf86CheckModeForDriver’:
xf86Mode.c:986: warning: passing argument 1 of ‘modeInClockRange’ from incompatible pointer type
xf86Mode.c:253: note: expected ‘ClockRangePtr’ but argument is of type ‘ClockRangesPtr’
xf86Mode.c:1002: warning: passing argument 1 of ‘modeInClockRange’ from incompatible pointer type
xf86Mode.c:253: note: expected ‘ClockRangePtr’ but argument is of type ‘ClockRangesPtr’

Because I foolishly didn't notice that we had types with nearly
identical members named ClockRange and ClockRanges.  The latter
contained an extra 'strategy' member at the end, which claimed to be
needed by the vidmode extension.  Of course, this was a lie: the only time
we'd use it was in mode validation, for drivers using LOOKUP_CLKDIV2 with
non-programmable clocks.  The only driver using LOOKUP_CLKDIV2 is
rendition, which has a programmable clock.  The only driver using the
ClockRanges type was smi, which did not use it for its 'strategy' member,
so has been fixed to use ClockRange instead.

Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-05 13:30:22 -08:00
Julien Cristau
435f27667f config: add libudev input-hotplug backend
Add a backend using libudev for input hotplug, and disable the hal and
dbus backends if this one is enabled.

XKB configuration happens using xkb{rules,model,layout,variant,options}
properties (case-insensitive) on the device.  We fill in InputAttributes
to allow configuration through InputClass in Xorg.

Requires udev 148 for the input_id helper and ID_INPUT* properties.

Signed-off-by: Julien Cristau <jcristau@debian.org>
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-30 19:05:44 +00:00
Peter Hutterer
b8b12e41c4 xfree86: move sanity checks below option and input classes merges.
While the identifier is likely set before the input classes are merged, the
driver may not be. Hence don't check for a driver before we've completed
configuration for this device.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
2009-12-30 17:45:23 +00:00
Keith Packard
9fad8f06fb Merge remote branch 'dbn/inputclass' 2009-12-30 09:28:19 -08:00
Keith Packard
871bbe1d87 Merge remote branch 'dbn/xorg.conf.d' 2009-12-30 09:16:45 -08:00
Michel Dänzer
d42f396051 EXA: Allow optimized migration to be enabled with mixed pixmaps.
This was always the intention, I only recently realized it wasn't the case
yet...

Signed-off-by: Michel Dänzer <daenzer@vmware.com>
Acked-by: Maarten Maathuis <madman2003@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-28 22:01:42 -08:00
Dan Nicholson
42e8c9224e xfree86: Introduce InputClass configuration
Currently Xorg uses hal's fdi files to decide what configuration options
are applied to automatically added input devices. This is sub-optimal
since it requires users to use a new and different configuration store
than xorg.conf.

The InputClass section attempts to provide a system similar to hal where
configuration can be applied to all devices with certain attributes. For
now, devices can be matched to:

* A substring of the product name via a MatchProduct entry
* A substring of the vendir name via a MatchVendor entry
* A pathname pattern of the device file via a MatchDevicePath entry
* A device type via boolean entries for MatchIsKeyboard, MatchIsPointer,
  MatchIsJoystick, MatchIsTablet, MatchIsTouchpad and MatchIsTouchscreen

See the INPUTCLASS section in xorg.conf(5) for more details.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-23 05:54:40 -08:00
Dan Nicholson
0711598dd3 config: Introduce InputAttributes in NewInputDeviceRequest
In order to give NewInputDeviceRequest more information, a new
InputAttributes type is introduced. Currently, this collects the product
and vendor name, device path, and sets booleans for attributes such as
having keys and/or a pointer. Only the HAL backend fills in the
attributes, though.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:24:13 -08:00
Dan Nicholson
c6e8637e29 xfree86: Support non-Option boolean entries in configuration
Refactored code into the parser to allow the freeform boolean types used
in Option entries to be used in other configuration entries. This isn't
as powerful as allowing "No" to precede the option names, but it atleast
gives a common handling of "yes", "no", etc.

A type xf86TriState has been added to support an optional boolean. This
allows the boolean sense of the value to be kept while providing a means
to signal that it is unset.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:24:02 -08:00
Peter Hutterer
e1165632bd xfree86: Add Option AutoServerLayout for input devices.
Any input device with this option will be automatically added to whichever
server layout is selected at startup. This removes the need to reference a
device from the ServerLayout section. The two following configuration are
identical:

CONFIG 1:
    Section "ServerLayout"
            InputDevice "foo"
    EndSection

    Section "InputDevice"
            Identifier "foo"
            ...
    EndSection

CONFIG 2:
    Section "InputDevice"
            Identifier "foo"
            Option "AutoServerLayout" "on"
            ...
    EndSection

The selection of the server layout affects both explicitly specified
layouts and the implicit layout.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp at keithp.com>
2009-12-22 23:22:09 -08:00
Dan Nicholson
592b20c517 xfree86: Allow config directory to be specified on command line
Add a new command line parameter, -configdir, to specify the config
directory to be used. Rules are the same as -config for root vs. user
privileges.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:20:52 -08:00
Dan Nicholson
efa5269f23 xfree86: Use xorg.conf.d directory for multiple config files
Currently there is a single file, xorg.conf, for configuring the server.
This works fine most of the time, but it becomes a problem when packages
or system services need to adjust the configuration. Instead, allow
multiple configuration files to live in a directory. Typically this will
be /etc/X11/xorg.conf.d.

Files with a suffix of .conf will be read and added to the server
configuration after xorg.conf. The server won't fall back to using the
auto configuration unless there is no config file and there are no files
in the config directory.

Right now this uses a simpler search template than the config file
search path by not using the command line or environment variable
parameters. The matching code was refactored a bit to make this more
coherent. Any DDX wanting to read the config files will need to call
xf86initConfigFiles before opening/reading them. This is to allow
xf86openConfigFile without xf86openConfigDirFiles and vice-versa.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:20:45 -08:00
Dan Nicholson
f1e869aca1 xfree86: Unexport configuration file symbols
These functions should not be used outside of DDXs, so no need to put
them in the ABI.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:20:20 -08:00
Peter Hutterer
72286eae9f xfree86: remove LAYOUT_DEBUG section.
I don't think this one has been in use since 2003.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-22 21:28:40 -08:00
Peter Hutterer
38b5afb0b5 xfree86: remove some 'enable this later' and if 0 ifdefs
2003 called, they want their ifdefs back.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-22 21:27:54 -08:00
Keith Packard
7dc78db79e Merge remote branch 'whot/master' 2009-12-22 21:25:18 -08:00
Peter Hutterer
190610e0c6 xfree86: remove HistorySize from the xorg.conf man page.
This option isn't parsed by anything anymore.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
2009-12-22 15:34:02 +10:00
Peter Hutterer
094c6b9f97 xfree86: reword InputDevice man sections, deprecate CorePointer/CoreKeyboard
Reshuffle and reword - InputDevice sections are only necessary if
hotplugging is disabled. Put more emphasis on hotplugging and less on HAL
since we'll switch backends eventually.

CorePointer, CoreKeyboard, and AlwaysCore should be listed as deprecated
since they don't do what they used to since 1.4. These days, only
SendCoreEvents matters and it's enabled for any driver calling
xf86ProcessCommonOptions (== every driver).
It only controls the startup behavior too, so document this.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@sun.com>
2009-12-22 15:34:01 +10:00
Alan Coopersmith
895f40792a Add type name argument to CreateNewResourceType
Convert all calls of CreateNewResourceType to pass name argument

Breaks DIX ABI.

ABI versions bumped:

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-18 17:44:12 -08:00
Alan Coopersmith
a11c58fa0c Ensure all resource types created have names registered
Calls RegisterResourceName to record the type name for
use by X-Resource, XACE/SELinux/XTsol, and DTrace.

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
2009-12-18 16:51:45 -08:00
Alan Coopersmith
eb750f8b5e Check for failures from CreateNewResourceType
Make sure to check return value before setting bitmask flags.
For most calls, just fails to init the extension.   Since Xinput
already calls FatalError() on initialization failure, so does
failure to allocate Xinput's resource type.

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
2009-12-18 16:51:45 -08:00
Alan Coopersmith
48749cc21b Add platform compatibility defines for Sun Studio compilers
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-18 10:31:53 -08:00
Alan Coopersmith
b63912ed4c Convert checks for PC98 support from platform #ifdefs to configure flag
Default remains the same - on for most OS'es on i386 (except Solaris),
off for everyone else.   Can be manually toggled via --enable-pc98 or
--disable-pc98.

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-18 10:30:53 -08:00
Peter Hutterer
801bc8075a xfree86: update man page for special keys handling.
SpecialKeyHandling was removed from the kbd driver with version 1.4.0. Since
this is the only version that will build against server 1.7+ it's not
reasonable to mention it in the man page. Reword, point to XKB instead and
make clear that some key combinations _may_ not be available in any given
config.

Reported-by: Derek Fawcus
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@sun.com>
2009-12-18 10:53:26 +10:00
Peter Hutterer
753310837c xfree86: DontZap has been disabled for a while now, say so in the man page.
1.7 always shipped with DontZap disabled, it's just the default keymaps that
may not include the symbol to trigger it.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@sun.com>
2009-12-18 10:53:26 +10:00
Keith Packard
0cb638dc68 Merge remote branch 'alanc/master' 2009-12-16 21:58:44 -08:00
Ville Syrjälä
8127465f44 xf86xv: Fix off-by-one in viewport clipping
Most of the Xv Put/Get operations have an off by one error in the
viewport clipping.

Apparently PutImage was fixed at some point but the same code was
already copy-pasted all over the place, and so the other operations
still suffer from the bug.

Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com>
Reviewed-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-16 21:53:18 -08:00
Peter Hutterer
faca1bc582 xfree86: belately init RandR12 if xinerama fails. (#24627)
On Fri, Dec 11, 2009 at 10:19:01AM -0800, Keith Packard wrote:
> On Wed, 9 Dec 2009 11:55:14 +1000, Peter Hutterer <peter.hutterer@who-t.net> wrote:
> > On Tue, Dec 08, 2009 at 05:24:06PM -0800, Aaron Plattner wrote:
> > > On Tue, Dec 08, 2009 at 03:52:27PM -0800, Peter Hutterer wrote:
> > > > Xorg +xinerama crashes immediately due to whacky dependency between Xinerama
> > > > and RandR12. The latter doesn't initialize if Xinerama is enabled, but if
> > > > only one screen is found, Xinerama is disabled again and RandR12 tries to
> > > > access data it never initialized.
>
> I'd sure like to have RandR get enabled when xinerama doesn't; is there
> an easy way of making that happen here? Perhaps having the RandR12 code
> disable Xinerama when only one screen is found? Or some other kludge?

you know the dependency better than I do so any hints are apreciated.
afaict, the screenInfo.numScreens (the check used by Xinerama) isn't
necessarily initialized at this point so we can't use the same check.
The following seems to work though:

From 670b3ebdb7312a6433a8f093d0820785db2aea20 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon, 14 Dec 2009 11:00:58 +1000
Subject: [PATCH] xfree86: if only one screen was found, disable Xinerama (#24627)

Xorg +xinerama crashes immediately due to whacky dependency between Xinerama
and RandR12. The latter doesn't initialize if Xinerama is enabled, but if
only one screen is found, Xinerama is disabled again and RandR12 tries to
access data it never initialized.

Dependency chain is:
- ProcessCommandLine sets noPanoramiXExtension to FALSE
- xf86RandR12Init() is a noop
- PanoramiXExtensionInit sets noPanoramiXExtension to TRUE
- xf86RandR12CreateScreenResources tries to use the devPrivates key it never
  initialized.

This hack checks if there's only one screen at the time RandR12 is
initialized. If so, we expect Xinerama to fail anyhow so we disable it
ourselves and proceed as planned.

X.Org Bug 24627 <http://bugs.freedesktop.org/show_bug.cgi?id=24627>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-16 21:50:00 -08:00
Tiago Vignatti
5f898ddbaa xfree86: fix -quiet option behaviour
Previously it was trying to set the same value as the default one. Sigh.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Acked-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-16 21:49:31 -08:00
Tiago Vignatti
f57240a0a8 xfree86: spam output but with verbose level checked instead
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Acked-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-16 21:49:22 -08:00
Alan Coopersmith
fbdf493a3e Add freetype & type1 to the LoadModules ignore list
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Acked-by: Adam Jackson <ajax@redhat.com>
2009-12-16 17:11:52 -08:00
Alan Coopersmith
c9726bbe31 Update Sun license notices to current X.Org standard form
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-16 17:11:35 -08:00
Alan Coopersmith
dd2c83d03e Fix builds with --with-int10=stub
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Acked-by: Adam Jackson <ajax@redhat.com>
2009-12-15 10:23:16 -08:00
Peter Hutterer
9ac6a048ef xfree86: remove unused variable in configureDDMonitorSection.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
2009-12-11 11:37:37 +10:00
Keith Packard
98c8b75225 Merge remote branch 'whot/master' 2009-12-02 15:28:07 -08:00
Peter Hutterer
761ae22f88 xfree86: tell users to disable AutoAddDevices, not AllowEmptyInput.
Technically, disabling AEI is the right suggestion. AEI off forces the
server to init the built-in defaults for input devices (or pick the first
one from the config file). At the same time, hotplugging is still available
with AEI off.

Unfortunatly, in the vast majority of cases users want to simply disable
hotplugging or have a working server while the local HAL configuration is
broken or missing. Disabling AEI will lead to duplicate events, triple
keystrokes, etc. once the configuration works again.
It's not actually required to remove AEI once hotplugging works again,
though it will in many cases lead to a setup that appears broken.

Asking users to disable AutoAddDevices instead means those users disable
hotplugging, can then fix the HAL setup and they _must_ remove the config
line again to test if hotplugging works again. Which doesn't leave them with
a broken config once everything is working nice and dandy. Less bugreports,
everybody wins.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
Acked-by: Daniel Stone <daniel@fooishbar.org>
Acked-by: Rémi Cardona <remi@gentoo.org>
Acked-by: James Cloos <cloos@jhcloos.com>
2009-12-03 08:43:46 +10:00
Luc Verhaegen
0e084d8c71 Xv: Fix AdjustFrame when driver implements ReputImage.
Should probably also be applied to stabler xserver branches too.

Luc Verhaegen.

From a22bc20721bad506d8fa9772b1258568cbffe7d2 Mon Sep 17 00:00:00 2001
From: Luc Verhaegen <libv@skynet.be>
Date: Wed, 11 Nov 2009 15:52:39 +0100
Subject: [PATCH] Xv: Fix AdjustFrame when driver implements ReputImage.

Finally fixes fd.o #4653, filed more than 4 years ago.

Patch can be happily applied to all modular Xorg versions.

Signed-off-by: Luc Verhaegen <libv@skynet.be>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-02 08:41:03 -08:00