diff --git a/asoc/codecs/bolero/va-macro.c b/asoc/codecs/bolero/va-macro.c index 068cdbe3d006..bdd33e77b455 100644 --- a/asoc/codecs/bolero/va-macro.c +++ b/asoc/codecs/bolero/va-macro.c @@ -226,19 +226,19 @@ static int va_macro_mclk_enable(struct va_macro_priv *va_priv, mutex_lock(&va_priv->mclk_lock); if (mclk_enable) { + ret = bolero_clk_rsc_request_clock(va_priv->dev, + va_priv->default_clk_id, + va_priv->clk_id, + true); + if (ret < 0) { + dev_err(va_priv->dev, + "%s: va request clock en failed\n", + __func__); + goto exit; + } + bolero_clk_rsc_fs_gen_request(va_priv->dev, + true); if (va_priv->va_mclk_users == 0) { - ret = bolero_clk_rsc_request_clock(va_priv->dev, - va_priv->default_clk_id, - va_priv->clk_id, - true); - if (ret < 0) { - dev_err(va_priv->dev, - "%s: va request clock en failed\n", - __func__); - goto exit; - } - bolero_clk_rsc_fs_gen_request(va_priv->dev, - true); regcache_mark_dirty(regmap); regcache_sync_region(regmap, VA_START_OFFSET, @@ -253,14 +253,12 @@ static int va_macro_mclk_enable(struct va_macro_priv *va_priv, goto exit; } va_priv->va_mclk_users--; - if (va_priv->va_mclk_users == 0) { - bolero_clk_rsc_fs_gen_request(va_priv->dev, - false); - bolero_clk_rsc_request_clock(va_priv->dev, - va_priv->default_clk_id, - va_priv->clk_id, - false); - } + bolero_clk_rsc_fs_gen_request(va_priv->dev, + false); + bolero_clk_rsc_request_clock(va_priv->dev, + va_priv->default_clk_id, + va_priv->clk_id, + false); } exit: mutex_unlock(&va_priv->mclk_lock);