Adding private objects to atomic state

Submitted by Dhinakaran Pandiyan on Jan. 24, 2017, 11:49 p.m.

Details

Reviewer None
Submitted Jan. 24, 2017, 11:49 p.m.
Last Updated Jan. 25, 2017, 12:24 a.m.
Revision 1

Cover Letter(s)

Revision 1
      Link bandwidth is shared between multiple display streams in DP MST
configurations. The DP MST topology manager structure maintains the shared
link bandwidth for a primary link directly connected to the GPU. 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.

But adding objects like DP MST link bandwidth to drm_atomic_state would
mean that a non-core object will be modified by the core helper functions
for swapping and clearing it's state. So, this series adds void * objects
to drm_atomic_state and helper functions that operate on void * types to
keep these objects and states private to the core. Drivers can then
implement specific functions to swap and clear states. The other advantage
having just void * for these objects in drm_atomic_state is that objects of
different types can be managed in the same state array.

This series also includes some necessary cleanups.

Dhinakaran Pandiyan (9):
  drm/dp: Store drm_device in MST topology manager
  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
  drm/dp: Add DP MST helpers to atomically find and release vcpi slots
  drm: Connector helper function to release atomic state
  drm/dp: Release DP MST shared link bandwidth
  drm/dp: Track MST link bandwidth

 drivers/gpu/drm/drm_atomic.c             |  55 ++++++++++++
 drivers/gpu/drm/drm_atomic_helper.c      |  15 +++-
 drivers/gpu/drm/drm_dp_mst_topology.c    | 143 ++++++++++++++++++++++++++-----
 drivers/gpu/drm/i915/intel_dp_mst.c      |  48 ++++++++++-
 drivers/gpu/drm/nouveau/nv50_display.c   |   5 +-
 drivers/gpu/drm/radeon/radeon_dp_mst.c   |   6 +-
 include/drm/drm_atomic.h                 |  30 +++++++
 include/drm/drm_dp_mst_helper.h          |  37 +++++---
 include/drm/drm_modeset_helper_vtables.h |  15 ++++
 9 files changed, 313 insertions(+), 41 deletions(-)
    

Revisions

Patches download mbox

Tests

Series 18523v1 Adding private objects to atomic state
https://patchwork.freedesktop.org/api/1.0/series/18523/revisions/1/mbox/


fi-bdw-5557u     total:247  pass:233  dwarn:0   dfail:0   fail:0   skip:14 
fi-bsw-n3050     total:247  pass:208  dwarn:0   dfail:0   fail:0   skip:39 
fi-bxt-j4205     total:247  pass:225  dwarn:0   dfail:0   fail:0   skip:22 
fi-bxt-t5700     total:79   pass:66   dwarn:0   dfail:0   fail:0   skip:12 
fi-byt-j1900     total:247  pass:220  dwarn:0   dfail:0   fail:0   skip:27 
fi-byt-n2820     total:247  pass:216  dwarn:0   dfail:0   fail:0   skip:31 
fi-hsw-4770      total:247  pass:228  dwarn:0   dfail:0   fail:0   skip:19 
fi-hsw-4770r     total:247  pass:228  dwarn:0   dfail:0   fail:0   skip:19 
fi-ivb-3520m     total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21 
fi-ivb-3770      total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21 
fi-kbl-7500u     total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21 
fi-skl-6260u     total:247  pass:234  dwarn:0   dfail:0   fail:0   skip:13 
fi-skl-6700hq    total:247  pass:227  dwarn:0   dfail:0   fail:0   skip:20 
fi-skl-6700k     total:247  pass:222  dwarn:4   dfail:0   fail:0   skip:21 
fi-skl-6770hq    total:247  pass:234  dwarn:0   dfail:0   fail:0   skip:13 
fi-snb-2520m     total:247  pass:216  dwarn:0   dfail:0   fail:0   skip:31 
fi-snb-2600      total:247  pass:215  dwarn:0   dfail:0   fail:0   skip:32 

cdab47465a54c45bdf4e9708e39c61d38c7a41ba drm-tip: 2017y-01m-24d-18h-30m-06s UTC integration manifest
c9d9fd4 drm/dp: Track MST link bandwidth
801f665 drm/dp: Release DP MST shared link bandwidth
1e2d33d drm: Connector helper function to release atomic state
e4c117e drm/dp: Add DP MST helpers to atomically find and release vcpi slots
82eca9e drm/dp: Introduce MST topology state
8aed66f drm: Add driver private objects to atomic state
376710f drm/dp: Split drm_dp_mst_allocate_vcpi
ba89d0f drm/dp: Kill unused MST vcpi slot availability tracking
371f5e5 drm/dp: Store drm_device in MST topology manager