From: Bing Guo Date: Mon, 4 Jan 2021 19:09:41 +0000 (-0500) Subject: drm/amd/display: Change function decide_dp_link_settings to avoid infinite looping X-Git-Tag: accepted/tizen/unified/20230118.172025~8044^2^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4716a7c50c5c66d6ddc42401e1e0ba13b492e105;p=platform%2Fkernel%2Flinux-rpi.git drm/amd/display: Change function decide_dp_link_settings to avoid infinite looping Why: Function decide_dp_link_settings() loops infinitely when required bandwidth can't be supported. How: Check the required bandwidth against verified_link_cap before trying to find a link setting for it. Tested-by: Daniel Wheeler Signed-off-by: Bing Guo Reviewed-by: Jun Lei Acked-by: Anson Jacob Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c index 1bd1a09..28b4b08 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c @@ -2399,6 +2399,9 @@ static bool decide_dp_link_settings(struct dc_link *link, struct dc_link_setting initial_link_setting; uint32_t link_bw; + if (req_bw > dc_link_bandwidth_kbps(link, &link->verified_link_cap)) + return false; + /* search for the minimum link setting that: * 1. is supported according to the link training result * 2. could support the b/w requested by the timing