platform/upstream/xorg-server.git
11 years agoXfbdev: Wire up Amiga afb4 and afb8 support
Geert Uytterhoeven [Sun, 10 Mar 2013 20:04:19 +0000 (21:04 +0100)]
Xfbdev: Wire up Amiga afb4 and afb8 support

Add support for Amiga-style bitplanes, with 4 or 8 bits per pixel.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Keith Packard <keithp@keithp.com>
11 years agoXfbdev: Wire up Atari iplan2p4 and iplan2p8 support
Geert Uytterhoeven [Sun, 10 Mar 2013 16:17:26 +0000 (17:17 +0100)]
Xfbdev: Wire up Atari iplan2p4 and iplan2p8 support

Add support for Atari-style interleaved bitplanes, with 2 bytes interleave
and 4 or 8 bits per pixel.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXfbdev: Force shadowfb for frame buffers with non-packed pixels
Geert Uytterhoeven [Sun, 10 Mar 2013 16:17:26 +0000 (17:17 +0100)]
Xfbdev: Force shadowfb for frame buffers with non-packed pixels

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXfbdev: Reject unsupported frame buffer types
Geert Uytterhoeven [Sun, 10 Mar 2013 16:17:26 +0000 (17:17 +0100)]
Xfbdev: Reject unsupported frame buffer types

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoShadow: Add support for Amiga afb8
Geert Uytterhoeven [Sun, 10 Mar 2013 20:03:44 +0000 (21:03 +0100)]
Shadow: Add support for Amiga afb8

Add support for Amiga-style bitplanes, with 8 bits per pixel.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Keith Packard <keithp@keithp.com>
11 years agoShadow: Add support for Amiga afb4
Geert Uytterhoeven [Wed, 27 Mar 2013 08:37:02 +0000 (09:37 +0100)]
Shadow: Add support for Amiga afb4

Add support for Amiga-style bitplanes, with 4 bits per pixel.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Keith Packard <keithp@keithp.com>
11 years agoShadow: Add support for Atari iplan2p8
Geert Uytterhoeven [Sun, 10 Mar 2013 16:16:17 +0000 (17:16 +0100)]
Shadow: Add support for Atari iplan2p8

Add support for Atari-style interleaved bitplanes, with 2 bytes interleave
and 8 bits per pixel.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Keith Packard <keithp@keithp.com>
11 years agoShadow: Add support for Atari iplan2p4
Geert Uytterhoeven [Sun, 10 Mar 2013 20:01:02 +0000 (21:01 +0100)]
Shadow: Add support for Atari iplan2p4

Add support for Atari-style interleaved bitplanes, with 2 bytes interleave
and 4 bits per pixel.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Keith Packard <keithp@keithp.com>
11 years agoShadow: Add c2p core
Geert Uytterhoeven [Sun, 10 Mar 2013 16:15:05 +0000 (17:15 +0100)]
Shadow: Add c2p core

Add Chunky-to-Planar core functionality, to be used by the Atari and Amiga
(interleaved) bitplanes code.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Keith Packard <keithp@keithp.com>
11 years agoXfbdev: Treat 1 bpp pseudocolor as monochrome
Geert Uytterhoeven [Tue, 12 Mar 2013 17:10:40 +0000 (18:10 +0100)]
Xfbdev: Treat 1 bpp pseudocolor as monochrome

miCreateDefColormap() only preallocates black and white pixels if
depth > 1.
Hence override the visual, so fbdevCreateColormap() takes care of it.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXfbdev: Add support for monochrome visuals
Geert Uytterhoeven [Tue, 12 Mar 2013 13:16:10 +0000 (14:16 +0100)]
Xfbdev: Add support for monochrome visuals

Monochrome supports StaticGray, with hardcoded black and white pixels.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXfbdev: Handle unset fix.line_length
Geert Uytterhoeven [Tue, 12 Mar 2013 13:19:25 +0000 (14:19 +0100)]
Xfbdev: Handle unset fix.line_length

Older frame buffer devices may not fill in fix.line_length, in which
case it must be calculated by the application.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
11 years agoXfbdev: Make char *fbdevDevicePath const
Geert Uytterhoeven [Fri, 22 Feb 2013 12:21:28 +0000 (13:21 +0100)]
Xfbdev: Make char *fbdevDevicePath const

This fixes:

hw/kdrive/fbdev/fbdev.c: In function 'fbdevInitialize':
hw/kdrive/fbdev/fbdev.c:41:25: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoKDrive: Bail out if screen initialization failed
Geert Uytterhoeven [Tue, 12 Mar 2013 14:20:00 +0000 (15:20 +0100)]
KDrive: Bail out if screen initialization failed

Else we may get a segmentation fault later.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agotest/input: Fix double-aligned test in dix_valuator_alloc() on m68k
Geert Uytterhoeven [Sat, 23 Feb 2013 19:09:22 +0000 (20:09 +0100)]
test/input: Fix double-aligned test in dix_valuator_alloc() on m68k

On m68k, doubles are not 64-bit aligned, just like on i386 and sh.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
11 years agomiext/shadow/shpacked.c: Remove unused PickBit() define
Geert Uytterhoeven [Fri, 22 Feb 2013 20:10:07 +0000 (21:10 +0100)]
miext/shadow/shpacked.c: Remove unused PickBit() define

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoxf86: fix flush input to work with Linux evdev devices.
Dave Airlie [Wed, 10 Apr 2013 06:09:01 +0000 (16:09 +1000)]
xf86: fix flush input to work with Linux evdev devices.

So when we VT switch back and attempt to flush the input devices,
we don't succeed because evdev won't return part of an event,
since we were only asking for 4 bytes, we'd only get -EINVAL back.

This could later cause events to be flushed that we shouldn't have
gotten.

This is a fix for CVE-2013-1940.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoDefine prototypes for hw/xfree86/modes/xf86Modes.c only in xf86Modes.h.
Jeremy White [Thu, 21 Mar 2013 15:58:57 +0000 (10:58 -0500)]
Define prototypes for hw/xfree86/modes/xf86Modes.c only in xf86Modes.h.

