allocate_mst_payload(pipe_ctx);
 
 #ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT
-               if (pipe_ctx->stream->timing.flags.DSC &&
-                               (dc_is_dp_signal(pipe_ctx->stream->signal) ||
-                               dc_is_virtual_signal(pipe_ctx->stream->signal))) {
-                       dp_set_dsc_enable(pipe_ctx, true);
+               if (pipe_ctx->stream->timing.flags.DSC) {
+                       if (dc_is_dp_signal(pipe_ctx->stream->signal) ||
+                                       dc_is_virtual_signal(pipe_ctx->stream->signal))
+                               dp_set_dsc_enable(pipe_ctx, true);
                        pipe_ctx->stream_res.tg->funcs->wait_for_state(
                                        pipe_ctx->stream_res.tg,
                                        CRTC_STATE_VBLANK);
 
        disable_link(pipe_ctx->stream->link, pipe_ctx->stream->signal);
 #ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT
-       if (pipe_ctx->stream->timing.flags.DSC &&
-                       dc_is_dp_signal(pipe_ctx->stream->signal)) {
-               dp_set_dsc_enable(pipe_ctx, false);
+       if (pipe_ctx->stream->timing.flags.DSC) {
+               if (dc_is_dp_signal(pipe_ctx->stream->signal))
+                       dp_set_dsc_enable(pipe_ctx, false);
        }
 #endif
 }
 
 
 /* This has to be done after DSC was enabled on RX first, i.e. after dp_enable_dsc_on_rx() had been called
  */
-static void dp_set_dsc_on_stream(struct pipe_ctx *pipe_ctx, bool enable)
+void set_dsc_on_stream(struct pipe_ctx *pipe_ctx, bool enable)
 {
        struct display_stream_compressor *dsc = pipe_ctx->stream_res.dsc;
        struct dc *core_dc = pipe_ctx->stream->ctx->dc;
 
                dsc_optc_config_log(dsc, &dsc_optc_cfg);
                /* Enable DSC in encoder */
-               if (!IS_FPGA_MAXIMUS_DC(core_dc->ctx->dce_environment) && pipe_ctx->stream_res.stream_enc->funcs->dp_set_dsc_config)
+               if (dc_is_dp_signal(stream->signal) && !IS_FPGA_MAXIMUS_DC(core_dc->ctx->dce_environment))
                        pipe_ctx->stream_res.stream_enc->funcs->dp_set_dsc_config(pipe_ctx->stream_res.stream_enc,
                                                                        optc_dsc_mode,
                                                                        dsc_optc_cfg.bytes_per_pixel,
                                OPTC_DSC_DISABLED, 0, 0);
 
                /* disable DSC in stream encoder */
-               if (!IS_FPGA_MAXIMUS_DC(core_dc->ctx->dce_environment)) {
+               if (dc_is_dp_signal(stream->signal) && !IS_FPGA_MAXIMUS_DC(core_dc->ctx->dce_environment))
                        pipe_ctx->stream_res.stream_enc->funcs->dp_set_dsc_config(
                                        pipe_ctx->stream_res.stream_enc,
                                        OPTC_DSC_DISABLED, 0, 0, NULL);
-               }
 
                /* disable DSC block */
                pipe_ctx->stream_res.dsc->funcs->dsc_disable(pipe_ctx->stream_res.dsc);
 
        if (enable) {
                if (dp_set_dsc_on_rx(pipe_ctx, true)) {
-                       dp_set_dsc_on_stream(pipe_ctx, true);
+                       set_dsc_on_stream(pipe_ctx, true);
                        result = true;
                }
        } else {
                dp_set_dsc_on_rx(pipe_ctx, false);
-               dp_set_dsc_on_stream(pipe_ctx, false);
+               set_dsc_on_stream(pipe_ctx, false);
                result = true;
        }
 out:
        if (!dsc)
                return false;
 
-       dp_set_dsc_on_stream(pipe_ctx, true);
+       set_dsc_on_stream(pipe_ctx, true);
        return true;
 }