From e649c7251753a62988fe3b8f69a058183219e6ce Mon Sep 17 00:00:00 2001 From: Sudheer Papothi Date: Tue, 1 Sep 2020 01:28:01 +0530 Subject: [PATCH] soc: soundwire: Fix soundwire audio core voting sequence Fix soundwire audio core voting sequence during sub system restart. Change-Id: I1653cc8b62083b5b736e661d608b0249e03f6093 Signed-off-by: Sudheer Papothi --- soc/swr-mstr-ctrl.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index 049266c9fdee..395869aef090 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -3229,16 +3229,19 @@ static int swrm_runtime_suspend(struct device *dev) swrm->ipc_wakeup_triggered = false; } } - } - if (swrm_request_hw_vote(swrm, LPASS_AUDIO_CORE, false)) - dev_dbg(dev, "%s:lpass audio hw enable failed\n", - __func__); /* Retain SSR state until resume */ if (current_state != SWR_MSTR_SSR) swrm->state = SWR_MSTR_DOWN; + exit: + if (current_state != SWR_MSTR_UP) { + if (swrm_request_hw_vote(swrm, LPASS_AUDIO_CORE, false)) + dev_dbg(dev, "%s:lpass audio hw enable failed\n", + __func__); + } + if (!hw_core_err) swrm_request_hw_vote(swrm, LPASS_HW_CORE, false); mutex_unlock(&swrm->reslock);