From: Nicholas Kazlauskas Date: Thu, 28 Nov 2024 16:45:21 +0000 (-0500) Subject: Revert "drm/amd/display: Don't allow IPS2 in D0 for RCG Dynamic" X-Git-Tag: v6.14-rc1~174^2~14^2~76 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=670bae1037a5f741f2caee5b3ce504289fcbbc9b;p=thirdparty%2Fkernel%2Flinux.git Revert "drm/amd/display: Don't allow IPS2 in D0 for RCG Dynamic" This reverts commit 8488646966fe. In some test environments causes reporting failures for S0i3/S4. It shouldn't actually block entry provided there's no race with the last state being updated, but currently suspecting there's an IPS2 check that's no longer being met. Fixes: 8488646966fe ("drm/amd/display: Don't allow IPS2 in D0 for RCG Dynamic") Reviewed-by: Ovidiu Bunea Signed-off-by: Nicholas Kazlauskas Signed-off-by: Aurabindo Pillai Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c index 2c3672c411631..775c58637f46c 100644 --- a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c +++ b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c @@ -1313,8 +1313,7 @@ static void dc_dmub_srv_notify_idle(const struct dc *dc, bool allow_idle) new_signals.bits.allow_ips2 = 1; } else if (dc->config.disable_ips == DMUB_IPS_RCG_IN_ACTIVE_IPS2_IN_OFF) { /* TODO: Move this logic out to hwseq */ - if (dc_dmub_srv->last_power_state == DC_ACPI_CM_POWER_STATE_D3 && - count_active_streams(dc) == 0) { + if (count_active_streams(dc) == 0) { /* IPS2 - Display off */ new_signals.bits.allow_pg = 1; new_signals.bits.allow_ips1 = 1; @@ -1518,8 +1517,6 @@ void dc_dmub_srv_notify_fw_dc_power_state(struct dc_dmub_srv *dc_dmub_srv, } dc_wake_and_execute_dmub_cmd(dc_dmub_srv->ctx, &cmd, DM_DMUB_WAIT_TYPE_WAIT); - - dc_dmub_srv->last_power_state = power_state; } bool dc_dmub_srv_should_detect(struct dc_dmub_srv *dc_dmub_srv) diff --git a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h index 4763e652c9c7b..10b48198b7a62 100644 --- a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h +++ b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h @@ -56,7 +56,6 @@ struct dc_dmub_srv { union dmub_shared_state_ips_driver_signals driver_signals; bool idle_allowed; bool needs_idle_wake; - enum dc_acpi_cm_power_state last_power_state; }; void dc_dmub_srv_wait_idle(struct dc_dmub_srv *dc_dmub_srv);