dm_state ? (dm_state->scaling != RMX_OFF) : false);
        }
 
+       drm_mode_set_crtcinfo(&mode, 0);
        fill_stream_properties_from_drm_display_mode(stream,
                        &mode, &aconnector->base);
        update_stream_scaling_settings(&mode, dm_state, stream);
                drm_connector,
                aconnector->dc_sink);
 
+       update_stream_signal(stream);
+
        return stream;
 }
 
                goto fail;
        }
 
-       drm_mode_set_crtcinfo(mode, 0);
-       fill_stream_properties_from_drm_display_mode(stream, mode, connector);
-
-       stream->src.width = mode->hdisplay;
-       stream->src.height = mode->vdisplay;
-       stream->dst = stream->src;
-
        dc_result = dc_validate_stream(adev->dm.dc, stream);
 
        if (dc_result == DC_OK)
 
 /*******************************************************************************
  * Private functions
  ******************************************************************************/
-static void update_stream_signal(struct dc_stream_state *stream)
+void update_stream_signal(struct dc_stream_state *stream)
 {
 
        struct dc_sink *dc_sink = stream->sink;
 
  */
 struct dc_stream_state *dc_create_stream_for_sink(struct dc_sink *dc_sink);
 
+void update_stream_signal(struct dc_stream_state *stream);
+
 void dc_stream_retain(struct dc_stream_state *dc_stream);
 void dc_stream_release(struct dc_stream_state *dc_stream);