diff options
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1094-drm-amd-display-Fixed-MST-SST-light-up.patch')
-rw-r--r-- | meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1094-drm-amd-display-Fixed-MST-SST-light-up.patch | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1094-drm-amd-display-Fixed-MST-SST-light-up.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1094-drm-amd-display-Fixed-MST-SST-light-up.patch new file mode 100644 index 00000000..d0be0e53 --- /dev/null +++ b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1094-drm-amd-display-Fixed-MST-SST-light-up.patch @@ -0,0 +1,108 @@ +From a18548d06f2943744f0d32423e6d2c863625e5dd Mon Sep 17 00:00:00 2001 +From: "Jerry (Fangzhi) Zuo" <Jerry.Zuo@amd.com> +Date: Wed, 3 Jan 2018 14:01:01 -0500 +Subject: [PATCH 1094/4131] drm/amd/display: Fixed MST+SST light up + +Signed-off-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@amd.com> +Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com> +Acked-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 25 ----------------------- + drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 24 ++++++++++++++++++++++ + 2 files changed, 24 insertions(+), 25 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +index f010039..483fcea 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +@@ -1217,7 +1217,6 @@ bool resource_validate_attach_surfaces( + + /* Maximum TMDS single link pixel clock 165MHz */ + #define TMDS_MAX_PIXEL_CLOCK_IN_KHZ 165000 +-#define TMDS_MAX_PIXEL_CLOCK_IN_KHZ_UPMOST 297000 + + static void set_stream_engine_in_use( + struct resource_context *res_ctx, +@@ -1326,28 +1325,6 @@ static struct audio *find_first_free_audio( + return 0; + } + +-static void update_stream_signal(struct dc_stream_state *stream) +-{ +- if (stream->output_signal == SIGNAL_TYPE_NONE) { +- struct dc_sink *dc_sink = stream->sink; +- +- if (dc_sink->sink_signal == SIGNAL_TYPE_NONE) +- stream->signal = stream->sink->link->connector_signal; +- else +- stream->signal = dc_sink->sink_signal; +- } else { +- stream->signal = stream->output_signal; +- } +- +- if (dc_is_dvi_signal(stream->signal)) { +- if (stream->timing.pix_clk_khz > TMDS_MAX_PIXEL_CLOCK_IN_KHZ_UPMOST && +- stream->sink->sink_signal != SIGNAL_TYPE_DVI_SINGLE_LINK) +- stream->signal = SIGNAL_TYPE_DVI_DUAL_LINK; +- else +- stream->signal = SIGNAL_TYPE_DVI_SINGLE_LINK; +- } +-} +- + bool resource_is_stream_unchanged( + struct validate_context *old_context, struct dc_stream_state *stream) + { +@@ -1428,8 +1405,6 @@ static int get_norm_pix_clk(const struct dc_crtc_timing *timing) + + static void calculate_phy_pix_clks(struct dc_stream_state *stream) + { +- update_stream_signal(stream); +- + /* update actual pixel clock on all streams */ + if (dc_is_hdmi_signal(stream->signal)) + stream->phy_pix_clk = get_norm_pix_clk( +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c +index 2de37fe..564c2ea 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c +@@ -33,6 +33,28 @@ + /******************************************************************************* + * Private functions + ******************************************************************************/ ++#define TMDS_MAX_PIXEL_CLOCK_IN_KHZ_UPMOST 297000 ++static void update_stream_signal(struct dc_stream_state *stream) ++{ ++ if (stream->output_signal == SIGNAL_TYPE_NONE) { ++ struct dc_sink *dc_sink = stream->sink; ++ ++ if (dc_sink->sink_signal == SIGNAL_TYPE_NONE) ++ stream->signal = stream->sink->link->connector_signal; ++ else ++ stream->signal = dc_sink->sink_signal; ++ } else { ++ stream->signal = stream->output_signal; ++ } ++ ++ if (dc_is_dvi_signal(stream->signal)) { ++ if (stream->timing.pix_clk_khz > TMDS_MAX_PIXEL_CLOCK_IN_KHZ_UPMOST && ++ stream->sink->sink_signal != SIGNAL_TYPE_DVI_SINGLE_LINK) ++ stream->signal = SIGNAL_TYPE_DVI_DUAL_LINK; ++ else ++ stream->signal = SIGNAL_TYPE_DVI_SINGLE_LINK; ++ } ++} + + static bool construct(struct dc_stream_state *stream, + struct dc_sink *dc_sink_data) +@@ -81,6 +103,8 @@ static bool construct(struct dc_stream_state *stream, + stream->timing.flags.LTE_340MCSC_SCRAMBLE = dc_sink_data->edid_caps.lte_340mcsc_scramble; + + stream->status.link = stream->sink->link; ++ ++ update_stream_signal(stream); + return true; + } + +-- +2.7.4 + |