xserver/hw/xfree86/drivers/modesetting
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
..
Makefile.am shadow: Lift 32->24 conversion from modesetting to dix 2016-12-12 14:10:44 -05:00
dri2.c modesetting: Fix inverted check in dri2 WaitMSC 2018-04-17 10:26:25 -04:00
driver.c modesetting: get pEnt after error checks 2018-09-12 12:26:48 +10:00
driver.h modesetting: Allow a DRM fd to be passed on command line with -masterfd [v2] 2018-06-28 22:54:22 -07:00
drmmode_display.c modesetting: Actually disable CRTCs in legacy mode 2018-11-29 16:21:26 +00:00
drmmode_display.h During reset/shutdown, clean up leases in DIX instead of each driver 2018-08-02 10:15:26 -04:00
dumb_bo.c modesetting: Include dix-config.h from dumb_bo.c 2015-05-12 08:02:11 -07:00
dumb_bo.h modesetting: Drop dumb_bo::map_count field and dead unmap code. 2014-12-11 11:26:19 -08:00
meson.build modesetting: set gbm as dependency in meson build 2018-05-08 12:41:58 -04:00
modesetting.man modesetting: Document Option "DoubleShadow" in the man page 2018-09-10 14:47:06 -04:00
pageflip.c modesetting: Use atomic modesetting to set DPMS mode 2018-04-04 14:01:48 -04:00
present.c modesetting: Fix GBM objects leak when checking for flip 2018-04-30 14:01:02 -04:00
vblank.c modesetting: Fix and improve ms_kernel_msc_to_crtc_msc() 2018-05-07 14:01:01 -04:00