From: Joshua Aberback <joshua.aberb...@amd.com>

[Why]
DCN401 currently has an issue re-enabling when pipe splitting is enabled,
while the root cause is being investigated we can make sure everything is
being reset as a workaround, by disabling boot optimization.

[How]
 - use enable_accelerated_mode instead of init_pipes to fully reset asic

Reviewed-by: Alvin Lee <alvin.l...@amd.com>
Acked-by: Zaeem Mohamed <zaeem.moha...@amd.com>
Signed-off-by: Joshua Aberback <joshua.aberb...@amd.com>
---
 .../gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c    | 9 ++++++++-
 .../drm/amd/display/dc/resource/dcn401/dcn401_resource.c | 1 +
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c 
b/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
index 0b00fdf1297a..776ec8963cab 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
@@ -304,7 +304,14 @@ void dcn401_init_hw(struct dc *dc)
         * everything down.
         */
        if (dcb->funcs->is_accelerated_mode(dcb) || 
!dc->config.seamless_boot_edp_requested) {
-               hws->funcs.init_pipes(dc, dc->current_state);
+               /* Disable boot optimizations means power down everything 
including PHY, DIG,
+                * and OTG (i.e. the boot is not optimized because we do a full 
power down).
+                */
+               if (dc->hwss.enable_accelerated_mode && 
dc->debug.disable_boot_optimizations)
+                       dc->hwss.enable_accelerated_mode(dc, dc->current_state);
+               else
+                       hws->funcs.init_pipes(dc, dc->current_state);
+
                if (dc->res_pool->hubbub->funcs->allow_self_refresh_control)
                        
dc->res_pool->hubbub->funcs->allow_self_refresh_control(dc->res_pool->hubbub,
                                        
!dc->res_pool->hubbub->ctx->dc->debug.disable_stutter);
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c 
b/drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
index 7781a0342d67..ea803df8645e 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
@@ -733,6 +733,7 @@ static const struct dc_debug_options debug_defaults_drv = {
        .force_cositing = CHROMA_COSITING_TOPLEFT + 1,
        .disable_idle_power_optimizations = true,
        .edp_oled_no_backlight_enable = true,
+       .disable_boot_optimizations = true,
 };
 
 static struct dce_aux *dcn401_aux_engine_create(
-- 
2.34.1

Reply via email to