From: yi-lchen <[email protected]>

[Why]
For some pixel clock margin sensitive external monitor,
we could not keep original DP ref clock for the ASICs
supported SSC DP ref clock.

[How]
>From slicon design team's comment,
we have to apply the adjusted DP ref clock for
DP devices.
DP 128b (DP2) signals uses the DTBCLK not DP ref.

Reviewed-by: Nicholas Kazlauskas <[email protected]>
Signed-off-by: Yi-Ling Chen <[email protected]>
Signed-off-by: Zaeem Mohamed <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c 
b/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
index 077337698e0a..b4f5b4a6331a 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
@@ -976,11 +976,12 @@ static bool dcn31_program_pix_clk(
        struct bp_pixel_clock_parameters bp_pc_params = {0};
        enum transmitter_color_depth bp_pc_colour_depth = 
TRANSMITTER_COLOR_DEPTH_24;
 
-       // Apply ssed(spread spectrum) dpref clock for edp only.
-       if (clock_source->ctx->dc->clk_mgr->dp_dto_source_clock_in_khz != 0
-               && pix_clk_params->signal_type == SIGNAL_TYPE_EDP
-               && encoding == DP_8b_10b_ENCODING)
+       // Apply ssed(spread spectrum) dpref clock for edp and dp
+       if (clock_source->ctx->dc->clk_mgr->dp_dto_source_clock_in_khz != 0 &&
+               dc_is_dp_signal(pix_clk_params->signal_type) &&
+               encoding == DP_8b_10b_ENCODING)
                dp_dto_ref_khz = 
clock_source->ctx->dc->clk_mgr->dp_dto_source_clock_in_khz;
+
        // For these signal types Driver to program DP_DTO without calling 
VBIOS Command table
        if (dc_is_dp_signal(pix_clk_params->signal_type) || 
dc_is_virtual_signal(pix_clk_params->signal_type)) {
                if (e) {
-- 
2.34.1

Reply via email to