drm/amd/display: Adding debug option to override Z8 watermark values
authorLeo Chen <sancchen@amd.com>
Thu, 13 Apr 2023 21:37:49 +0000 (17:37 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 13:27:42 +0000 (09:27 -0400)
[Why & How]
Adding debug options to override Z8 watermark values for testing purposes.

Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Acked-by: Alan Liu <HaoPing.Liu@amd.com>
Signed-off-by: Leo Chen <sancchen@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c

index 892e3adb99d93c835c767353a19ed9712baa3687..fea68383bb61f6543673a8612c79cdcf2ff219b3 100644 (file)
@@ -700,6 +700,8 @@ struct dc_virtual_addr_space_config {
 struct dc_bounding_box_overrides {
        int sr_exit_time_ns;
        int sr_enter_plus_exit_time_ns;
+       int sr_exit_z8_time_ns;
+       int sr_enter_plus_exit_z8_time_ns;
        int urgent_latency_ns;
        int percent_of_ideal_drambw;
        int dram_clock_change_latency_ns;
@@ -769,6 +771,8 @@ struct dc_debug_options {
        int sr_enter_plus_exit_time_dpm0_ns;
        int sr_exit_time_ns;
        int sr_enter_plus_exit_time_ns;
+       int sr_exit_z8_time_ns;
+       int sr_enter_plus_exit_z8_time_ns;
        int urgent_latency_ns;
        uint32_t underflow_assert_delay_us;
        int percent_of_ideal_drambw;
index a5b1e4bb1a2229295827847ff7fbc46592a60a4a..3407f9a2c6a105fc47249478e7450e80ef7a8c15 100644 (file)
@@ -1890,6 +1890,17 @@ void dcn20_patch_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_st
                                dc->bb_overrides.sr_enter_plus_exit_time_ns / 1000.0;
        }
 
+       if ((int)(bb->sr_exit_z8_time_us * 1000)
+                               != dc->bb_overrides.sr_exit_z8_time_ns
+                       && dc->bb_overrides.sr_exit_z8_time_ns) {
+               bb->sr_exit_z8_time_us = dc->bb_overrides.sr_exit_z8_time_ns / 1000.0;
+       }
+
+       if ((int)(bb->sr_enter_plus_exit_z8_time_us * 1000)
+                               != dc->bb_overrides.sr_enter_plus_exit_z8_time_ns
+                       && dc->bb_overrides.sr_enter_plus_exit_z8_time_ns) {
+               bb->sr_enter_plus_exit_z8_time_us = dc->bb_overrides.sr_enter_plus_exit_z8_time_ns / 1000.0;
+       }
        if ((int)(bb->urgent_latency_us * 1000) != dc->bb_overrides.urgent_latency_ns
                        && dc->bb_overrides.urgent_latency_ns) {
                bb->urgent_latency_us = dc->bb_overrides.urgent_latency_ns / 1000.0;