From: Charlene Liu <[email protected]>

[why]
Need to add function hook check before use

Reviewed-by: Mohit Bawa <[email protected]>
Signed-off-by: Charlene Liu <[email protected]>
Signed-off-by: Chenyu Chen <[email protected]>
---
 .../drm/amd/display/dc/hwss/dce110/dce110_hwseq.c    | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c 
b/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
index ebdb885826aa..c5761f3ed0ae 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c
@@ -1846,6 +1846,9 @@ static void disable_vga_and_power_gate_all_controllers(
        struct timing_generator *tg;
        struct dc_context *ctx = dc->ctx;
 
+       if (dc->caps.ips_support)
+               return;
+
        for (i = 0; i < dc->res_pool->timing_generator_count; i++) {
                tg = dc->res_pool->timing_generators[i];
 
@@ -1922,13 +1925,16 @@ static void clean_up_dsc_blocks(struct dc *dc)
                        /* disable DSC in OPTC */
                        if (i < dc->res_pool->timing_generator_count) {
                                tg = dc->res_pool->timing_generators[i];
-                               tg->funcs->set_dsc_config(tg, 
OPTC_DSC_DISABLED, 0, 0);
+                               if (tg->funcs->set_dsc_config)
+                                       tg->funcs->set_dsc_config(tg, 
OPTC_DSC_DISABLED, 0, 0);
                        }
                        /* disable DSC in stream encoder */
                        if (i < dc->res_pool->stream_enc_count) {
                                se = dc->res_pool->stream_enc[i];
-                               se->funcs->dp_set_dsc_config(se, 
OPTC_DSC_DISABLED, 0, 0);
-                               se->funcs->dp_set_dsc_pps_info_packet(se, 
false, NULL, true);
+                               if (se->funcs->dp_set_dsc_config)
+                                       se->funcs->dp_set_dsc_config(se, 
OPTC_DSC_DISABLED, 0, 0);
+                               if (se->funcs->dp_set_dsc_pps_info_packet)
+                                       
se->funcs->dp_set_dsc_pps_info_packet(se, false, NULL, true);
                        }
                        /* disable DSC block */
                        if (dccg->funcs->set_ref_dscclk)
-- 
2.43.0

Reply via email to