This removes a large number of redundant declaration warnings.

Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Reviewed-by: Robert Morell <rmorell@nvidia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Be verbose if waiting on opening the drm device
Bryce Harrington [Tue, 19 Mar 2013 19:12:46 +0000 (12:12 -0700)]
xfree86: Be verbose if waiting on opening the drm device

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Fix race condition failure opening drm.
Bryce Harrington [Tue, 19 Mar 2013 19:12:45 +0000 (12:12 -0700)]
xfree86: Fix race condition failure opening drm.

If other processes have had drm open previously, xserver may attempt to
open the device too early and fail, with xserver error exit "Cannot
run in framebuffer mode" or Xorg.0.log messages about "setversion 1.4
failed".

In this situation, we're receiving back -EACCES from libdrm.  To address
this we need to re-set ourselves as the drm master, and keep trying to
set the interface until it works (or until we give up).

See https://bugs.launchpad.net/ubuntu/+source/libdrm/+bug/982889

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Keep trying to set interface on drm for 2 seconds.
Bryce Harrington [Tue, 19 Mar 2013 19:12:44 +0000 (12:12 -0700)]
xfree86: Keep trying to set interface on drm for 2 seconds.

And if we've had to delay booting due to not being able to set the
interface, fess up.

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Provide more details on failure
Bryce Harrington [Tue, 19 Mar 2013 19:12:43 +0000 (12:12 -0700)]
xfree86: Provide more details on failure

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Track error code and add label for error handling.
Bryce Harrington [Tue, 19 Mar 2013 19:12:42 +0000 (12:12 -0700)]
xfree86: Track error code and add label for error handling.

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: (Cleanup) Close fd if drm interface 1.4 could not be set.
Bryce Harrington [Tue, 19 Mar 2013 19:12:41 +0000 (12:12 -0700)]
xfree86: (Cleanup) Close fd if drm interface 1.4 could not be set.

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agokdrive/fbdev: revive randr new screen size logic
Geert Uytterhoeven [Mon, 18 Mar 2013 20:38:10 +0000 (21:38 +0100)]
kdrive/fbdev: revive randr new screen size logic

hw/kdrive/fbdev/fbdev.c: In function 'fbdevRandRSetConfig':
hw/kdrive/fbdev/fbdev.c:470:19: warning: variable 'newheight' set but not used [-Wunused-but-set-variable]
hw/kdrive/fbdev/fbdev.c:470:9: warning: variable 'newwidth' set but not used [-Wunused-but-set-variable]

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoRevert "kdrive: fix "set but not used" warnings"
Peter Hutterer [Mon, 25 Mar 2013 04:51:58 +0000 (14:51 +1000)]
Revert "kdrive: fix "set but not used" warnings"

Partial revert of commit 4149ee8ec0193acbf3812c7ee2627b93b9a89997, better
fix coming up.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxserver: add monitor Option "ZoomModes" [v2]
vdb@picaros.org [Thu, 7 Mar 2013 15:07:31 +0000 (16:07 +0100)]
xserver: add monitor Option "ZoomModes" [v2]

Section "Monitor"
  Identifier "a21inch"
  Option "PreferredMode" "1600x1200"
  Option "ZoomModes" "1600x1200 1280x1024 1280x1024 640x480"
EndSection

The option's effect is to search for and mark once each named mode in
the output modes list.  So the specification order is free and the zoom
modes sequence follows the order of the output modes list.  All marked
modes are available via the Ctrl+Alt+Keypad-{Plus,Minus} key
combination.

See also http://bugs.freedesktop.org/show_bug.cgi?id=17954.

This option has its use for combined monitor and television setups.
It allows for easy switching between 60 Hz and 50 Hz modes even when a
monitor refuses to display the input signal.

(Includes a few minor changes suggested by Aaron for v2)

Signed-off-by: Servaas Vandenberghe <vdb@picaros.org>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoXi: add a comment to make a condition a bit clearer
Peter Hutterer [Thu, 28 Feb 2013 00:43:05 +0000 (10:43 +1000)]
Xi: add a comment to make a condition a bit clearer

The commit message to 676447190190d8546165e21be242cf16dd69f5ae explains it,
but that doesn't stop the WTF moment when reading the code.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: update coords for touch events in PlayReleasedEvents
Peter Hutterer [Mon, 25 Feb 2013 05:21:32 +0000 (15:21 +1000)]
dix: update coords for touch events in PlayReleasedEvents

Note: this is only hit for #ifdef PANORAMIX

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXi: compress two if statements with the same body
Peter Hutterer [Thu, 28 Feb 2013 00:30:15 +0000 (10:30 +1000)]
Xi: compress two if statements with the same body

We do the same thing here, compress them into one body.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: fix a comment
Peter Hutterer [Mon, 25 Feb 2013 01:13:52 +0000 (11:13 +1000)]
dix: fix a comment

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXi: use a temp variable for the new listener
Peter Hutterer [Thu, 28 Feb 2013 22:26:06 +0000 (08:26 +1000)]
Xi: use a temp variable for the new listener

Instead of accessing ti->listener[0] all the time.

No functional changes.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXi: return !Success from DeliverTouchEmulatedEvent if we didn't deliver
Peter Hutterer [Thu, 28 Feb 2013 22:43:58 +0000 (08:43 +1000)]
Xi: return !Success from DeliverTouchEmulatedEvent if we didn't deliver

All callers currently ignore the new value, so this patch has no effect.
Inverse call graph:

DeliverTouchEmulatedEvent
        DeliverEmulatedMotionEvent              Ignores value
        DeliverTouchBeginEvent
                DeliverTouchEvent
                        DeliverTouchEvents      Ignores value
        DeliverTouchEndEvent
                DeliverTouchEvent
                        DeliverTouchEvents      Ignores value

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoglx: fix uninitialized var in __glXDRIscreenProbe
Piotr Dziwinski [Sat, 23 Feb 2013 12:14:45 +0000 (13:14 +0100)]
glx: fix uninitialized var in __glXDRIscreenProbe

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

