diff --git a/asoc/codecs/bolero/tx-macro.c b/asoc/codecs/bolero/tx-macro.c index c6cd78c23c30..af81fe588c73 100644 --- a/asoc/codecs/bolero/tx-macro.c +++ b/asoc/codecs/bolero/tx-macro.c @@ -1519,6 +1519,8 @@ static int tx_macro_tx_va_mclk_enable(struct tx_macro_priv *tx_priv, __func__); goto done; } + bolero_clk_rsc_fs_gen_request(tx_priv->dev, + true); if (tx_priv->tx_mclk_users == 0) { regmap_update_bits(regmap, BOLERO_CDC_TX_TOP_CSR_FREQ_MCLK, @@ -1580,6 +1582,8 @@ static int tx_macro_tx_va_mclk_enable(struct tx_macro_priv *tx_priv, BOLERO_CDC_TX_CLK_RST_CTRL_MCLK_CONTROL, 0x01, 0x00); } + bolero_clk_rsc_fs_gen_request(tx_priv->dev, + false); ret = bolero_clk_rsc_request_clock(tx_priv->dev, TX_CORE_CLK, VA_CORE_CLK, @@ -2072,6 +2076,7 @@ static int tx_macro_probe(struct platform_device *pdev) pm_runtime_set_autosuspend_delay(&pdev->dev, AUTO_SUSPEND_DELAY); pm_runtime_use_autosuspend(&pdev->dev); pm_runtime_set_suspended(&pdev->dev); + pm_suspend_ignore_children(&pdev->dev, true); pm_runtime_enable(&pdev->dev); return 0;