XLibre Xserver
Go to file
Martin Peres bcee1b76aa modesetting: re-set the crtc's mode when link-status goes BAD
Despite all the careful planning of the kernel, a link may become
insufficient to handle the currently-set mode. At this point, the
kernel should mark this particular configuration as being broken
and potentially prune the mode before setting the offending connector's
link-status to BAD and send the userspace a hotplug event. This may
happen right after a modeset or later on.

Upon receiving a hot-plug event, we iterate through the connectors to
re-apply the currently-set mode on all the connectors that have a
link-status property set to BAD. The kernel may be able to get the
link to work by dropping to using a lower link bpp (with the same
display bpp). However, the modeset may fail if the kernel has pruned
the mode, so to make users aware of this problem a warning is outputed
in the logs to warn about having a potentially-black display.

This patch does not modify the current behaviour of always propagating
the events to the randr clients. This allows desktop environments to
re-probe the connectors and select a new resolution based on the new
(currated) mode list if a mode disapeared. This behaviour is expected in
order to pass the Display Port compliance tests.

Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2017-04-12 11:00:10 -07:00
Xext dpms: Consolidate a bunch of stuff into Xext/dpms.c 2017-03-27 15:59:47 -04:00
Xi dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
composite dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
config ddx: add new call to purge input devices that weren't added 2016-10-26 15:35:07 +10:00
damageext dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
dbe dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
dix dpms: Consolidate a bunch of stuff into Xext/dpms.c 2017-03-27 15:59:47 -04:00
doc Remove readmask from screen block/wakeup handler 2016-07-18 15:27:51 -04:00
dri3 dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
exa fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fb fb: Handle ZPixmap planemask in GetImage the other way around 2017-03-20 13:47:49 -04:00
glamor glamor: Fix some formatting that confused the unifdef command. 2017-03-23 13:17:42 -04:00
glx glx: Remove enter/leave server API 2017-04-10 13:55:11 -04:00
hw modesetting: re-set the crtc's mode when link-status goes BAD 2017-04-12 11:00:10 -07:00
include dpms: Consolidate a bunch of stuff into Xext/dpms.c 2017-03-27 15:59:47 -04:00
m4 Add ax_pthread.m4 to m4/ 2016-05-29 19:20:51 -07:00
man Xserver.man: document more transports for -nolisten & -listen options 2015-10-28 14:16:28 -04:00
mi kdrive: Drop kdrive-config.h. 2017-03-23 13:17:36 -04:00
miext dix: Remove PRIVATE_DAMAGE 2017-03-21 11:20:26 -04:00
os dpms: Consolidate a bunch of stuff into Xext/dpms.c 2017-03-27 15:59:47 -04:00
present dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
pseudoramiX Convert top level extensions to new *allocarray functions 2015-04-21 16:57:08 -07:00
randr dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
record record: Fix OOB access in ProcRecordUnregisterClients 2017-03-20 15:19:12 -04:00
render render: Fix out of boundary heap access 2017-03-13 16:54:20 -04:00
test test: Fix distcheck failures 2017-03-14 12:28:24 -04:00
xfixes dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
xkb xkb: Correct type of XkbDfltAccessXOptions. 2017-03-27 13:22:33 +10:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02:00
.gitignore .gitignore: Add new autotools file 'test-driver' 2014-04-21 13:41:42 -07:00
COPYING modesetting: Merge modesetting's COPYING into the xserver's. 2014-09-15 12:46:02 -07:00
Makefile.am DIST_SUBDIRS needs to include glamor, even if it isn't built 2014-02-13 15:25:56 -08:00
README README: Add link to fd.o CoC 2017-04-11 08:51:34 -04:00
autogen.sh autogen: Set a default subject prefix for patches 2016-02-08 17:41:38 -05:00
configure.ac kdrive: Drop kdrive-config.h. 2017-03-23 13:17:36 -04:00
devbook.am doc: Create a script to filter xmlto output 2015-01-05 14:24:06 -08:00
docbook.am docbook.am: embed css styles inside the HTML HEAD element 2011-09-21 14:07:49 -07:00
fix-miregion
fix-miregion-private
fix-patch-whitespace
fix-region
manpages.am Xorg: Add a suid root wrapper 2014-03-12 08:50:05 +01:00
xorg-server.m4 macros: clarify documentation 2012-11-05 13:24:57 -06:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
https://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        https://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        https://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	https://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        https://wiki.x.org/wiki/GitPage

As with other projects hosted on freedesktop.org, X.Org follows its
Code of Conduct, based on the Contributor Covenant. Please conduct
yourself in a respectful and civilized manner when using the above
mailing lists, bug trackers, etc:

	https://www.freedesktop.org/wiki/CodeOfConduct