memset(link_setting, 0, sizeof(*link_setting));
 
-       /* if preferred is specified through AMDDP, use it, if it's enough
-        * to drive the mode
-        */
-       if (link->preferred_link_setting.lane_count !=
-                       LANE_COUNT_UNKNOWN &&
-                       link->preferred_link_setting.link_rate !=
-                                       LINK_RATE_UNKNOWN) {
+       if (dc_is_dp_signal(stream->signal)  &&
+                       link->preferred_link_setting.lane_count != LANE_COUNT_UNKNOWN &&
+                       link->preferred_link_setting.link_rate != LINK_RATE_UNKNOWN) {
+               /* if preferred is specified through AMDDP, use it, if it's enough
+                * to drive the mode
+                */
                *link_setting = link->preferred_link_setting;
-               return true;
-       }
-
-       /* MST doesn't perform link training for now
-        * TODO: add MST specific link training routine
-        */
-       if (stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST) {
+       } else if (stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST) {
+               /* MST doesn't perform link training for now
+                * TODO: add MST specific link training routine
+                */
                decide_mst_link_settings(link, link_setting);
        } else if (link->connector_signal == SIGNAL_TYPE_EDP) {
                /* enable edp link optimization for DSC eDP case */