Merge remote-tracking branch 'asoc/topic/intel' into asoc-next
[muen/linux.git] / sound / soc / intel / boards / bxt_da7219_max98357a.c
index 1429eb391da857e109a17d4fb3ecc0a3f4671a52..ce35ec7884d1e59873e184d3dd8f5bf0711806a6 100644 (file)
@@ -89,11 +89,6 @@ static int platform_clock_control(struct snd_soc_dapm_widget *w,
                if (ret)
                        dev_err(card->dev, "failed to stop PLL: %d\n", ret);
        } else if(SND_SOC_DAPM_EVENT_ON(event)) {
-               ret = snd_soc_dai_set_sysclk(codec_dai,
-                        DA7219_CLKSRC_MCLK, 19200000, SND_SOC_CLOCK_IN);
-               if (ret)
-                       dev_err(card->dev, "can't set codec sysclk configuration\n");
-
                ret = snd_soc_dai_set_pll(codec_dai, 0,
                        DA7219_SYSCLK_PLL_SRM, 0, DA7219_PLL_FREQ_OUT_98304);
                if (ret)
@@ -187,8 +182,17 @@ static int broxton_ssp_fixup(struct snd_soc_pcm_runtime *rtd,
 static int broxton_da7219_codec_init(struct snd_soc_pcm_runtime *rtd)
 {
        int ret;
+       struct snd_soc_dai *codec_dai = rtd->codec_dai;
        struct snd_soc_codec *codec = rtd->codec;
 
+       /* Configure sysclk for codec */
+       ret = snd_soc_dai_set_sysclk(codec_dai, DA7219_CLKSRC_MCLK, 19200000,
+                                    SND_SOC_CLOCK_IN);
+       if (ret) {
+               dev_err(rtd->dev, "can't set codec sysclk configuration\n");
+               return ret;
+       }
+
        /*
         * Headset buttons map to the google Reference headset.
         * These can be configured by userspace.