drm/amd/display: Disable boot optimization for DCN401
authorJoshua Aberback <joshua.aberback@amd.com>
Mon, 27 May 2024 22:24:00 +0000 (18:24 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Jun 2024 20:17:15 +0000 (16:17 -0400)
[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.lee2@amd.com>
Acked-by: Zaeem Mohamed <zaeem.mohamed@amd.com>
Signed-off-by: Joshua Aberback <joshua.aberback@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c

index 0b00fdf1297a17421db85e3c2ff4b643683f9c96..776ec8963cabb1de217c3efd7a3e4f138b33f3ac 100644 (file)
@@ -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);
index 7781a0342d677c4dc51d89367ef70195051339e1..ea803df8645e0e3c66ed04673a282904ced4f11e 100644 (file)
@@ -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(