[PATCH v4 00/16] MST refcounting/atomic helpers cleanup
Lyude Paul
lyude at redhat.com
Sat Jan 5 00:14:50 UTC 2019
This is the series I've been working on for a while now to get all of
the atomic DRM drivers in the tree to use the atomic MST helpers, and to
make the atomic MST helpers actually idempotent. Turns out it's a lot
more difficult to do that without also fixing how port and branch device
refcounting works so that it actually makes sense, since the current
upstream implementation requires a ton of magic in the atomic helpers to
work around properly and in many situations just plain doesn't work as
intended.
There's still more cleanup that can be done, but I think this is a good
place to start off for now :).
This version just contains some changes that I forgot to make that had
been requested much earlier, mainly in regards to the atomic checking
code I added to i915 and nouveau (but not the helpers).
Also, per-request I've made a gitlab branch available for this:
https://gitlab.freedesktop.org/lyudess/linux/commits/wip/mst-dual-kref-start-v4
Lyude Paul (16):
drm/dp_mst: Rename drm_dp_mst_get_validated_(port|mstb)_ref and
friends
drm/dp_mst: Introduce new refcounting scheme for mstbs and ports
drm/dp_mst: Restart last_connected_port_and_mstb() if topology ref
fails
drm/dp_mst: Stop releasing VCPI when removing ports from topology
drm/dp_mst: Fix payload deallocation on hotplugs using malloc refs
drm/i915: Keep malloc references to MST ports
drm/amdgpu/display: Keep malloc ref to MST port
drm/nouveau: Remove bogus cleanup in nv50_mstm_add_connector()
drm/nouveau: Remove unnecessary VCPI checks in nv50_msto_cleanup()
drm/nouveau: Keep malloc references to MST ports
drm/nouveau: Stop unsetting mstc->port, use malloc refs
drm/nouveau: Grab payload lock in nv50_msto_payload()
drm/dp_mst: Add some atomic state iterator macros
drm/dp_mst: Start tracking per-port VCPI allocations
drm/dp_mst: Check payload count in drm_dp_mst_atomic_check()
drm/nouveau: Use atomic VCPI helpers for MST
.../gpu/dp-mst/topology-figure-1.dot | 52 +
.../gpu/dp-mst/topology-figure-2.dot | 56 ++
.../gpu/dp-mst/topology-figure-3.dot | 59 ++
Documentation/gpu/drm-kms-helpers.rst | 26 +-
.../display/amdgpu_dm/amdgpu_dm_mst_types.c | 11 +-
drivers/gpu/drm/drm_dp_mst_topology.c | 938 ++++++++++++++----
drivers/gpu/drm/i915/intel_connector.c | 4 +
drivers/gpu/drm/i915/intel_display.c | 4 +
drivers/gpu/drm/i915/intel_dp_mst.c | 55 +-
drivers/gpu/drm/nouveau/dispnv50/disp.c | 96 +-
include/drm/drm_dp_mst_helper.h | 151 ++-
11 files changed, 1203 insertions(+), 249 deletions(-)
create mode 100644 Documentation/gpu/dp-mst/topology-figure-1.dot
create mode 100644 Documentation/gpu/dp-mst/topology-figure-2.dot
create mode 100644 Documentation/gpu/dp-mst/topology-figure-3.dot
--
2.20.1
More information about the amd-gfx
mailing list