xserver/hw/xfree86
Michael Thayer c02f6a687c xfree86: Immediately handle failure to set HW cursor, v5
Based on v4 by Alexandre Courbot <acourbot@nvidia.com>

There is currently no reliable way to report failure to set a HW
cursor. Still such failures can happen if e.g. the MODE_CURSOR DRM
ioctl fails (which currently happens at least with modesetting on Tegra
for format incompatibility reasons).

As failures are currently handled by setting the HW cursor size to
(0,0), the fallback to SW cursor will not happen until the next time the
cursor changes and xf86CursorSetCursor() is called again. In the
meantime, the cursor will be invisible to the user.

This patch addresses that by adding _xf86CrtcFuncs::set_cursor_check and
_xf86CursorInfoRec::ShowCursorCheck hook variants that return booleans.
This allows to propagate errors up to xf86CursorSetCursor(), which can
then fall back to using the SW cursor immediately.

v5: Updated the patch to apply to current git HEAD, split up into two
patches (server and modesetting driver) and adjusted the code slightly
to match surrounding code.  I also removed the new exported function
ShowCursorCheck(), as instead just changing ShowCursor() to return Bool
should not affect its current callers.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Michael Thayer <michael.thayer@oracle.com>
2017-02-08 12:04:42 -05:00
..
common loader: Remove unused arguments from LoadModule 2017-01-25 14:22:06 -05:00
ddc xfree86: small memory leaks fixes 2016-09-28 14:53:39 -04:00
dixmods glx/dri2: Don't build DRI loader if DRI2 isn't enabled 2016-10-27 14:25:42 +01:00
doc loader: Remove unused arguments from LoadModule 2017-01-25 14:22:06 -05:00
dri dri1: Remove some dead event code 2017-02-08 11:53:48 -05:00
dri2 dri2: refine dri2_probe_driver_name (v2) 2017-01-25 15:13:33 -05:00
drivers modesetting: cleanup pci device open 2017-01-11 11:14:12 +10:00
exa build: Remove stale miext/cw include paths 2015-10-27 13:46:13 -04:00
fbdevhw fbdevhw: Fix a const qualifier warning 2015-09-23 15:18:24 -04:00
glamor_egl glamor: Share code for put_image handling. 2014-06-15 23:20:09 +01:00
i2c xfree86: Fix null pointer dereference 2016-09-28 14:53:39 -04:00
int10 x86emu: Change include order to avoid conflict with system header 2016-04-29 11:05:38 -04:00
loader loader: Handle mod->VersionInfo == NULL 2017-02-01 11:43:45 +10:00
man xfree86: Add ModulePath support for OutputClass config Sections 2016-12-14 14:12:19 -05:00
modes xfree86: Immediately handle failure to set HW cursor, v5 2017-02-08 12:04:42 -05:00
os-support tests: Avoid libtool message 2017-01-12 13:25:52 -05:00
parser xfree86: Add ModulePath support for OutputClass config Sections 2016-12-14 14:12:19 -05:00
ramdac xfree86: Immediately handle failure to set HW cursor, v5 2017-02-08 12:04:42 -05:00
shadowfb shadowfb: Rename this particular shadow.c to shadowfb.c 2016-12-12 14:10:44 -05:00
utils xfree86: small memory leaks fixes 2016-09-28 14:53:39 -04:00
vbe xfree86: Change VBE version early-out to 1.2. (#22672) 2016-03-14 11:44:10 -04:00
vgahw Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
x86emu x86emu: Change include order to avoid conflict with system header 2016-04-29 11:05:38 -04:00
.gitignore Xorg: Add Xorg.wrap to hw/xfree86/.gitignore 2014-04-18 11:39:16 +02:00
Makefile.am vidmode: move to a separate library of its own 2016-02-29 16:29:01 -05:00
Xorg.sh.in xfree86: rename Xorg.bin to Xorg 2015-01-05 09:53:58 +10:00
sdksyms.sh dix: Switch to the libXfont2 API (v2) 2016-07-18 15:25:59 -04:00
xorg-wrapper.c xfree86: Xorg.wrap: Do not require root rights for cards with 0 outputs 2016-10-26 12:40:23 -04:00
xorgconf.cpp xfree86: fix wrong DontZap documentation (#71113) 2014-05-24 20:02:56 +10:00