aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2706-drm-amd-display-get-remote-dpcd-caps-for-timing-vali.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2706-drm-amd-display-get-remote-dpcd-caps-for-timing-vali.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2706-drm-amd-display-get-remote-dpcd-caps-for-timing-vali.patch104
1 files changed, 104 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2706-drm-amd-display-get-remote-dpcd-caps-for-timing-vali.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2706-drm-amd-display-get-remote-dpcd-caps-for-timing-vali.patch
new file mode 100644
index 00000000..eca48dfc
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2706-drm-amd-display-get-remote-dpcd-caps-for-timing-vali.patch
@@ -0,0 +1,104 @@
+From 7bde92425eb5fcdf830b54077e0965f36584ab6a Mon Sep 17 00:00:00 2001
+From: Eric Yang <Eric.Yang2@amd.com>
+Date: Mon, 23 Oct 2017 12:06:54 -0400
+Subject: [PATCH 2706/4131] drm/amd/display: get remote dpcd caps for timing
+ validation
+
+Signed-off-by: Eric Yang <Eric.Yang2@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2 +-
+ drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 2 +-
+ drivers/gpu/drm/amd/display/dc/dc.h | 1 +
+ drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 28 +++++++++++++++++++++++-
+ 4 files changed, 30 insertions(+), 3 deletions(-)
+
+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 be9a182..a6a762a 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+@@ -1869,7 +1869,7 @@ enum dc_status dc_link_validate_mode_timing(
+ const struct dc_crtc_timing *timing)
+ {
+ uint32_t max_pix_clk = stream->sink->dongle_max_pix_clk;
+- struct dc_dongle_caps *dongle_caps = &link->link_status.dpcd_caps->dongle_caps;
++ struct dc_dongle_caps *dongle_caps = &link->dpcd_caps.dongle_caps;
+
+ /* A hack to avoid failing any modes for EDID override feature on
+ * topology change such as lower quality cable for DP or different dongle
+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 8e97b42..cd87d85 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
+@@ -2132,7 +2132,7 @@ static void get_active_converter_info(
+
+ union dwnstream_port_caps_byte3_hdmi
+ hdmi_caps = {.raw = det_caps[3] };
+- union dwnstream_port_caps_byte1
++ union dwnstream_port_caps_byte2
+ hdmi_color_caps = {.raw = det_caps[2] };
+ link->dpcd_caps.dongle_caps.dp_hdmi_max_pixel_clk =
+ det_caps[1] * 25000;
+diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
+index 4217285..be5024d 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc.h
++++ b/drivers/gpu/drm/amd/display/dc/dc.h
+@@ -1043,6 +1043,7 @@ struct dc_sink {
+
+ /* private to dc_sink.c */
+ struct kref refcount;
++
+ };
+
+ void dc_sink_retain(struct dc_sink *sink);
+diff --git a/drivers/gpu/drm/amd/display/dc/dc_dp_types.h b/drivers/gpu/drm/amd/display/dc/dc_dp_types.h
+index 77e2de6..2726b02 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc_dp_types.h
++++ b/drivers/gpu/drm/amd/display/dc/dc_dp_types.h
+@@ -255,7 +255,7 @@ enum dpcd_downstream_port_detailed_type {
+ DOWN_STREAM_DETAILED_DP_PLUS_PLUS
+ };
+
+-union dwnstream_port_caps_byte1 {
++union dwnstream_port_caps_byte2 {
+ struct {
+ uint8_t MAX_BITS_PER_COLOR_COMPONENT:2;
+ uint8_t RESERVED:6;
+@@ -298,6 +298,32 @@ union dwnstream_port_caps_byte3_hdmi {
+
+ /*4-byte structure for detailed capabilities of a down-stream port
+ (DP-to-TMDS converter).*/
++union dwnstream_portxcaps {
++ struct {
++ union dwnstream_port_caps_byte0 byte0;
++ unsigned char max_TMDS_clock; //byte1
++ union dwnstream_port_caps_byte2 byte2;
++
++ union {
++ union dwnstream_port_caps_byte3_dvi byteDVI;
++ union dwnstream_port_caps_byte3_hdmi byteHDMI;
++ } byte3;
++ } bytes;
++
++ unsigned char raw[4];
++};
++
++union downstream_port {
++ struct {
++ unsigned char present:1;
++ unsigned char type:2;
++ unsigned char format_conv:1;
++ unsigned char detailed_caps:1;
++ unsigned char reserved:3;
++ } bits;
++ unsigned char raw;
++};
++
+
+ union sink_status {
+ struct {
+--
+2.7.4
+