diff options
Diffstat (limited to 'drivers/gpu/drm/amd')
| -rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c index 8c1d084429dc..ace9ad578ca0 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | |||
| @@ -226,10 +226,6 @@ static int dm_dp_mst_get_modes(struct drm_connector *connector) | |||
| 226 | 226 | ||
| 227 | if (!aconnector->edid) { | 227 | if (!aconnector->edid) { |
| 228 | struct edid *edid; | 228 | struct edid *edid; |
| 229 | struct dc_sink *dc_sink; | ||
| 230 | struct dc_sink_init_data init_params = { | ||
| 231 | .link = aconnector->dc_link, | ||
| 232 | .sink_signal = SIGNAL_TYPE_DISPLAY_PORT_MST }; | ||
| 233 | edid = drm_dp_mst_get_edid(connector, &aconnector->mst_port->mst_mgr, aconnector->port); | 229 | edid = drm_dp_mst_get_edid(connector, &aconnector->mst_port->mst_mgr, aconnector->port); |
| 234 | 230 | ||
| 235 | if (!edid) { | 231 | if (!edid) { |
| @@ -240,11 +236,17 @@ static int dm_dp_mst_get_modes(struct drm_connector *connector) | |||
| 240 | } | 236 | } |
| 241 | 237 | ||
| 242 | aconnector->edid = edid; | 238 | aconnector->edid = edid; |
| 239 | } | ||
| 243 | 240 | ||
| 241 | if (!aconnector->dc_sink) { | ||
| 242 | struct dc_sink *dc_sink; | ||
| 243 | struct dc_sink_init_data init_params = { | ||
| 244 | .link = aconnector->dc_link, | ||
| 245 | .sink_signal = SIGNAL_TYPE_DISPLAY_PORT_MST }; | ||
| 244 | dc_sink = dc_link_add_remote_sink( | 246 | dc_sink = dc_link_add_remote_sink( |
| 245 | aconnector->dc_link, | 247 | aconnector->dc_link, |
| 246 | (uint8_t *)edid, | 248 | (uint8_t *)aconnector->edid, |
| 247 | (edid->extensions + 1) * EDID_LENGTH, | 249 | (aconnector->edid->extensions + 1) * EDID_LENGTH, |
| 248 | &init_params); | 250 | &init_params); |
| 249 | 251 | ||
| 250 | dc_sink->priv = aconnector; | 252 | dc_sink->priv = aconnector; |
| @@ -252,7 +254,7 @@ static int dm_dp_mst_get_modes(struct drm_connector *connector) | |||
| 252 | 254 | ||
| 253 | if (aconnector->dc_sink) | 255 | if (aconnector->dc_sink) |
| 254 | amdgpu_dm_add_sink_to_freesync_module( | 256 | amdgpu_dm_add_sink_to_freesync_module( |
| 255 | connector, edid); | 257 | connector, aconnector->edid); |
| 256 | } | 258 | } |
| 257 | 259 | ||
| 258 | drm_mode_connector_update_edid_property( | 260 | drm_mode_connector_update_edid_property( |
