disp: msm: sde: drop suspend state if commit is skipped

Drop refcount on pm_suspend commit state if atomic
commit is skipped due to failure. It will avoid frame
trigger during pm_resume call.

Change-Id: Iecd98b106454c82c81a1ef9faaf1af4be2bf19e6
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
This commit is contained in:
Jayaprakash Madisetty 2023-01-23 22:57:06 +05:30
commit a4fdef4c12

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2014-2021, The Linux Foundation. All rights reserved.
* Copyright (C) 2013 Red Hat
* Author: Rob Clark <robdclark@gmail.com>
@ -3907,6 +3907,7 @@ retry:
DRM_ERROR("failed to get crtc %d state\n",
conn->state->crtc->base.id);
drm_connector_list_iter_end(&conn_iter);
ret = -EINVAL;
goto unlock;
}
@ -3945,6 +3946,12 @@ unlock:
drm_modeset_backoff(&ctx);
goto retry;
}
if ((ret || !num_crtcs) && sde_kms->suspend_state) {
drm_atomic_state_put(sde_kms->suspend_state);
sde_kms->suspend_state = NULL;
}
drm_modeset_drop_locks(&ctx);
drm_modeset_acquire_fini(&ctx);
@ -3985,7 +3992,8 @@ static int sde_kms_pm_resume(struct device *dev)
SDE_EVT32(sde_kms->suspend_state != NULL);
drm_mode_config_reset(ddev);
if (sde_kms->suspend_state)
drm_mode_config_reset(ddev);
drm_modeset_acquire_init(&ctx, 0);
retry: