Skip to content

Commit 8be17ac

Browse files
Jerry (Fangzhi) Zuoalexdeucher
authored andcommitted
drm/amd/display: Cleanup MST non-atomic code workaround
[why] It is not correct to touch aconnector within atomic_check. [How] It was added as workaround before, and no longer needed. Signed-off-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 108110a commit 8be17ac

File tree

3 files changed

+4
-46
lines changed

3 files changed

+4
-46
lines changed

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2703,18 +2703,11 @@ create_stream_for_sink(struct amdgpu_dm_connector *aconnector,
27032703
drm_connector = &aconnector->base;
27042704

27052705
if (!aconnector->dc_sink) {
2706-
/*
2707-
* Create dc_sink when necessary to MST
2708-
* Don't apply fake_sink to MST
2709-
*/
2710-
if (aconnector->mst_port) {
2711-
dm_dp_mst_dc_sink_create(drm_connector);
2712-
return stream;
2706+
if (!aconnector->mst_port) {
2707+
sink = create_fake_sink(aconnector);
2708+
if (!sink)
2709+
return stream;
27132710
}
2714-
2715-
sink = create_fake_sink(aconnector);
2716-
if (!sink)
2717-
return stream;
27182711
} else {
27192712
sink = aconnector->dc_sink;
27202713
}

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -205,40 +205,6 @@ static const struct drm_connector_funcs dm_dp_mst_connector_funcs = {
205205
.atomic_get_property = amdgpu_dm_connector_atomic_get_property
206206
};
207207

208-
void dm_dp_mst_dc_sink_create(struct drm_connector *connector)
209-
{
210-
struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
211-
struct dc_sink *dc_sink;
212-
struct dc_sink_init_data init_params = {
213-
.link = aconnector->dc_link,
214-
.sink_signal = SIGNAL_TYPE_DISPLAY_PORT_MST };
215-
216-
/* FIXME none of this is safe. we shouldn't touch aconnector here in
217-
* atomic_check
218-
*/
219-
220-
/*
221-
* TODO: Need to further figure out why ddc.algo is NULL while MST port exists
222-
*/
223-
if (!aconnector->port || !aconnector->port->aux.ddc.algo)
224-
return;
225-
226-
ASSERT(aconnector->edid);
227-
228-
dc_sink = dc_link_add_remote_sink(
229-
aconnector->dc_link,
230-
(uint8_t *)aconnector->edid,
231-
(aconnector->edid->extensions + 1) * EDID_LENGTH,
232-
&init_params);
233-
234-
dc_sink->priv = aconnector;
235-
aconnector->dc_sink = dc_sink;
236-
237-
if (aconnector->dc_sink)
238-
amdgpu_dm_update_freesync_caps(
239-
connector, aconnector->edid);
240-
}
241-
242208
static int dm_dp_mst_get_modes(struct drm_connector *connector)
243209
{
244210
struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,5 @@ struct amdgpu_dm_connector;
3131

3232
void amdgpu_dm_initialize_dp_connector(struct amdgpu_display_manager *dm,
3333
struct amdgpu_dm_connector *aconnector);
34-
void dm_dp_mst_dc_sink_create(struct drm_connector *connector);
3534

3635
#endif

0 commit comments

Comments
 (0)