FAILED: patch "[PATCH] drm/amd/display: Revert "Guard ASSR with internal display" failed to apply to 5.13-stable tree
[email protected]
maintainerThe patch below does not apply to the 5.13-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 715bfff397634c44d616e27e11c873be1d442977 Mon Sep 17 00:00:00 2001
From: Stylon Wang <[email protected]>
Date: Thu, 10 Jun 2021 14:11:57 +0800
Subject: [PATCH] drm/amd/display: Revert "Guard ASSR with internal display
flag"
This reverts commit 9127daa0a8d88a6e6452eb8b7c9be4c3f42a867e.
[Why]
1. Previous patch regresses on some embedded panels.
2. Project coreboot doesn't support passing of internal display flag.
[How]
This reverts "Guard ASSR with internal display flag" commit.
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +17 -41
@@ -1760,42 +1760,6 @@ enum link_training_result dc_link_dp_perform_link_training(return status; } -static enum dp_panel_mode try_enable_assr (struct dc_stream_state *stream) -{ -struct dc_link *link = stream->link; -enum dp_panel_mode panel_mode =dp_get_panel_mode (link); -#ifdef CONFIG_DRM_AMD_DC_HDCP -struct cp_psp *cp_psp = &stream->ctx->cp_psp; -#endif - -/* ASSR must be supported on the panel */ -if (panel_mode ==DP_PANEL_MODE_DEFAULT ) -return panel_mode; - -/* eDP or internal DP only */ -if (link->connector_signal !=SIGNAL_TYPE_EDP && - !(link->connector_signal ==SIGNAL_TYPE_DISPLAY_PORT && - link->is_internal_display)) -return DP_PANEL_MODE_DEFAULT ; - -#ifdef CONFIG_DRM_AMD_DC_HDCP -if (cp_psp && cp_psp->funcs.enable_assr) { -if (!cp_psp->funcs.enable_assr (cp_psp->handle, link)) { -/* since eDP implies ASSR on, change panel -* mode to disable ASSR -*/ - panel_mode =DP_PANEL_MODE_DEFAULT ; - } - }else - panel_mode =DP_PANEL_MODE_DEFAULT ; - -#else -/* turn off ASSR if the implementation is not compiled in */ - panel_mode =DP_PANEL_MODE_DEFAULT ; -#endif -return panel_mode; -} - bool perform_link_training_with_retries( const struct dc_link_settings *link_setting, bool skip_video_pattern,
@@ -1808,7 +1772,7 @@ bool perform_link_training_with_retries(uint8_t delay_between_attempts =LINK_TRAINING_RETRY_DELAY ;struct dc_stream_state *stream = pipe_ctx->stream;struct dc_link *link = stream->link; -enum dp_panel_mode panel_mode; +enum dp_panel_mode panel_mode =dp_get_panel_mode (link);struct link_encoder *link_enc;enum link_training_result status =LINK_TRAINING_CR_FAIL_LANE0 ;struct dc_link_settings current_setting = *link_setting;
@@ -1845,11 +1809,23 @@ bool perform_link_training_with_retries(msleep (delay_dp_power_up_in_ms); } - panel_mode =try_enable_assr (stream); +#ifdef CONFIG_DRM_AMD_DC_HDCP +if (panel_mode ==DP_PANEL_MODE_EDP ) { +struct cp_psp *cp_psp = &stream->ctx->cp_psp; + +if (cp_psp && cp_psp->funcs.enable_assr) { +if (!cp_psp->funcs.enable_assr (cp_psp->handle, link)) { +/* since eDP implies ASSR on, change panel +* mode to disable ASSR +*/ + panel_mode =DP_PANEL_MODE_DEFAULT ; + } + }else + panel_mode =DP_PANEL_MODE_DEFAULT ; + } +#endif +dp_set_panel_mode (link, panel_mode); -DC_LOG_DETECTION_DP_CAPS ("Link: %d ASSR enabled: %d\n" , - link->link_index, - panel_mode !=DP_PANEL_MODE_DEFAULT );if (link->aux_access_disabled) {dc_link_dp_perform_link_training_skip_aux (link, ¤t_setting);