diff mbox series

[2/2] ASoC: da7219: do not request a new clock consummer reference

Message ID 20210428122632.46244-3-jbrunet@baylibre.com (mailing list archive)
State Accepted
Commit 97c733654ab4a5ac910216b4b74e605acf3e1cce
Headers show
Series ASoC: Revert clk_hw_get_clk() cleanup | expand

Commit Message

Jerome Brunet April 28, 2021, 12:26 p.m. UTC
This reverts commit 12f8127fe9e6154dd4197df97e44f3fd67583071.

There is problem with clk_hw_get_hw(). Using it pins the clock provider to
itself, making it impossible to remove the module.

Revert commit 12f8127fe9e6 ("ASoC: da7219: properly get clk from the
provider") until this gets sorted out.

Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
 sound/soc/codecs/da7219.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

Comments

Pierre-Louis Bossart April 28, 2021, 3:17 p.m. UTC | #1
On 4/28/21 7:26 AM, Jerome Brunet wrote:
> This reverts commit 12f8127fe9e6154dd4197df97e44f3fd67583071.
> 
> There is problem with clk_hw_get_hw(). Using it pins the clock provider to
> itself, making it impossible to remove the module.
> 
> Revert commit 12f8127fe9e6 ("ASoC: da7219: properly get clk from the
> provider") until this gets sorted out.
> 
> Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>

I added this patch in the SOF tree and the CI results are back to 
normal: https://sof-ci.01.org/linuxpr/PR2879/build5689/devicetest/

Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

Thanks Jerome, this was a surprising/hard-to-detect side effect.

> ---
>   sound/soc/codecs/da7219.c | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/sound/soc/codecs/da7219.c b/sound/soc/codecs/da7219.c
> index bd3c523a8617..13009d08b09a 100644
> --- a/sound/soc/codecs/da7219.c
> +++ b/sound/soc/codecs/da7219.c
> @@ -2181,10 +2181,7 @@ static int da7219_register_dai_clks(struct snd_soc_component *component)
>   				 ret);
>   			goto err;
>   		}
> -
> -		da7219->dai_clks[i] = devm_clk_hw_get_clk(dev, dai_clk_hw, NULL);
> -		if (IS_ERR(da7219->dai_clks[i]))
> -			return PTR_ERR(da7219->dai_clks[i]);
> +		da7219->dai_clks[i] = dai_clk_hw->clk;
>   
>   		/* For DT setup onecell data, otherwise create lookup */
>   		if (np) {
>
diff mbox series

Patch

diff --git a/sound/soc/codecs/da7219.c b/sound/soc/codecs/da7219.c
index bd3c523a8617..13009d08b09a 100644
--- a/sound/soc/codecs/da7219.c
+++ b/sound/soc/codecs/da7219.c
@@ -2181,10 +2181,7 @@  static int da7219_register_dai_clks(struct snd_soc_component *component)
 				 ret);
 			goto err;
 		}
-
-		da7219->dai_clks[i] = devm_clk_hw_get_clk(dev, dai_clk_hw, NULL);
-		if (IS_ERR(da7219->dai_clks[i]))
-			return PTR_ERR(da7219->dai_clks[i]);
+		da7219->dai_clks[i] = dai_clk_hw->clk;
 
 		/* For DT setup onecell data, otherwise create lookup */
 		if (np) {