diff --git a/asoc/codecs/lpass-cdc/lpass-cdc-va-macro.c b/asoc/codecs/lpass-cdc/lpass-cdc-va-macro.c index e53c51c96b..6765201b6d 100644 --- a/asoc/codecs/lpass-cdc/lpass-cdc-va-macro.c +++ b/asoc/codecs/lpass-cdc/lpass-cdc-va-macro.c @@ -732,6 +732,10 @@ static int lpass_cdc_va_macro_tx_va_mclk_enable( TX_CORE_CLK, false); if (ret < 0) { + if (va_priv->swr_clk_users == 0) { + msm_cdc_pinctrl_select_sleep_state( + va_priv->va_swr_gpio_p); + } dev_err_ratelimited(va_priv->dev, "%s: swr request clk failed\n", __func__);