diff options
-rw-r--r-- | drivers/gpu/drm/drm_dp_mst_topology.c | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp_mst.c | 17 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/dispnv50/disp.c | 3 |
3 files changed, 9 insertions, 23 deletions
diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c index db0fdc513b9c..dc7ac0c60547 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c | |||
@@ -3117,10 +3117,6 @@ int drm_dp_atomic_find_vcpi_slots(struct drm_atomic_state *state, | |||
3117 | if (IS_ERR(topology_state)) | 3117 | if (IS_ERR(topology_state)) |
3118 | return PTR_ERR(topology_state); | 3118 | return PTR_ERR(topology_state); |
3119 | 3119 | ||
3120 | port = drm_dp_mst_topology_get_port_validated(mgr, port); | ||
3121 | if (port == NULL) | ||
3122 | return -EINVAL; | ||
3123 | |||
3124 | /* Find the current allocation for this port, if any */ | 3120 | /* Find the current allocation for this port, if any */ |
3125 | list_for_each_entry(pos, &topology_state->vcpis, next) { | 3121 | list_for_each_entry(pos, &topology_state->vcpis, next) { |
3126 | if (pos->port == port) { | 3122 | if (pos->port == port) { |
@@ -3153,10 +3149,8 @@ int drm_dp_atomic_find_vcpi_slots(struct drm_atomic_state *state, | |||
3153 | /* Add the new allocation to the state */ | 3149 | /* Add the new allocation to the state */ |
3154 | if (!vcpi) { | 3150 | if (!vcpi) { |
3155 | vcpi = kzalloc(sizeof(*vcpi), GFP_KERNEL); | 3151 | vcpi = kzalloc(sizeof(*vcpi), GFP_KERNEL); |
3156 | if (!vcpi) { | 3152 | if (!vcpi) |
3157 | ret = -ENOMEM; | 3153 | return -ENOMEM; |
3158 | goto out; | ||
3159 | } | ||
3160 | 3154 | ||
3161 | drm_dp_mst_get_port_malloc(port); | 3155 | drm_dp_mst_get_port_malloc(port); |
3162 | vcpi->port = port; | 3156 | vcpi->port = port; |
@@ -3165,8 +3159,6 @@ int drm_dp_atomic_find_vcpi_slots(struct drm_atomic_state *state, | |||
3165 | vcpi->vcpi = req_slots; | 3159 | vcpi->vcpi = req_slots; |
3166 | 3160 | ||
3167 | ret = req_slots; | 3161 | ret = req_slots; |
3168 | out: | ||
3169 | drm_dp_mst_topology_put_port(port); | ||
3170 | return ret; | 3162 | return ret; |
3171 | } | 3163 | } |
3172 | EXPORT_SYMBOL(drm_dp_atomic_find_vcpi_slots); | 3164 | EXPORT_SYMBOL(drm_dp_atomic_find_vcpi_slots); |
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c index b61e291367b4..5d8471f080d9 100644 --- a/drivers/gpu/drm/i915/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/intel_dp_mst.c | |||
@@ -80,17 +80,12 @@ static int intel_dp_mst_compute_config(struct intel_encoder *encoder, | |||
80 | mst_pbn = drm_dp_calc_pbn_mode(adjusted_mode->crtc_clock, bpp); | 80 | mst_pbn = drm_dp_calc_pbn_mode(adjusted_mode->crtc_clock, bpp); |
81 | pipe_config->pbn = mst_pbn; | 81 | pipe_config->pbn = mst_pbn; |
82 | 82 | ||
83 | /* Zombie connectors can't have VCPI slots */ | 83 | slots = drm_dp_atomic_find_vcpi_slots(state, &intel_dp->mst_mgr, port, |
84 | if (!drm_connector_is_unregistered(connector)) { | 84 | mst_pbn); |
85 | slots = drm_dp_atomic_find_vcpi_slots(state, | 85 | if (slots < 0) { |
86 | &intel_dp->mst_mgr, | 86 | DRM_DEBUG_KMS("failed finding vcpi slots:%d\n", |
87 | port, | 87 | slots); |
88 | mst_pbn); | 88 | return slots; |
89 | if (slots < 0) { | ||
90 | DRM_DEBUG_KMS("failed finding vcpi slots:%d\n", | ||
91 | slots); | ||
92 | return slots; | ||
93 | } | ||
94 | } | 89 | } |
95 | 90 | ||
96 | intel_link_compute_m_n(bpp, lane_count, | 91 | intel_link_compute_m_n(bpp, lane_count, |
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index 2e8a5fd9b262..60d858c2f2ce 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c | |||
@@ -771,8 +771,7 @@ nv50_msto_atomic_check(struct drm_encoder *encoder, | |||
771 | mstc->pbn = drm_dp_calc_pbn_mode(crtc_state->adjusted_mode.clock, | 771 | mstc->pbn = drm_dp_calc_pbn_mode(crtc_state->adjusted_mode.clock, |
772 | bpp); | 772 | bpp); |
773 | 773 | ||
774 | if (drm_atomic_crtc_needs_modeset(crtc_state) && | 774 | if (drm_atomic_crtc_needs_modeset(crtc_state)) { |
775 | !drm_connector_is_unregistered(connector)) { | ||
776 | slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, | 775 | slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, |
777 | mstc->port, mstc->pbn); | 776 | mstc->port, mstc->pbn); |
778 | if (slots < 0) | 777 | if (slots < 0) |