aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1752-drm-amd-display-prefer-preferred-link-cap-over-verif.patch
diff options
context:
space:
mode:
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.patch75
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
+