diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1752-drm-amd-display-prefer-preferred-link-cap-over-verif.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1752-drm-amd-display-prefer-preferred-link-cap-over-verif.patch | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1752-drm-amd-display-prefer-preferred-link-cap-over-verif.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1752-drm-amd-display-prefer-preferred-link-cap-over-verif.patch new file mode 100644 index 00000000..41e31914 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1752-drm-amd-display-prefer-preferred-link-cap-over-verif.patch @@ -0,0 +1,75 @@ +From d02b76634a4316ab96827188d01333a42be7a67e Mon Sep 17 00:00:00 2001 +From: Wenjing Liu <Wenjing.Liu@amd.com> +Date: Fri, 22 Mar 2019 19:33:46 -0400 +Subject: [PATCH 1752/2940] drm/amd/display: prefer preferred link cap over + verified link settings + +[why] +when preferred link cap is set, we should always use +preferred in all validation. +we should not use preferred for some validation but use +verified for others. + +[how] +create getter function that gets verified link cap. +if preferred is set, return preferred link settings instead. + +Signed-off-by: Wenjing Liu <Wenjing.Liu@amd.com> +Reviewed-by: Nikola Cornij <Nikola.Cornij@amd.com> +Acked-by: Leo Li <sunpeng.li@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc.c | 9 +++++++++ + drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 2 +- + drivers/gpu/drm/amd/display/dc/dc_link.h | 3 +++ + 3 files changed, 13 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c +index 2401c679a70d..2a5ce47b25db 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c +@@ -603,6 +603,15 @@ uint32_t dc_link_bandwidth_kbps( + + } + ++const struct dc_link_settings *dc_link_get_verified_link_cap( ++ const struct dc_link *link) ++{ ++ if (link->preferred_link_setting.lane_count != LANE_COUNT_UNKNOWN && ++ link->preferred_link_setting.link_rate != LINK_RATE_UNKNOWN) ++ return &link->preferred_link_setting; ++ return &link->verified_link_cap; ++} ++ + static void destruct(struct dc *dc) + { + dc_release_state(dc->current_state); +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 0d8ef8f7cb58..acb4f829e042 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 +@@ -1549,7 +1549,7 @@ bool dp_validate_mode_timing( + return true; + + /* We always use verified link settings */ +- link_setting = &link->verified_link_cap; ++ link_setting = dc_link_get_verified_link_cap(link); + + /* TODO: DYNAMIC_VALIDATION needs to be implemented */ + /*if (flags.DYNAMIC_VALIDATION == 1 && +diff --git a/drivers/gpu/drm/amd/display/dc/dc_link.h b/drivers/gpu/drm/amd/display/dc/dc_link.h +index 7b61fb7b1bb7..4e26d6e93b31 100644 +--- a/drivers/gpu/drm/amd/display/dc/dc_link.h ++++ b/drivers/gpu/drm/amd/display/dc/dc_link.h +@@ -250,6 +250,9 @@ uint32_t dc_link_bandwidth_kbps( + const struct dc_link *link, + const struct dc_link_settings *link_setting); + ++const struct dc_link_settings *dc_link_get_verified_link_cap( ++ const struct dc_link *link); ++ + bool dc_submit_i2c( + struct dc *dc, + uint32_t link_index, +-- +2.17.1 + |