Signed-off-by: Piotr Dziwinski <piotrdz@gmail.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge remote-tracking branch 'whot/for-keith'
Keith Packard [Mon, 18 Mar 2013 18:26:24 +0000 (11:26 -0700)]
Merge remote-tracking branch 'whot/for-keith'

11 years agoGLX/DRI2: Do not expose INTEL_swap_event without swap control
Zack Rusin [Thu, 14 Feb 2013 23:06:57 +0000 (15:06 -0800)]
GLX/DRI2: Do not expose INTEL_swap_event without swap control

Swap events depent on the implementation of ScheduleSwap. By
unconditionally enabling GLX_INTEL_swap_event we're breaking
the system with drivers that don't support it because the apps
are forever stuck waiting for an event that will never be
delivered. So lets enable the extension only if the hooks it
depends on are actually there.

Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge remote-tracking branch 'whot/next'
Keith Packard [Mon, 18 Mar 2013 18:18:58 +0000 (11:18 -0700)]
Merge remote-tracking branch 'whot/next'

11 years agoFull support of sRGB capable fbconfigs.
Tomasz Lis [Mon, 11 Mar 2013 09:21:28 +0000 (10:21 +0100)]
Full support of sRGB capable fbconfigs.

Changes to correctly initialize the sRGB capability attribute and
transfer it between XServer and the client. Modifications include
extension string, transferring visual config attribs and fbconfig
attribs. Also, attribute is initialized in the modules which do not
really use it (xquartz and xwin).
This version advertises both ARB and EXT strings, and initializes
the capability to default value of FALSE. It has corrected required
GLX version and does not influence swrast. The sRGB capable attribute
is attached only to those configs which do have this capability.
Both ARB and EXT versions share the same GLX extension enabling bit.

Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoBump release to 1.14.99.0
Keith Packard [Mon, 18 Mar 2013 17:01:20 +0000 (10:01 -0700)]
Bump release to 1.14.99.0

Get us off the release number so that we don't conflict with the
stable branch.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agolist.h: Make xorg_list_init inline
Robert Morell [Tue, 12 Mar 2013 16:40:16 +0000 (09:40 -0700)]
list.h: Make xorg_list_init inline

Otherwise this file is emitted in every unit that includes it.

Signed-off-by: Robert Morell <rmorell@nvidia.com>
Reviewed-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoconfigure.ac: Require inputproto 2.3
Robert Morell [Tue, 12 Mar 2013 16:37:43 +0000 (09:37 -0700)]
configure.ac: Require inputproto 2.3

This picks up support for Xi pointer barriers in the protocol.

