Link bandwidth is a shared resource between multiple displays in DP MST configurations. For atomic modesetting drivers, checking if there is sufficient link bandwidth for a mode needs to be done during the atomic_check phase to avoid failed modesets when multiple CRTC's and connectors are involved. Managing shared resources like DP MST link bandwidth in the driver's subclassed atomic_state will result in duplicating the code in each atomic modesetting driver. But adding objects like DP MST link bandwidth to the DRM core's drm_atomic_state would mean that an object that is not a core modesetting object like connector, CRTC or a plane will be modified by the helper functions for swapping and clearing state. So, this series introduces void * type driver-private objects in drm_atomic_state and adds helper functions that operate on these private objects. Drivers can then implement object-specific functions to swap and clear states. The advantage of having void * for these objects in drm_atomic_state is that objects of different types can be managed in the same state array. This rebased version includes a few minor changes - 1) Used for_each_oldnew_connector_in_state() macro (7/8) 2) Added a WARN_ON() to check for connection_mutex (5/8) 3) Alignment fix. (4/8) Pandiyan, Dhinakaran (8): drm/dp: Kill total_pbn and total_slots in struct drm_dp_mst_topology_mgr drm/dp: Kill unused MST vcpi slot availability tracking drm/dp: Split drm_dp_mst_allocate_vcpi drm: Add driver-private objects to atomic state drm/dp: Introduce MST topology state to track available link bandwidth drm/dp: Add DP MST helpers to atomically find and release vcpi slots drm: Connector helper function to release resources drm/dp: Track MST link bandwidth drivers/gpu/drm/drm_atomic.c | 68 ++++++++++++ drivers/gpu/drm/drm_atomic_helper.c | 24 ++++ drivers/gpu/drm/drm_dp_mst_topology.c | 185 ++++++++++++++++++++++++++++--- drivers/gpu/drm/i915/intel_dp_mst.c | 42 +++++-- drivers/gpu/drm/nouveau/nv50_display.c | 3 +- drivers/gpu/drm/radeon/radeon_dp_mst.c | 4 +- include/drm/drm_atomic.h | 93 ++++++++++++++++ include/drm/drm_dp_mst_helper.h | 33 ++++-- include/drm/drm_modeset_helper_vtables.h | 13 +++ 9 files changed, 427 insertions(+), 38 deletions(-) -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx