No description
Find a file
Lyude Paul a5c2c0d164 drm/display/dp_mst: Add nonblocking helpers for DP MST
As Daniel Vetter pointed out, if we only use the atomic modesetting locks
with MST it's technically possible for a driver with non-blocking modesets
to race when it comes to MST displays - as we make the mistake of not doing
our own CRTC commit tracking in the topology_state object.

This could potentially cause problems if something like this happens:

* User starts non-blocking commit to disable CRTC-1 on MST topology 1
* User starts non-blocking commit to enable CRTC-2 on MST topology 1

There's no guarantee here that the commit for disabling CRTC-2 will only
occur after CRTC-1 has finished, since neither commit shares a CRTC - only
the private modesetting object for MST. Keep in mind this likely isn't a
problem for blocking modesets, only non-blocking.

So, begin fixing this by keeping track of which CRTCs on a topology have
changed by keeping track of which CRTCs we release or allocate timeslots
on. As well, add some helpers for:

* Setting up the drm_crtc_commit structs in the ->commit_setup hook
* Waiting for any CRTC dependencies from the previous topology state

v2:
* Use drm_dp_mst_atomic_setup_commit() directly - Jani

Signed-off-by: Lyude Paul <lyude@redhat.com>
Cc: Wayne Lin <Wayne.Lin@amd.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Fangzhi Zuo <Jerry.Zuo@amd.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Sean Paul <sean@poorly.run>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220817193847.557945-9-lyude@redhat.com
2022-08-23 16:53:37 -04:00
arch - Prepare for and clear .brk early in order to address XenPV guests 2022-07-10 08:43:52 -07:00
block
certs
crypto
Documentation drm/todo: remove task to rename CMA helpers 2022-08-03 18:32:28 +02:00
drivers drm/display/dp_mst: Add nonblocking helpers for DP MST 2022-08-23 16:53:37 -04:00
fs o_uring-5.19-2022-07-09 2022-07-10 09:14:54 -07:00
include drm/display/dp_mst: Add nonblocking helpers for DP MST 2022-08-23 16:53:37 -04:00
init
ipc
kernel Linux 5.19-rc6 2022-07-13 10:54:56 +10:00
lib ida: don't use BUG_ON() for debugging 2022-07-10 13:55:49 -07:00
LICENSES
mm
net
samples
scripts kbuild: remove unused cmd_none in scripts/Makefile.modinst 2022-07-10 21:25:15 +09:00
security
sound
tools - Prepare for and clear .brk early in order to address XenPV guests 2022-07-10 08:43:52 -07:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap cxl fixes for 5.19-rc6 2022-07-08 12:55:25 -07:00
COPYING
CREDITS drm/exynos: MAINTAINERS: move Joonyoung Shim to credits 2022-07-12 13:52:59 +09:00
Kbuild
Kconfig
MAINTAINERS Two cleanups 2022-07-13 14:17:35 +10:00
Makefile Linux 5.19-rc6 2022-07-10 14:40:51 -07:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.