From: Charlene Liu <[email protected]>

[why]
add dml1 used calculate_wm_and_dlg function pointer check to prevent crash.
add z8 watermarks to struct for later asic use

Reviewed-by: Alvin Lee <[email protected]>
Acked-by: Stylon Wang <[email protected]>
Signed-off-by: Charlene Liu <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c   | 3 ++-
 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c   | 4 ++--
 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c | 4 ++--
 drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h        | 2 ++
 4 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c 
b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c
index e6220ecf1d7d..88c0b24a3249 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c
@@ -2063,7 +2063,8 @@ bool dcn30_validate_bandwidth(struct dc *dc,
        }
 
        DC_FP_START();
-       dc->res_pool->funcs->calculate_wm_and_dlg(dc, context, pipes, pipe_cnt, 
vlevel);
+       if (dc->res_pool->funcs->calculate_wm_and_dlg)
+               dc->res_pool->funcs->calculate_wm_and_dlg(dc, context, pipes, 
pipe_cnt, vlevel);
        DC_FP_END();
 
        BW_VAL_TRACE_END_WATERMARKS();
diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c 
b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
index cdaa33707f5c..82de4fe2637f 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
@@ -1781,8 +1781,8 @@ bool dcn31_validate_bandwidth(struct dc *dc,
                BW_VAL_TRACE_SKIP(fast);
                goto validate_out;
        }
-
-       dc->res_pool->funcs->calculate_wm_and_dlg(dc, context, pipes, pipe_cnt, 
vlevel);
+       if (dc->res_pool->funcs->calculate_wm_and_dlg)
+               dc->res_pool->funcs->calculate_wm_and_dlg(dc, context, pipes, 
pipe_cnt, vlevel);
 
        BW_VAL_TRACE_END_WATERMARKS();
 
diff --git a/drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c 
b/drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c
index 4e09ba4f2806..1c1fb2fa0822 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c
@@ -1740,8 +1740,8 @@ bool dcn314_validate_bandwidth(struct dc *dc,
                BW_VAL_TRACE_SKIP(fast);
                goto validate_out;
        }
-
-       dc->res_pool->funcs->calculate_wm_and_dlg(dc, context, pipes, pipe_cnt, 
vlevel);
+       if (dc->res_pool->funcs->calculate_wm_and_dlg)
+               dc->res_pool->funcs->calculate_wm_and_dlg(dc, context, pipes, 
pipe_cnt, vlevel);
 
        BW_VAL_TRACE_END_WATERMARKS();
 
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h 
b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
index aaa293613846..f5677dbb4e7d 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
@@ -49,6 +49,8 @@ struct dcn_hubbub_wm_set {
        uint32_t dram_clk_change;
        uint32_t usr_retrain;
        uint32_t fclk_pstate_change;
+       uint32_t sr_enter_exit_Z8;
+       uint32_t sr_enter_Z8;
 };
 
 struct dcn_hubbub_wm {
-- 
2.41.0

Reply via email to