diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3044-drm-amd-display-Read-max-down-spread.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3044-drm-amd-display-Read-max-down-spread.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3044-drm-amd-display-Read-max-down-spread.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3044-drm-amd-display-Read-max-down-spread.patch new file mode 100644 index 00000000..3f14f76f --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3044-drm-amd-display-Read-max-down-spread.patch @@ -0,0 +1,47 @@ +From 341e27e01cf40e83b168b22c11a56acb537ec292 Mon Sep 17 00:00:00 2001 +From: Derek Lai <Derek.Lai@amd.com> +Date: Tue, 18 Jun 2019 14:55:57 +0800 +Subject: [PATCH 3044/4256] drm/amd/display: Read max down spread + +[Why] +When launch D10.2, driver will write DPCD 0x107 with 0x00 + +[How] +Read MAX_DOWNSPREAD (0x0003h) then keep in current +link settings + +Signed-off-by: Derek Lai <Derek.Lai@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-by: Leo Li <sunpeng.li@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc_link.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c +index 168b853434d7..fdce64c288c5 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c +@@ -530,6 +530,7 @@ static void read_edp_current_link_settings_on_detect(struct dc_link *link) + uint32_t read_dpcd_retry_cnt = 10; + enum dc_status status = DC_ERROR_UNEXPECTED; + int i; ++ union max_down_spread max_down_spread = { {0} }; + + // Read DPCD 00101h to find out the number of lanes currently set + for (i = 0; i < read_dpcd_retry_cnt; i++) { +@@ -574,6 +575,12 @@ static void read_edp_current_link_settings_on_detect(struct dc_link *link) + link->cur_link_settings.link_rate = link_bw_set; + link->cur_link_settings.use_link_rate_set = false; + } ++ // Read DPCD 00003h to find the max down spread. ++ core_link_read_dpcd(link, DP_MAX_DOWNSPREAD, ++ &max_down_spread.raw, sizeof(max_down_spread)); ++ link->cur_link_settings.link_spread = ++ max_down_spread.bits.MAX_DOWN_SPREAD ? ++ LINK_SPREAD_05_DOWNSPREAD_30KHZ : LINK_SPREAD_DISABLED; + } + + static bool detect_dp( +-- +2.17.1 + |