mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-27 09:14:43 +07:00
drm/amd/display: fix resource saving missing when power state switch
Signed-off-by: Tao.Huang <Tao.Huang@amd.com> Reviewed-by: Jun Lei <Jun.Lei@amd.com> Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
c3e50f8900
commit
540c122924
@ -1930,6 +1930,12 @@ void dc_set_power_state(
|
||||
enum dc_acpi_cm_power_state power_state)
|
||||
{
|
||||
struct kref refcount;
|
||||
struct display_mode_lib *dml = kzalloc(sizeof(struct display_mode_lib),
|
||||
GFP_KERNEL);
|
||||
|
||||
ASSERT(dml);
|
||||
if (!dml)
|
||||
return;
|
||||
|
||||
switch (power_state) {
|
||||
case DC_ACPI_CM_POWER_STATE_D0:
|
||||
@ -1946,15 +1952,20 @@ void dc_set_power_state(
|
||||
|
||||
/* Preserve refcount */
|
||||
refcount = dc->current_state->refcount;
|
||||
/* Preserve display mode lib */
|
||||
memcpy(dml, &dc->current_state->bw_ctx.dml, sizeof(struct display_mode_lib));
|
||||
|
||||
dc_resource_state_destruct(dc->current_state);
|
||||
memset(dc->current_state, 0,
|
||||
sizeof(*dc->current_state));
|
||||
|
||||
dc->current_state->refcount = refcount;
|
||||
dc->current_state->bw_ctx.dml = *dml;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
kfree(dml);
|
||||
}
|
||||
|
||||
void dc_resume(struct dc *dc)
|
||||
|
Loading…
Reference in New Issue
Block a user