diff options
Diffstat (limited to 'drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c')
| -rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 33 | 
1 files changed, 11 insertions, 22 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 8bd92d2f2a58..653760cdbe7c 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -5709,13 +5709,13 @@ decide_crtc_timing_for_drm_display_mode(struct drm_display_mode *drm_mode,  }  static struct dc_sink * -create_fake_sink(struct dc_link *link) +create_fake_sink(struct amdgpu_dm_connector *aconnector)  {  	struct dc_sink_init_data sink_init_data = { 0 };  	struct dc_sink *sink = NULL; -	sink_init_data.link = link; -	sink_init_data.sink_signal = link->connector_signal; +	sink_init_data.link = aconnector->dc_link; +	sink_init_data.sink_signal = aconnector->dc_link->connector_signal;  	sink = dc_sink_create(&sink_init_data);  	if (!sink) { @@ -6086,7 +6086,6 @@ create_stream_for_sink(struct drm_connector *connector,  	enum color_transfer_func tf = TRANSFER_FUNC_UNKNOWN;  	struct dsc_dec_dpcd_caps dsc_caps; -	struct dc_link *link = NULL;  	struct dc_sink *sink = NULL;  	drm_mode_init(&mode, drm_mode); @@ -6100,24 +6099,14 @@ create_stream_for_sink(struct drm_connector *connector,  	if (connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK) {  		aconnector = NULL;  		aconnector = to_amdgpu_dm_connector(connector); -		link = aconnector->dc_link; -	} else { -		struct drm_writeback_connector *wbcon = NULL; -		struct amdgpu_dm_wb_connector *dm_wbcon = NULL; - -		wbcon = drm_connector_to_writeback(connector); -		dm_wbcon = to_amdgpu_dm_wb_connector(wbcon); -		link = dm_wbcon->link; -	} - -	if (!aconnector || !aconnector->dc_sink) { -		sink = create_fake_sink(link); -		if (!sink) -			return stream; - -	} else { -		sink = aconnector->dc_sink; -		dc_sink_retain(sink); +		if (!aconnector->dc_sink) { +			sink = create_fake_sink(aconnector); +			if (!sink) +				return stream; +		} else { +			sink = aconnector->dc_sink; +			dc_sink_retain(sink); +		}  	}  	stream = dc_create_stream_for_sink(sink);  | 
