mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 19:43:40 +02:00
drm/amd/display: Force flush after write to IPS driver signals
[Why] It's possible that the write hasn't fully completed by the time we send (and flush) a command to DMCUB to notify idle to request IPS2 exit. [How] Perform a readback of the volatile structure into dc_dmub_srv state. Reviewed-by: Charlene Liu <charlene.liu@amd.com> Acked-by: Aurabindo Pillai <aurabindo.pillai@amd.com> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@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
dc2be9c68f
commit
ef4af63e10
|
|
@ -1296,6 +1296,7 @@ static void dc_dmub_srv_notify_idle(const struct dc *dc, bool allow_idle)
|
|||
}
|
||||
|
||||
ips_driver->signals = new_signals;
|
||||
dc_dmub_srv->driver_signals = ips_driver->signals;
|
||||
}
|
||||
|
||||
DC_LOG_IPS(
|
||||
|
|
@ -1339,6 +1340,7 @@ static void dc_dmub_srv_exit_low_power_state(const struct dc *dc)
|
|||
ips2_exit_count = ips_fw->ips2_exit_count;
|
||||
|
||||
ips_driver->signals.all = 0;
|
||||
dc_dmub_srv->driver_signals = ips_driver->signals;
|
||||
|
||||
DC_LOG_IPS(
|
||||
"%s (allow ips1=%d ips2=%d) (commit ips1=%d ips2=%d) (count rcg=%d ips1=%d ips2=%d)",
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ struct dc_dmub_srv {
|
|||
void *dm;
|
||||
|
||||
int32_t idle_exit_counter;
|
||||
union dmub_shared_state_ips_driver_signals driver_signals;
|
||||
bool idle_allowed;
|
||||
bool needs_idle_wake;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user