Signed-off-by: Robert Morell <rmorell@nvidia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxfixes: ifdef PanoramiXFixes* (#62015)
Peter Hutterer [Sat, 9 Mar 2013 07:12:53 +0000 (17:12 +1000)]
xfixes: ifdef PanoramiXFixes* (#62015)

Fixes build failure with --disable-xinerama introduced by
482e0cb cursor: Move pointer barrier code over to XI

Reason is new include order: sdksyms.sh includes xfixes.h, which previously
did not include xfixesint.h.

As of 482e0cb xfixes.h includes xibarriers.h which includes xfixesint.h

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Daniel Martin <consume.noise@gmail.com>
11 years agofb: Rename wfbDestroyGlyphCache
Aaron Plattner [Wed, 6 Mar 2013 17:40:28 +0000 (09:40 -0800)]
fb: Rename wfbDestroyGlyphCache

Renaming this function was missed in commit
9cbcb5bd6a5360a128d15b77a02d8d3351f74366, so both libfb.so and libwfb.so define
functions named fbDestroyGlyphCache.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Søren Sandmann <ssp@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoVersion bumped to 1.14 xorg-server-1.14.0
Keith Packard [Wed, 6 Mar 2013 06:31:17 +0000 (22:31 -0800)]
Version bumped to 1.14

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxkb: Fixes to LatchMods/LatchGroup
Andreas Wettstein [Sun, 3 Mar 2013 19:25:44 +0000 (20:25 +0100)]
xkb: Fixes to LatchMods/LatchGroup

The main problem this patch addresses is that if a latch is put on
multi-level key with a Latch/Lock/Set, it is possible that after all
keys are released, still base modifiers are set, which typically will
make the keyboard unusable.  To see how it happens (without the patch),
assume that key AltGr sets Mod5 when pressed by itself, and latches Mod3
when pressed together with Shift.  Now press Shift, then AltGr and
release both keys in reverse order.  Mod3 is now latched, and the
LatchMods filter remains active as the second filter.  Now press AltGr;
Mod5 base modifier gets set, and the SetMods filter will become active
as the first filter.  Release AltGr: First, the SetMods filter will set
clearMods to Mod5, then the LatchMods filter will overwrite clearMods
with Mod3.  Result: the Mod5 base modifier will remain set.  This
example becomes practically relevant for the revised German standard
layout (DIN 2137-1:2012-06).

Other changes implement the latch behaviour more accurately according to
the specification.  For example, releasing a modifier latching key can
at the same time clear a locked modifier, promote another modifier that
is latched to locked, and latch a third modifier.  Overall, what the
code does should be straightforward to compare what the XKB protocol
specification demands, see the table in section 6.3.

Finally, releasing a key no longer cancels a latch that has not become
pending yet.  In my opinion, the specification is not clear; it speaks
of "operating" a key, which the patch effectivly interprets as "press"
rather than "press or release".  From my experience, using the latter
interpretation makes latches on higher levels practically unusable.  In
the example given above, one would have to release AltGr always before
Shift to get the Mod3-Latch.  The practical relevance of latches on
higher levels is once more given by the revised German standard layout.

Signed-off-by: Andreas Wettstein <wettstein509@solnet.ch>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxephyr: fix "set but not used warnings"
Peter Hutterer [Fri, 15 Feb 2013 01:19:09 +0000 (11:19 +1000)]
xephyr: fix "set but not used warnings"

ephyrvideo.c: In function 'ephyrPutVideo':
ephyrvideo.c:1009:42: warning: variable 'drw_h' set but not used
ephyrvideo.c:1009:31: warning: variable 'drw_w' set but not used
ephyrvideo.c:1009:20: warning: variable 'drw_y' set but not used
ephyrvideo.c:1009:9: warning: variable 'drw_x' set but not used
ephyrvideo.c: In function 'ephyrGetVideo':
ephyrvideo.c:1058:42: warning: variable 'drw_h' set but not used
ephyrvideo.c:1058:31: warning: variable 'drw_w' set but not used
ephyrvideo.c:1058:20: warning: variable 'drw_y' set but not used
ephyrvideo.c:1058:9: warning: variable 'drw_x' set but not used
ephyrvideo.c: In function 'ephyrPutStill':
ephyrvideo.c:1107:42: warning: variable 'drw_h' set but not used
ephyrvideo.c:1107:31: warning: variable 'drw_w' set but not used
ephyrvideo.c:1107:20: warning: variable 'drw_y' set but not used
ephyrvideo.c:1107:9: warning: variable 'drw_x' set but not used
ephyrvideo.c: In function 'ephyrGetStill':
ephyrvideo.c:1156:42: warning: variable 'drw_h' set but not used
ephyrvideo.c:1156:31: warning: variable 'drw_w' set but not used
ephyrvideo.c:1156:20: warning: variable 'drw_y' set but not used
ephyrvideo.c:1156:9: warning: variable 'drw_x' set but not used

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Robert Morell <rmorell@nvidia.com>
11 years agokdrive: fix "set but not used" warnings
Peter Hutterer [Fri, 15 Feb 2013 01:19:08 +0000 (11:19 +1000)]
kdrive: fix "set but not used" warnings

kinput.c: In function 'KdEnqueueKeyboardEvent':
kinput.c:1845:16: warning: variable 'ctrl' set but not used
kinput.c:1844:17: warning: variable 'keyc' set but not used

kinput.c: In function 'KdEnqueuePointerEvent':
kinput.c:1887:12: warning: variable 'ms' set but not used

kxv.c: In function 'KdXVDisable':
kxv.c:1181:19: warning: variable 'ScreenPriv' set but not used

mouse.c: In function 'ps2SkipInit':
mouse.c:444:9: warning: variable 'skipping' set but not used
mouse.c: In function 'ps2Init':
mouse.c:473:10: warning: variable 'waiting' set but not used
mouse.c:472:9: warning: variable 'skipping' set but not used

fbdev.c: In function 'fbdevRandRSetConfig':
fbdev.c:468:19: warning: variable 'newheight' set but not used
fbdev.c:468:9: warning: variable 'newwidth' set but not used

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Robert Morell <rmorell@nvidia.com>
11 years agoos: document pnprintf as sigsafe snprintf
Peter Hutterer [Mon, 18 Feb 2013 04:57:58 +0000 (14:57 +1000)]
os: document pnprintf as sigsafe snprintf

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agodix: only show the cursor if a window defines one (#58398)
Peter Hutterer [Tue, 18 Dec 2012 04:12:40 +0000 (14:12 +1000)]
dix: only show the cursor if a window defines one (#58398)

e02f864fdf "Suppress cursor display until the first XDefineCursor() request"
disabled cursor display a priori unless -retro is given.

On a plain server, caling XFixesHideCursor() and XFixesShowCursor() would
show the default root cursor, despite no client actually defining a cursor.

Change the logic, disable CursorVisible by default and only enable it from
the window's CWCursor logic. If no window ever defines a cursor, said cursor
stays invisible.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Bastien Nocera <hadess@hadess.net>
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
11 years agoDPMS: include GPU screens in DPMS code
Aaron Plattner [Tue, 5 Mar 2013 21:04:46 +0000 (13:04 -0800)]
DPMS: include GPU screens in DPMS code

Otherwise, displays driven by GPU screens remain on all the time.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoXi: force dtime to 0 on the first BarrierHit
Peter Hutterer [Tue, 5 Mar 2013 00:14:29 +0000 (10:14 +1000)]
Xi: force dtime to 0 on the first BarrierHit

dtime to the previous event is 0 on the first BarrierHit event.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge commit '6ea59dc2d8887102bfd8d7c838d2e7ab17645aec'
Keith Packard [Tue, 5 Mar 2013 05:09:59 +0000 (21:09 -0800)]
Merge commit '6ea59dc2d8887102bfd8d7c838d2e7ab17645aec'

11 years agoxibarriers: Remove accidental use of the comma operator
Jasper St. Pierre [Sun, 3 Mar 2013 09:50:55 +0000 (04:50 -0500)]
xibarriers: Remove accidental use of the comma operator

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoephyr: Fix crash on 24bpp host framebuffer
Daniel Martin [Thu, 20 Dec 2012 12:50:17 +0000 (13:50 +0100)]
ephyr: Fix crash on 24bpp host framebuffer

Use bytes_per_line and bits_per_pixel from the created XImage to fix
    https://bugzilla.redhat.com/show_bug.cgi?id=518960

Signed-off-by: Daniel Martin <consume.noise@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agorandr: cleanup provider properly
Dave Airlie [Wed, 9 Jan 2013 02:58:28 +0000 (12:58 +1000)]
randr: cleanup provider properly

So in the cold plug server shutdown case, we reap the resources
before we call CloseScreen handlers, so the config->randr_provider
is a dangling pointer when the xf86CrtcCloseScreen handler is called,

however in the hot screen unplug case, we can't rely on automatically
reaped resources, so we need to clean up the provider in the xf86CrtcCloseScreen
case.

This patch provides a cleanup callback from the randr provider removal
into the DDX so it can cleanup properly, this then gets called by the automatic
code for cold plug, or if hot unplug it gets called explicitly.

Fixes a number of random server crashes on shutdown
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58174
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=891140

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
11 years agoxf86: actually set the compat output in the failure case
Dave Airlie [Wed, 9 Jan 2013 02:53:14 +0000 (12:53 +1000)]
xf86: actually set the compat output in the failure case

The previous fix for the previous fix, didn't fully work,

If we don't set compat_output we end up doing derferences
of arrays with -1, leading to valgrind warnings.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
11 years agoxfree86/hotplug: cleanup properly if the screen fails to initialise
Dave Airlie [Wed, 9 Jan 2013 02:51:45 +0000 (12:51 +1000)]
xfree86/hotplug: cleanup properly if the screen fails to initialise

Due to another bug, the modesetting/udl driver would fail to init properly
on hotplug, when it did the code didn't clean up properly, and on removing
the device the server could crash.

Found in F18 testing.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
11 years agoos: use libunwind to generate backtraces
Marcin Slusarz [Wed, 20 Feb 2013 23:02:44 +0000 (09:02 +1000)]
os: use libunwind to generate backtraces

Libunwind generates backtraces much more reliably than glibc's "backtrace".

Before:
0: /opt/xserver/bin/X (0x400000+0x18ce36) [0x58ce36]
1: /opt/xserver/bin/X (xorg_backtrace+0x9) [0x58d119]
2: /opt/xserver/bin/X (0x400000+0x190d69) [0x590d69]
3: /lib64/libpthread.so.0 (0x7fb904268000+0x10a90) [0x7fb904278a90]
4: /lib64/libc.so.6 (ioctl+0x7) [0x7fb902fbf987]
5: /usr/lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fb90405ffa8]
6: /usr/lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fb90406235b]
7: /usr/lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0x89) [0x7fb902009719]
8: /opt/xserver/lib/xorg/modules/drivers/nouveau_drv.so (0x7fb90220e000+0x76f3) [0x7fb9022156f3]
9: /opt/xserver/lib/xorg/modules/libexa.so (0x7fb9019c7000+0xbae0) [0x7fb9019d2ae0]
10: /opt/xserver/bin/X (0x400000+0x17d2b3) [0x57d2b3]
11: /opt/xserver/bin/X (0x400000+0xc9930) [0x4c9930]
12: /opt/xserver/bin/X (0x400000+0x3a81a) [0x43a81a]
13: /opt/xserver/bin/X (0x400000+0x3d6a1) [0x43d6a1]
14: /opt/xserver/bin/X (0x400000+0x2c2ca) [0x42c2ca]
15: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7fb902f019b5]
16: /opt/xserver/bin/X (0x400000+0x2c60d) [0x42c60d]
17: ?? [0x0]

