aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3659-drm-amd-display-Default-HDMI6G-support-to-true.-Log-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3659-drm-amd-display-Default-HDMI6G-support-to-true.-Log-.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3659-drm-amd-display-Default-HDMI6G-support-to-true.-Log-.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3659-drm-amd-display-Default-HDMI6G-support-to-true.-Log-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3659-drm-amd-display-Default-HDMI6G-support-to-true.-Log-.patch
new file mode 100644
index 00000000..383577ff
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3659-drm-amd-display-Default-HDMI6G-support-to-true.-Log-.patch
@@ -0,0 +1,67 @@
+From 47cb93962ff9e4fb891fce5c39f4f2fb4f6b87a5 Mon Sep 17 00:00:00 2001
+From: Harry Wentland <harry.wentland@amd.com>
+Date: Tue, 20 Feb 2018 13:36:23 -0500
+Subject: [PATCH 3659/4131] drm/amd/display: Default HDMI6G support to true.
+ Log VBIOS table error.
+
+There have been many reports of Ellesmere and Baffin systems not being
+able to drive HDMI 4k60 due to the fact that we check the HDMI_6GB_EN
+bit from VBIOS table. Windows seems to not have this issue.
+
+On some systems we fail to the encoder cap info from VBIOS. In that case
+we should default to enabling HDMI6G support.
+
+This was tested by dwagner on
+https://bugs.freedesktop.org/show_bug.cgi?id=102820
+
+Signed-off-by: Harry Wentland <harry.wentland@amd.com>
+Reviewed-by: Roman Li <Roman.Li@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dce/dce_link_encoder.c | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_link_encoder.c b/drivers/gpu/drm/amd/display/dc/dce/dce_link_encoder.c
+index f0d63ac..81776e4 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce/dce_link_encoder.c
++++ b/drivers/gpu/drm/amd/display/dc/dce/dce_link_encoder.c
+@@ -678,6 +678,7 @@ void dce110_link_encoder_construct(
+ {
+ struct bp_encoder_cap_info bp_cap_info = {0};
+ const struct dc_vbios_funcs *bp_funcs = init_data->ctx->dc_bios->funcs;
++ enum bp_result result = BP_RESULT_OK;
+
+ enc110->base.funcs = &dce110_lnk_enc_funcs;
+ enc110->base.ctx = init_data->ctx;
+@@ -752,15 +753,24 @@ void dce110_link_encoder_construct(
+ enc110->base.preferred_engine = ENGINE_ID_UNKNOWN;
+ }
+
++ /* default to one to mirror Windows behavior */
++ enc110->base.features.flags.bits.HDMI_6GB_EN = 1;
++
++ result = bp_funcs->get_encoder_cap_info(enc110->base.ctx->dc_bios,
++ enc110->base.id, &bp_cap_info);
++
+ /* Override features with DCE-specific values */
+- if (BP_RESULT_OK == bp_funcs->get_encoder_cap_info(
+- enc110->base.ctx->dc_bios, enc110->base.id,
+- &bp_cap_info)) {
++ if (BP_RESULT_OK == result) {
+ enc110->base.features.flags.bits.IS_HBR2_CAPABLE =
+ bp_cap_info.DP_HBR2_EN;
+ enc110->base.features.flags.bits.IS_HBR3_CAPABLE =
+ bp_cap_info.DP_HBR3_EN;
+ enc110->base.features.flags.bits.HDMI_6GB_EN = bp_cap_info.HDMI_6GB_EN;
++ } else {
++ dm_logger_write(enc110->base.ctx->logger, LOG_WARNING,
++ "%s: Failed to get encoder_cap_info from VBIOS with error code %d!\n",
++ __func__,
++ result);
+ }
+ }
+
+--
+2.7.4
+