]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Refactor for Replay Link off frame count
authorDennis Chan <dennis.chan@amd.com>
Tue, 9 Apr 2024 06:25:39 +0000 (14:25 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 30 Apr 2024 13:53:12 +0000 (09:53 -0400)
[why]
To refine for link off frame count in diagnose tool,
the driver show the link off frame count number instead of showing link
off frame count level.

Reviewed-by: ChunTao Tso <chuntao.tso@amd.com>
Reviewed-by: Robin Chen <robin.chen@amd.com>
Acked-by: Wayne Lin <wayne.lin@amd.com>
Signed-off-by: Dennis Chan <dennis.chan@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dc_types.h
drivers/gpu/drm/amd/display/modules/power/power_helpers.c

index d79de4780151d6cf478efcc778c42e3f5af62576..cee012587e6e465dde3a3eebbf985d1b26e245af 100644 (file)
@@ -1092,7 +1092,7 @@ struct replay_settings {
        /* Coasting vtotal table */
        uint32_t coasting_vtotal_table[PR_COASTING_TYPE_NUM];
        /* Maximum link off frame count */
-       enum replay_link_off_frame_count_level link_off_frame_count_level;
+       uint32_t link_off_frame_count;
        /* Replay pseudo vtotal for abm + ips on full screen video which can improve ips residency */
        uint16_t abm_with_ips_on_full_screen_video_pseudo_vtotal;
        /* Replay last pseudo vtotal set to DMUB */
index 2a3698fd2dc242e6927d1c9c399197f1ccb3f40c..530379508a696d13ac145123eb743e8d0ba6db34 100644 (file)
@@ -994,16 +994,12 @@ void calculate_replay_link_off_frame_count(struct dc_link *link,
        max_deviation_line = link->dpcd_caps.pr_info.max_deviation_line;
        pixel_deviation_per_line = link->dpcd_caps.pr_info.pixel_deviation_per_line;
 
-       if (htotal != 0 && vtotal != 0)
+       if (htotal != 0 && vtotal != 0 && pixel_deviation_per_line != 0)
                max_link_off_frame_count = htotal * max_deviation_line / (pixel_deviation_per_line * vtotal);
        else
                ASSERT(0);
 
-       link->replay_settings.link_off_frame_count_level =
-               max_link_off_frame_count >= PR_LINK_OFF_FRAME_COUNT_BEST ? PR_LINK_OFF_FRAME_COUNT_BEST :
-               max_link_off_frame_count >= PR_LINK_OFF_FRAME_COUNT_GOOD ? PR_LINK_OFF_FRAME_COUNT_GOOD :
-               PR_LINK_OFF_FRAME_COUNT_FAIL;
-
+       link->replay_settings.link_off_frame_count = max_link_off_frame_count;
 }
 
 bool fill_custom_backlight_caps(unsigned int config_no, struct dm_acpi_atif_backlight_caps *caps)