After:
0: /opt/xserver/bin/X (OsSigHandler+0x39) [0x590d69]
1: /lib64/libpthread.so.0 (__restore_rt+0x0) [0x7fb904278a8f]
2: /lib64/libc.so.6 (ioctl+0x7) [0x7fb902fbf987]
3: /usr/lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fb90405ffa8]
4: /usr/lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fb90406235b]
5: /usr/lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0x89) [0x7fb902009719]
6: /opt/xserver/lib/xorg/modules/drivers/nouveau_drv.so (nouveau_exa_download_from_screen+0x1a3) [0x7fb9022156f3]
7: /opt/xserver/lib/xorg/modules/libexa.so (exaGetImage+0x1f0) [0x7fb9019d2ae0]
8: /opt/xserver/bin/X (miSpriteGetImage+0x173) [0x57d2b3]
9: /opt/xserver/bin/X (compGetImage+0xb0) [0x4c9930]
10: /opt/xserver/bin/X (ProcGetImage+0x55a) [0x43a81a]
11: /opt/xserver/bin/X (Dispatch+0x341) [0x43d6a1]
12: /opt/xserver/bin/X (main+0x3ba) [0x42c2ca]
13: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7fb902f019b5]
14: /opt/xserver/bin/X (_start+0x29) [0x42c60d]
15: ? (?+0x29) [0x29]

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Knut Petersen <knut.petersen@t-online.de>
11 years agoxkb: Set nIndicators in XkbGetIndicatorMap
Peter Harris [Tue, 19 Feb 2013 21:08:52 +0000 (16:08 -0500)]
xkb: Set nIndicators in XkbGetIndicatorMap

Xlib doesn't use this value (it computes it from the reply length
instead) which is why nobody has noticed yet. But the spec
http://www.x.org/releases/X11R7.7/doc/kbproto/xkbproto.html
says that it should be set.

Signed-off-by: Peter Harris <pharris@opentext.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoephyr: Add -resizeable option
Daniel Martin [Tue, 11 Dec 2012 16:23:55 +0000 (17:23 +0100)]
ephyr: Add -resizeable option

With this option passed, ephyr windows can be resized like normal
windows on the fly, without the need of an explicit parent window.

Signed-off-by: Daniel Martin <daniel.martin@secunet.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agodix: FreeAllAtoms() on reset
Peter Hutterer [Mon, 27 Feb 2012 06:43:10 +0000 (16:43 +1000)]
dix: FreeAllAtoms() on reset

==5712== 6 bytes in 1 blocks are still reachable in loss record 17 of 585
==5712==    at 0x4A074CD: malloc (vg_replace_malloc.c:236)
==5712==    by 0x3D1DE885B1: strndup (strndup.c:46)
==5712==    by 0x41CB71: MakeAtom (atom.c:121)
==5712==    by 0x55AE3E: XIGetKnownProperty (xiproperty.c:401)
==5712==    by 0x4251C9: AddInputDevice (devices.c:312)
==5712==    by 0x42AC0C: AllocDevicePair (devices.c:2657)
==5712==    by 0x425E6E: InitCoreDevices (devices.c:677)
==5712==    by 0x5ACA05: main (main.c:257)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
11 years agoMerge branch 'master' of git+ssh://people.freedesktop.org/~alanc/xserver into next
Peter Hutterer [Fri, 15 Feb 2013 01:58:52 +0000 (11:58 +1000)]
Merge branch 'master' of git+ssh://people.freedesktop.org/~alanc/xserver into next

