break;
        case DRM_MODE_CONNECTOR_DisplayPort:
                aconnector->base.polled = DRM_CONNECTOR_POLL_HPD;
-               if (link->is_dig_mapping_flexible &&
-                   link->dc->res_pool->funcs->link_encs_assign) {
-                       link->link_enc =
-                               link_enc_cfg_get_link_enc_used_by_link(link->ctx->dc, link);
-                       if (!link->link_enc)
-                               link->link_enc =
-                                       link_enc_cfg_get_next_avail_link_enc(link->ctx->dc);
-               }
-
+               link->link_enc = dp_get_link_enc(link);
+               ASSERT(link->link_enc);
                if (link->link_enc)
                        aconnector->base.ycbcr_420_allowed =
                        link->link_enc->features.dp_ycbcr420_supported ? true : false;
 
        }
 }
 
+struct link_encoder *dp_get_link_enc(struct dc_link *link)
+{
+       struct link_encoder *link_enc;
+
+       link_enc = link->link_enc;
+       if (link->is_dig_mapping_flexible &&
+           link->dc->res_pool->funcs->link_encs_assign) {
+               link_enc = link_enc_cfg_get_link_enc_used_by_link(link->ctx->dc,
+                                                                 link);
+               if (!link->link_enc)
+                       link_enc = link_enc_cfg_get_next_avail_link_enc(
+                               link->ctx->dc);
+       }
+
+       return link_enc;
+}
+
 void dpcd_set_source_specific_data(struct dc_link *link)
 {
        if (!link->dc->vendor_signature.is_valid) {
 
 
 enum dc_status dp_set_fec_ready(struct dc_link *link, bool ready);
 void dp_set_fec_enable(struct dc_link *link, bool enable);
+struct link_encoder *dp_get_link_enc(struct dc_link *link);
 bool dp_set_dsc_enable(struct pipe_ctx *pipe_ctx, bool enable);
 bool dp_set_dsc_pps_sdp(struct pipe_ctx *pipe_ctx, bool enable, bool immediate_update);
 void dp_set_dsc_on_stream(struct pipe_ctx *pipe_ctx, bool enable);