diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0675-drm-amd-dal-fix-in-stream-encoder-allocation.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0675-drm-amd-dal-fix-in-stream-encoder-allocation.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0675-drm-amd-dal-fix-in-stream-encoder-allocation.patch b/common/recipes-kernel/linux/files/0675-drm-amd-dal-fix-in-stream-encoder-allocation.patch new file mode 100644 index 00000000..610aca0a --- /dev/null +++ b/common/recipes-kernel/linux/files/0675-drm-amd-dal-fix-in-stream-encoder-allocation.patch @@ -0,0 +1,45 @@ +From dd54dd6d5d123f4e3fa6abda61a96a740342b7bb Mon Sep 17 00:00:00 2001 +From: Mykola Lysenko <Mykola.Lysenko@amd.com> +Date: Thu, 7 Jan 2016 18:39:43 +0800 +Subject: [PATCH 0675/1110] drm/amd/dal: fix in stream encoder allocation + +In case preferred stream for non-MST link already +acquired, pick-up left free stream encoder + +Signed-off-by: Mykola Lysenko <Mykola.Lysenko@amd.com> +Acked-by: Jordan Lazare <Jordan.Lazare@amd.com> +--- + drivers/gpu/drm/amd/dal/dc/dce_base/dce_base_resource.c | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/amd/dal/dc/dce_base/dce_base_resource.c b/drivers/gpu/drm/amd/dal/dc/dce_base/dce_base_resource.c +index 3633402..1b091be 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce_base/dce_base_resource.c ++++ b/drivers/gpu/drm/amd/dal/dc/dce_base/dce_base_resource.c +@@ -106,10 +106,19 @@ static struct stream_encoder *find_first_free_match_stream_enc_for_link( + } + } + +- /* TODO: Handle MST properly +- * Currently pick next available stream encoder if found*/ +- if (j >= 0 && link->public.sink[0]->sink_signal == +- SIGNAL_TYPE_DISPLAY_PORT_MST) ++ /* ++ * below can happen in cases when stream encoder is acquired: ++ * 1) for second MST display in chain, so preferred engine already ++ * acquired; ++ * 2) for another link, which preferred engine already acquired by any ++ * MST configuration. ++ * ++ * If signal is of DP type and preferred engine not found, return last available ++ * ++ * TODO - This is just a patch up and a generic solution is ++ * required for non DP connectors. ++ */ ++ if (j >= 0 && dc_is_dp_signal(link->public.sink[0]->sink_signal)) + return res_ctx->pool.stream_enc[j]; + + return NULL; +-- +2.7.4 + |