linux/include
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
..
acpi ACPI: CPPC: Don't require _OSC if X86_FEATURE_CPPC is supported 2022-07-05 20:36:11 +02:00
asm-generic
clocksource
crypto
drm drm/display/dp_mst: Add nonblocking helpers for DP MST 2022-08-23 16:53:37 -04:00
dt-bindings
keys certs: Move load_certificate_list() to be with the asymmetric keys code 2022-06-21 16:05:06 +01:00
kunit
kvm
linux iosys-map: Add IOSYS_MAP_INIT_VADDR_IOMEM() 2022-08-10 09:15:16 +02:00
math-emu
media
memory
misc
net net/sched: act_police: allow 'continue' action offload 2022-07-06 12:44:39 +01:00
pcmcia
ras
rdma
scsi
soc
sound ASoC: Remove unused hw_write_t type 2022-06-24 16:21:41 +01:00
target
trace ATA fixes for 5.19-rc4 2022-06-24 11:12:34 -07:00
uapi drm/panfrost: Add support for devcoredump 2022-08-08 12:39:55 +01:00
ufs
vdso
video video: Provide constants for VGA I/O range 2022-07-19 13:19:11 +02:00
xen