Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/display: To apply the adjusted DP ref clock for DP devices

[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 <nicholas.kazlauskas@amd.com>
Signed-off-by: Yiling Chen <yi-ling.chen2@amd.com>
Signed-off-by: Zaeem Mohamed <zaeem.mohamed@amd.com>
Tested-by: Mark Broadworth <mark.broadworth@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Yiling Chen and committed by
Alex Deucher
f53d0f48 eec64449

+5 -4
+5 -4
drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
··· 976 976 struct bp_pixel_clock_parameters bp_pc_params = {0}; 977 977 enum transmitter_color_depth bp_pc_colour_depth = TRANSMITTER_COLOR_DEPTH_24; 978 978 979 - // Apply ssed(spread spectrum) dpref clock for edp only. 980 - if (clock_source->ctx->dc->clk_mgr->dp_dto_source_clock_in_khz != 0 981 - && pix_clk_params->signal_type == SIGNAL_TYPE_EDP 982 - && encoding == DP_8b_10b_ENCODING) 979 + // Apply ssed(spread spectrum) dpref clock for edp and dp 980 + if (clock_source->ctx->dc->clk_mgr->dp_dto_source_clock_in_khz != 0 && 981 + dc_is_dp_signal(pix_clk_params->signal_type) && 982 + encoding == DP_8b_10b_ENCODING) 983 983 dp_dto_ref_khz = clock_source->ctx->dc->clk_mgr->dp_dto_source_clock_in_khz; 984 + 984 985 // For these signal types Driver to program DP_DTO without calling VBIOS Command table 985 986 if (dc_is_dp_signal(pix_clk_params->signal_type) || dc_is_virtual_signal(pix_clk_params->signal_type)) { 986 987 if (e) {