drm/dp: Split drm_dp_mst_allocate_vcpi
drm_dp_mst_allocate_vcpi() apart from setting up the vcpi structure, also finds if there are enough slots available. This check is a duplicate of that implemented in drm_dp_mst_find_vcpi_slots(). Let's move this check out and reuse the existing drm_dp_mst_find_vcpi_slots() function to check if there are enough vcpi slots before allocating them. This brings the check to one place. Additionally drivers that will use MST state tracking for atomic modesets can use the atomic version of find_vcpi_slots() and reuse drm_dp_mst_allocate_vcpi() Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1489648231-30700-4-git-send-email-dhinakaran.pandiyan@intel.com
This commit is contained in:
committed by
Daniel Vetter
parent
feb2c3bc33
commit
1e797f556c
@@ -453,9 +453,11 @@ radeon_mst_encoder_dpms(struct drm_encoder *encoder, int mode)
|
||||
DRM_DEBUG_KMS("dig encoder is %d %d %d\n", dig_enc->dig_encoder,
|
||||
dig_enc->linkb, radeon_crtc->crtc_id);
|
||||
|
||||
slots = drm_dp_find_vcpi_slots(&radeon_connector->mst_port->mst_mgr,
|
||||
mst_enc->pbn);
|
||||
ret = drm_dp_mst_allocate_vcpi(&radeon_connector->mst_port->mst_mgr,
|
||||
radeon_connector->port,
|
||||
mst_enc->pbn, &slots);
|
||||
mst_enc->pbn, slots);
|
||||
ret = drm_dp_update_payload_part1(&radeon_connector->mst_port->mst_mgr);
|
||||
|
||||
radeon_dp_mst_set_be_cntl(primary, mst_enc,
|
||||
|
||||
Reference in New Issue
Block a user