asoc: lpass-cdc: call runtime_suspend when vote fails
During adsp SSR, after adsp is down, lpass_cdc_runtime_resume is called in va-marco and fails. lpass_cdc_runtime_suspend is not called 100ms later. After adsp is up and va-macro considers lpass_cdc is resumed and not setting clk which causes wcd not detected. Call runtime_suspend when vote fails to resolve the issue. Change-Id: Ice398d0168c5c67f6c98e3122af507ca74837175 Signed-off-by: Meng Wang <mengw@codeaurora.org>
This commit is contained in:
@@ -711,10 +711,13 @@ static int lpass_cdc_va_macro_core_vote(void *handle, bool enable)
|
||||
}
|
||||
if (enable) {
|
||||
pm_runtime_get_sync(va_priv->dev);
|
||||
if (lpass_cdc_check_core_votes(va_priv->dev))
|
||||
if (lpass_cdc_check_core_votes(va_priv->dev)) {
|
||||
rc = 0;
|
||||
else
|
||||
} else {
|
||||
pm_runtime_put_autosuspend(va_priv->dev);
|
||||
pm_runtime_mark_last_busy(va_priv->dev);
|
||||
rc = -ENOTSYNC;
|
||||
}
|
||||
} else {
|
||||
pm_runtime_put_autosuspend(va_priv->dev);
|
||||
pm_runtime_mark_last_busy(va_priv->dev);
|
||||
|
Reference in New Issue
Block a user