xserver/hw/xfree86
Lyude Paul 7a44e8d400 modesetting: Actually disable CRTCs in legacy mode
Believe it or not, somehow we've never done this in legacy mode! We
currently simply change the DPMS property on the CRTC's output's
respective DRM connector, but this means that we're just setting the
CRTC as inactive-not disabled. From the perspective of the kernel, this
means that any shared resources used by the CRTC are still in use.

This can cause problems for drivers that are not yet fully atomic,
despite using the atomic helpers internally. For instance: if CRTC-1 and
CRTC-2 are still enabled and use shared resources within the kernel (an
MST topology, for example), and then userspace tries to go enable CRTC-3
on the same topology this might suddenly fail if CRTC-3 needs the shared
resources CRTC-1 and CRTC-2 are using. While I don't know of any
situations in the mainline kernel that actually trigger this, future
plans for reworking the atomic check of MST drivers are absolutely
going to make this into a real issue (they already are in my WIP
branches for the kernel).

So: actually do the right thing here and disable CRTCs when they're not
going to be used anymore, even in legacy mode.

Signed-off-by: Lyude Paul <lyude@redhat.com>
2018-11-29 16:21:26 +00:00
..
common Fix segfault on probing a non-PCI platform device on a system with PCI. 2018-10-29 15:51:44 +00:00
ddc Add a Meson build system alongside autotools. 2017-04-26 15:25:27 -07:00
dixmods miinitext: Load GLX on the mi path 2018-02-14 17:04:48 -05:00
doc xfree86: Remove -flippixels 2018-09-27 16:50:22 +00:00
dri hw/xfree86: unvalidated lengths 2017-10-10 23:33:44 +02:00
dri2 DRI2: Sync radeonsi_pci_ids.h from Mesa 2018-05-14 14:32:12 -04:00
drivers modesetting: Actually disable CRTCs in legacy mode 2018-11-29 16:21:26 +00:00
exa meson: Install man pages 2018-03-27 10:28:33 -04:00
fbdevhw xfree86: ensure the readlink buffer is null-terminated 2018-10-17 09:41:15 +10:00
glamor_egl glamor: Make Xv extension initialize at depth 30. 2018-02-27 10:18:06 -05:00
i2c Add a Meson build system alongside autotools. 2017-04-26 15:25:27 -07:00
int10 meson: Silence -Wformat-nonliteral for x86emu 2017-10-20 13:15:35 -04:00
loader Use ARRAY_SIZE all over the tree 2017-10-30 13:45:20 -04:00
man xfree86: Remove -flippixels 2018-09-27 16:50:22 +00:00
modes xfree86: Wrap RRCrtcIsLeased and RROutputIsLeased to check for DIX structures 2018-07-02 19:34:50 -04:00
os-support linux: Make platform device probe less fragile 2018-10-18 13:52:11 -04:00
parser xfree86: Remove NoTrapSignals 2018-09-12 20:47:15 +00:00
ramdac ramdac: Check ScreenPriv != NULL in xf86ScreenSetCursor() 2017-10-25 09:52:44 -04:00
shadowfb meson: Fix linkage of loadable modules for PE/COFF 2017-10-12 15:22:04 -04:00
utils gtf: Warning fix 2018-04-05 14:18:16 -04:00
vbe meson: Build libvbe.so 2017-04-27 15:19:45 -04:00
vgahw xfree86: Remove -flippixels 2018-09-27 16:50:22 +00:00
x86emu x86emu: Teach the debug code about varargs 2018-01-16 16:08:38 -05:00
xkb Move statically linked xorgxkb files from dixmods to a separate directory 2017-06-27 12:42:06 -04:00
.gitignore Xorg: Add Xorg.wrap to hw/xfree86/.gitignore 2014-04-18 11:39:16 +02:00
Makefile.am xfree86: Makefile shouldn't rely on superuser being named 'root' 2018-06-12 10:36:56 -04:00
Xorg.sh.in xfree86: rename Xorg.bin to Xorg 2015-01-05 09:53:58 +10:00
meson.build meson: don't install xorg wrapper manpages if suid-wrapper isn't being used 2018-05-14 14:13:38 -04:00
sdksyms.sh sdksyms: Cope with __pid_t and __uint32_t 2018-04-23 14:56:17 -04:00
xorg-wrapper.c suid: Include sysmacros.h to fix build after glibc-2.25 2017-09-25 13:04:25 -04:00
xorgconf.cpp xfree86: Remove NoTrapSignals 2018-09-12 20:47:15 +00:00