11 years agoxfree86: remove redundant declaration of inputInfo
Peter Hutterer [Thu, 14 Feb 2013 00:21:47 +0000 (10:21 +1000)]
xfree86: remove redundant declaration of inputInfo

xf86Cursor.c:19:18: warning: redundant redeclaration of 'inputInfo'
[-Wredundant-decls]
In file included from xf86Cursor.c:18:0:
../../../include/inputstr.h:614:57: note: previous declaration of
'inputInfo' was here

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agoxkb: remove unused variable 'names'
Peter Hutterer [Thu, 14 Feb 2013 00:15:33 +0000 (10:15 +1000)]
xkb: remove unused variable 'names'

xkb.c: In function '_XkbSetNamesCheck':
xkb.c:3987:18: warning: variable 'names' set but not used
[-Wunused-but-set-variable]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agoXext: rename two shadowing variables
Peter Hutterer [Thu, 14 Feb 2013 00:13:53 +0000 (10:13 +1000)]
Xext: rename two shadowing variables

panoramiX.c: In function 'PanoramiXCreateConnectionBlock':
panoramiX.c:599:10: warning: declaration of 'disableBackingStore' shadows a
global declaration [-Wshadow]
In file included from ../include/windowstr.h:60:0,
                 from panoramiX.c:47:
../include/opaque.h:56:52: warning: shadowed declaration is here [-Wshadow]

panoramiX.c: In function 'PanoramiXConsolidate':
panoramiX.c:834:19: warning: declaration of 'pScreen' shadows a previous
local [-Wshadow]
panoramiX.c:813:15: warning: shadowed declaration is here [-Wshadow]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agoXext: renaming shadowing variable
Peter Hutterer [Thu, 14 Feb 2013 00:09:53 +0000 (10:09 +1000)]
Xext: renaming shadowing variable

xvdisp.c: In function 'ProcXvStopVideo':
xvdisp.c:712:11: warning: declaration of 'rc' shadows a previous local
[-Wshadow]
xvdisp.c:705:17: warning: shadowed declaration is here [-Wshadow]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agofb: drop two unneeded shadowing variables
Peter Hutterer [Thu, 14 Feb 2013 00:06:55 +0000 (10:06 +1000)]
fb: drop two unneeded shadowing variables

fbpict.c: In function 'fbGlyphs':
fbpict.c:188:6: warning: declaration of 'x' shadows a previous local
[-Wshadow]
fbpict.c:111:9: warning: shadowed declaration is here [-Wshadow]
fbpict.c:188:9: warning: declaration of 'y' shadows a previous local
[-Wshadow]
fbpict.c:111:12: warning: shadowed declaration is here [-Wshadow]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Soren Sandmann <ssp@redhat.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agoxfree86: drop unused prevSIGIO
Peter Hutterer [Thu, 14 Feb 2013 00:04:06 +0000 (10:04 +1000)]
xfree86: drop unused prevSIGIO

Unused as of 5d309af2ed93e91c7d72f548a11052051efbb40f

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agorandr: fix "set but unused" warnings
Peter Hutterer [Thu, 14 Feb 2013 00:02:02 +0000 (10:02 +1000)]
randr: fix "set but unused" warnings

rrcrtc.c: In function 'RRCrtcDetachScanoutPixmap':
rrcrtc.c:366:9: warning: variable 'ret' set but not used
[-Wunused-but-set-variable]
rrcrtc.c: In function 'rrCheckPixmapBounding':
rrcrtc.c:505:13: warning: variable 'ret' set but not used
[-Wunused-but-set-variable]
rrcrtc.c:445:9: warning: unused variable 'i' [-Wunused-variable]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agoMerge remote-tracking branch 'jeremyhu/master'
Keith Packard [Thu, 14 Feb 2013 19:05:48 +0000 (11:05 -0800)]
Merge remote-tracking branch 'jeremyhu/master'

11 years agoos: fix pnprintf OOB buffer read for unterminated length modifiers
Peter Hutterer [Thu, 14 Feb 2013 06:31:13 +0000 (16:31 +1000)]
os: fix pnprintf OOB buffer read for unterminated length modifiers

Format strings with length modifiers but missing format specifier like "%0"
will read one byte past the array size.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoXORG_TLS: Pick the first option that works (ie: prefer __thread)
Jeremy Huddleston Sequoia [Sun, 10 Feb 2013 04:53:02 +0000 (20:53 -0800)]
XORG_TLS: Pick the first option that works (ie: prefer __thread)

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
11 years agoos: Ensure <dix-config.h> is included in strndup.c
Jeremy Huddleston Sequoia [Sun, 10 Feb 2013 04:40:10 +0000 (20:40 -0800)]
os: Ensure <dix-config.h> is included in strndup.c

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
11 years agoXQuartz: Ensure <dix-config.h> is included in capabilities.c
Jeremy Huddleston Sequoia [Sun, 10 Feb 2013 04:34:33 +0000 (20:34 -0800)]
XQuartz: Ensure <dix-config.h> is included in capabilities.c

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
11 years agoUpdate to version 1.3.99.902 (1.14 RC2) xorg-server-1.13.99.902
Keith Packard [Thu, 14 Feb 2013 05:39:37 +0000 (21:39 -0800)]
Update to version 1.3.99.902 (1.14 RC2)

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agorandr: unref the provider shared pixmap the appropriate number of times
Aaron Plattner [Thu, 24 Jan 2013 00:58:47 +0000 (16:58 -0800)]
randr: unref the provider shared pixmap the appropriate number of times

