struct drr_params params = {0};
        unsigned int event_triggers = 0;
 
+       if (dc->hwss.disable_stream_gating) {
+               dc->hwss.disable_stream_gating(dc, pipe_ctx);
+       }
+
        if (pipe_ctx->stream_res.audio != NULL) {
                struct audio_output audio_output;
 
        .set_static_screen_control = set_static_screen_control,
        .reset_hw_ctx_wrap = dce110_reset_hw_ctx_wrap,
        .enable_stream_timing = dce110_enable_stream_timing,
+       .disable_stream_gating = NULL,
+       .enable_stream_gating = NULL,
        .setup_stereo = NULL,
        .set_avmute = dce110_set_avmute,
        .wait_for_mpcc_disconnect = dce110_wait_for_mpcc_disconnect,
 
                        struct clock_source *old_clk = pipe_ctx_old->clock_source;
 
                        reset_back_end_for_pipe(dc, pipe_ctx_old, dc->current_state);
+                       if (dc->hwss.enable_stream_gating) {
+                               dc->hwss.enable_stream_gating(dc, pipe_ctx);
+                       }
                        if (old_clk)
                                old_clk->funcs->cs_power_down(old_clk);
                }
        }
-
 }
 
 static bool patch_address_for_sbs_tb_stereo(
        .edp_wait_for_hpd_ready = hwss_edp_wait_for_hpd_ready,
        .set_cursor_position = dcn10_set_cursor_position,
        .set_cursor_attribute = dcn10_set_cursor_attribute,
-       .set_cursor_sdr_white_level = dcn10_set_cursor_sdr_white_level
+       .set_cursor_sdr_white_level = dcn10_set_cursor_sdr_white_level,
+       .disable_stream_gating = NULL,
+       .enable_stream_gating = NULL
 };
 
 
 
 
 struct hw_sequencer_funcs {
 
+       void (*disable_stream_gating)(struct dc *dc, struct pipe_ctx *pipe_ctx);
+
+       void (*enable_stream_gating)(struct dc *dc, struct pipe_ctx *pipe_ctx);
+
        void (*init_hw)(struct dc *dc);
 
        void (*init_pipes)(struct dc *dc, struct dc_state *context);