ASoC: pxa-ssp: enable and disable extclk if given
authorDaniel Mack <daniel@zonque.org>
Wed, 3 Oct 2018 19:36:27 +0000 (21:36 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 4 Oct 2018 10:41:38 +0000 (11:41 +0100)
If a "extclk" clock is given, enable and disable it when appropriate.

Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/pxa/pxa-ssp.c

index 69033e1a84e6ad52ef7c01b395af3a8f48a91c15..adcf8ba9d287ab852e664f546b9e3cc36af43c09 100644 (file)
@@ -103,6 +103,9 @@ static int pxa_ssp_startup(struct snd_pcm_substream *substream,
                pxa_ssp_disable(ssp);
        }
 
+       if (priv->extclk)
+               clk_prepare_enable(priv->extclk);
+
        dma = kzalloc(sizeof(struct snd_dmaengine_dai_dma_data), GFP_KERNEL);
        if (!dma)
                return -ENOMEM;
@@ -125,6 +128,9 @@ static void pxa_ssp_shutdown(struct snd_pcm_substream *substream,
                clk_disable_unprepare(ssp->clk);
        }
 
+       if (priv->extclk)
+               clk_disable_unprepare(priv->extclk);
+
        kfree(snd_soc_dai_get_dma_data(cpu_dai, substream));
        snd_soc_dai_set_dma_data(cpu_dai, substream, NULL);
 }