When an RandR shared pixmap is created in rrCreateSharedPixmap, it has a refcnt
of 1.  Then, PixmapShareToSlave bumps the refcnt to 2.  However, there's no
corresponding PixmapUnshareFromSlave where the refcnt can be decreased again,
and there's no convenient common place where the refcnt can be decremented when
the slave pixmap is destroyed.

Fix this by just unreffing the pixmap twice in RRCrtcDetachScanoutPixmap.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxf86: use nt_list_for_each_entry_safe to walk InputHandlers in xf86Wakeup
Aaron Plattner [Mon, 11 Feb 2013 22:31:56 +0000 (14:31 -0800)]
xf86: use nt_list_for_each_entry_safe to walk InputHandlers in xf86Wakeup

This is necessary when the input handler deletes itself from the
list. Bug found by Maarten Lankhorst, this patch uses the list macros
instead of open-coding the fix.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxfree86: Man page shouldn't say Device is mandatory anymore
Bryce Harrington [Fri, 8 Feb 2013 23:56:02 +0000 (15:56 -0800)]
xfree86: Man page shouldn't say Device is mandatory anymore

man xorg.conf states that the 'Device' identifier is required in the
'Screen' section, yet current xserver defaults properly and boots up
fine without it.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=20742
Signed-off-by: Bryce Harrington <bryce@canonical.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Use fbdev/vesa driver on Oaktrail, Medfield, CDV rather than -intel
Bryce Harrington [Fri, 8 Feb 2013 23:56:01 +0000 (15:56 -0800)]
xfree86: Use fbdev/vesa driver on Oaktrail, Medfield, CDV rather than -intel

Instead of defaulting to -intel for Oaktrail, Medfield, and CDV chips,
default to -fbdev.  For Poulsbo (only), attempt to use -psb if it's
installed, and fallback to fbdev otherwise.  All other Intel chips
should use -intel.

This fixed an issue where -intel would load on these chips and cause a
boot failure.  Newer -intel drivers avoid the boot hang, but it's still
the wrong driver to load, so why take chances.

The patch was originally created by Stefan Dirsch for OpenSUSE.  We have
included it in our stable release (Ubuntu "quantal" 12.10) since
December.

ref:  https://bugzilla.novell.com/show_bug.cgi?id=772279
ref:  https://bugs.launchpad.net/ubuntu/+bug/1069031
Fixes:  https://bugs.freedesktop.org/show_bug.cgi?id=60514
Signed-off-by: Bryce Harrington <bryce@canonical.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agorandr: bump advertised RandR version to 1.4
Dave Airlie [Tue, 5 Feb 2013 15:46:06 +0000 (07:46 -0800)]
randr: bump advertised RandR version to 1.4

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Tested-by: Aaron Plattner <aplattner@nvidia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoShort-cut the input device cleanup process during AbortServer()
Peter Hutterer [Wed, 30 Jan 2013 03:20:07 +0000 (03:20 +0000)]
Short-cut the input device cleanup process during AbortServer()

If we're about to abort, we're already in the signal handler and cannot call
down to the default device cleanup routines (which reset, free, alloc, and
do a bunch of other things).

Add a new DEVICE_ABORT mode to signal a driver's DeviceProc that it must
reset the hardware if needed but do nothing else. An actual HW reset is only
required for some drivers dealing with the HW directly.

This is largely backwards-compatible, hence the input ABI minor bump only.

Drivers we care about either return BadValue on a mode that's not
DEVICE_{INIT|ON|OFF|CLOSE} or print an error and return BadValue. Exception
here is vmmouse, which currently ignores it and would not reset anything.
This should be fixed if the reset is required.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agodix: support the transformation matrix for relative devices.
Peter Hutterer [Fri, 8 Feb 2013 04:52:02 +0000 (14:52 +1000)]
dix: support the transformation matrix for relative devices.

The transformation matrix we previously stored was a scaled matrix based on
the axis ranges of the device. For relative movements, the scaling is not
required (or desired).

Store two separate matrices, one as requested by the client, one as the
product of [scale . matrix . inv_scale]. Depending on the type of movement,
apply the respective matrix.

For relative movements, also drop the translation component since it doesn't
really make sense to use that bit.

Input ABI 19

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoos: Round fraction in pnprintf %f format
Keith Packard [Fri, 8 Feb 2013 16:57:43 +0000 (08:57 -0800)]
os: Round fraction in pnprintf %f format

Truncating the fraction part leads to a test failure where -1203.30 is
printed as -1203.29. Round this to the nearest value instead by adding
0.5 before converting to an integer

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agodix: Set focus field on XI2 crossing events
Carlos Garnacho [Wed, 6 Feb 2013 13:07:22 +0000 (14:07 +0100)]
dix: Set focus field on XI2 crossing events

Set on DeviceEnterLeaveEvent() the xXIEnterEvent->focus field
similarly to how the CoreEnterLeaveEvent() function above does
for core events.

This fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=677329
reported to GTK+, where focus handling on window managers with
sloppy focus or no window manager present was broken due to this
field being always set to FALSE.

Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agodix: when shutting down slave devices, shut down xtest devices last
Peter Hutterer [Fri, 25 Jan 2013 01:47:32 +0000 (11:47 +1000)]
dix: when shutting down slave devices, shut down xtest devices last

