Commit 540c1229 authored by Tao.Huang's avatar Tao.Huang Committed by Alex Deucher

drm/amd/display: fix resource saving missing when power state switch

Signed-off-by: default avatarTao.Huang <Tao.Huang@amd.com>
Reviewed-by: default avatarJun Lei <Jun.Lei@amd.com>
Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent c3e50f89
......@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment