mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-06 20:45:16 +07:00
drm/amd/display: Preserve refcount for S3 case.
Curent_context is zerroed out for suspend, keep the refcount. Minor code move in dc_commit_context_no_check Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com> Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> Acked-by: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
587cdfe946
commit
60bf1860d2
@ -977,10 +977,10 @@ static bool dc_commit_context_no_check(struct dc *dc, struct validate_context *c
|
||||
|
||||
dc_release_validate_context(core_dc->current_context);
|
||||
|
||||
dc_retain_validate_context(context);
|
||||
|
||||
core_dc->current_context = context;
|
||||
|
||||
dc_retain_validate_context(core_dc->current_context);
|
||||
|
||||
return (result == DC_OK);
|
||||
}
|
||||
|
||||
@ -1065,8 +1065,6 @@ bool dc_commit_streams(
|
||||
|
||||
result = dc_commit_context_no_check(dc, context);
|
||||
|
||||
return (result == DC_OK);
|
||||
|
||||
fail:
|
||||
dc_release_validate_context(context);
|
||||
|
||||
@ -1736,6 +1734,7 @@ void dc_set_power_state(
|
||||
enum dc_acpi_cm_power_state power_state)
|
||||
{
|
||||
struct core_dc *core_dc = DC_TO_CORE(dc);
|
||||
int ref_count;
|
||||
|
||||
switch (power_state) {
|
||||
case DC_ACPI_CM_POWER_STATE_D0:
|
||||
@ -1749,8 +1748,13 @@ void dc_set_power_state(
|
||||
* clean state, and dc hw programming optimizations will not
|
||||
* cause any trouble.
|
||||
*/
|
||||
|
||||
/* Preserve refcount */
|
||||
ref_count = core_dc->current_context->ref_count;
|
||||
dc_resource_validate_ctx_destruct(core_dc->current_context);
|
||||
memset(core_dc->current_context, 0,
|
||||
sizeof(*core_dc->current_context));
|
||||
core_dc->current_context->ref_count = ref_count;
|
||||
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user