XTest devices are the first ones in the list, being initialised together
with the master devices. If we disable the devices in-order and a device has
a button down when being disabled, the XTest device is checked for a
required button release (xkbAccessX.c's ProcessPointerEvent). This fails if
the device is already NULL.

Instead of putting the check there, disable the devices in the reverse order
they are initialised. Disable physical slaves first, then xtest devices,
then the master devices.

Testcase: shut down server with a button still held down on a physical
device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoMerge branch 'ptraccel-fixes' into for-keith
Peter Hutterer [Fri, 8 Feb 2013 04:10:52 +0000 (14:10 +1000)]
Merge branch 'ptraccel-fixes' into for-keith

11 years agodix: pre-scale relative events from abs devices to desktop ratio (#31636)
Peter Hutterer [Fri, 11 Jan 2013 04:22:07 +0000 (14:22 +1000)]
dix: pre-scale relative events from abs devices to desktop ratio (#31636)

Absolute devices may send relative events depending on the mode (synaptics
by default, wacom per option). The relative events are added to the previous
position, converted into device coordinates and then scaled into desktop
coordinates for pointer movement.

Because the device range must be mapped into the desktop coordinate range,
this results in uneven scaling depending dimensions, e.g. on a setup with
width == 2 * height, a relative movement of 10/10 in device coordinates
results in a cursor movement of 20/10 (+ acceleration)

Other commonly user-visible results:
* the touchpad changing acceleration once an external monitor as added.
* drawing a circle on a wacom tablet in relative mode gives an ellipsis in
  the same ratio as the desktop dimensions.

Solution: pre-scale the incoming relative x/y coordinates by width/height
ratio of the total desktop size. Then add them to the previous
coordinates and scale back with the previous mapping, which will undo the
pre-scaling and give us the right movement.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: unify prefix for ptraccel debugging in DebugAccelF macro
Peter Hutterer [Thu, 10 Jan 2013 22:53:24 +0000 (08:53 +1000)]
dix: unify prefix for ptraccel debugging in DebugAccelF macro

If we're already using our own custom macro, might as well use it properly.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: use BUG_RETURN_VAL for an error message
Peter Hutterer [Thu, 10 Jan 2013 22:52:08 +0000 (08:52 +1000)]
dix: use BUG_RETURN_VAL for an error message

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: add some more info to a ptraccel debug msg
Peter Hutterer [Thu, 10 Jan 2013 22:49:15 +0000 (08:49 +1000)]
dix: add some more info to a ptraccel debug msg

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: fix ptraccel debugging printfs
Peter Hutterer [Thu, 10 Jan 2013 03:19:27 +0000 (13:19 +1000)]
dix: fix ptraccel debugging printfs

This is mostly sigsafe code, so use sigsave printf. And update some fields
to double that used to be int.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoxkb: Fix repeat behaviour of redirect and message actions
Andreas Wettstein [Tue, 29 Jan 2013 20:49:20 +0000 (21:49 +0100)]
xkb: Fix repeat behaviour of redirect and message actions

The redirect and the message action filter functions implicitly assumed that
when they receive an event for the same keycode they were activated for, that
this is the a release of the key that activated the filter.  This is not true
if the key autorepeats.  Due to the incorrect assumption, the effective key
repeat rate was effectively halved.

Signed-off-by: Andreas Wettstein <wettstein509@solnet.ch>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoXext: if a root window is given in XTestFakeInput, move to that
Peter Hutterer [Sat, 26 Jan 2013 05:53:08 +0000 (15:53 +1000)]
Xext: if a root window is given in XTestFakeInput, move to that

For absolute events, if the client specifies a screen number offset the
coordinates by that. And add a new flag so we know when _not_ to add the
screen offset in GPE.

Without this offset and the flag, GPE would simply add the offset of the
current screen if POINTER_SCREEN is set.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXext: pass the current screen to miProcessDeviceEvent() from xtest calls
Peter Hutterer [Tue, 29 Jan 2013 05:13:44 +0000 (15:13 +1000)]
Xext: pass the current screen to miProcessDeviceEvent() from xtest calls

Not passing in a screen means we skip the screen crossing updates, so a
xtest event that changes between ScreenRecs won't do so until the next
physical event comes in or never, whichever comes earlier.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: when scaling from desktop coord, take the total desktop size (#51904)
Sybren van Elderen [Tue, 29 Jan 2013 05:43:57 +0000 (15:43 +1000)]
dix: when scaling from desktop coord, take the total desktop size (#51904)

Scaled is already in desktop coordinates, take the total width into account,
not just the current screen's width.

Fixes Xdmx pointer position calculation.

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

Signed-off-by: Sybren van Elderen <sowmestno@msn.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoinclude: fix typo in list description
Peter Hutterer [Tue, 29 Jan 2013 02:51:15 +0000 (12:51 +1000)]
include: fix typo in list description

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxfree86: bail on misformed acpi strings (#73227)
Ted Felix [Tue, 29 Jan 2013 06:36:48 +0000 (16:36 +1000)]
xfree86: bail on misformed acpi strings (#73227)

If acpid sends a string in a format that we can't parse, bail out instead of
potentially dereferencing a NULL-pointer.

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

Signed-off-by: Ted Felix <ted@tedfelix.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoXi: limit valuator copy to valuator array size (#59939)
Peter Hutterer [Tue, 29 Jan 2013 01:01:29 +0000 (11:01 +1000)]
Xi: limit valuator copy to valuator array size (#59939)

mask[(MAX_VALUATORS + 7)/8] is larger than data[MAX_VALUATORS], so static
code checkers think we may be running OOB on the data array. Mask is
initialized to 0, so this should not happen, but change it anyway to shut up
code analyzer noise.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
11 years agoXext: avoid null-pointer dereference in XTestFakeInput (#59937)
Alan Coopersmith [Tue, 29 Jan 2013 00:24:32 +0000 (10:24 +1000)]
Xext: avoid null-pointer dereference in XTestFakeInput (#59937)

dv is still NULL at this point, so return firstValuator instead (which is
the same value dv->firstValuator would be once initialized)

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

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agodmx: don't include dmx-config.h from xdmxconfig (#37502)
Peter Hutterer [Sat, 26 Jan 2013 04:13:33 +0000 (14:13 +1000)]
dmx: don't include dmx-config.h from xdmxconfig (#37502)

dmx-config.h is a server header which includes dix-config.h. That again
defines a bunch of server-specifics, including setting the size of XID to
32 bit.

libX11 uses unsigned long (8 bits on x86_64). XGCValues thus ends up being
16 bytes smaller in xdmxconfig than in the library, causing garbage to be
sent to the server.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>