mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-10 10:08:21 +00:00
drm/amd/display: Don't allow IPS2 in D0 for RCG Dynamic
[Why] The existing changes to the DPMS off flag should help reduce accidental entry, but this change further restricts the entry condition. [How] Record last power state as sent to DMUB. Don't send IPS2 allow if it's D0. Reviewed-by: Ovidiu Bunea <ovidiu.bunea@amd.com> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Signed-off-by: Fangzhi Zuo <jerry.zuo@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
70fec46519
commit
8488646966
@ -1313,7 +1313,8 @@ 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 (count_active_streams(dc) == 0) {
|
||||
if (dc_dmub_srv->last_power_state == DC_ACPI_CM_POWER_STATE_D3 &&
|
||||
count_active_streams(dc) == 0) {
|
||||
/* IPS2 - Display off */
|
||||
new_signals.bits.allow_pg = 1;
|
||||
new_signals.bits.allow_ips1 = 1;
|
||||
@ -1517,6 +1518,8 @@ 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)
|
||||
|
@ -56,6 +56,7 @@ 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);
|
||||
|
Loading…
Reference in New Issue
Block a user