diff options
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-.patch | 67 |
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 + |