ASoC: rockchip: hdmi_analog: set sysclk for codec dai
authorSugar Zhang <sugar.zhang@rock-chips.com>
Tue, 27 Jun 2017 01:38:46 +0000 (09:38 +0800)
committerJianqun Xu <jay.xu@rock-chips.com>
Tue, 27 Jun 2017 07:08:46 +0000 (15:08 +0800)
Change-Id: Ia9eabcc482451c64897b6d9d09d484da77624cbb
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
sound/soc/rockchip/rockchip_hdmi_analog.c

index e4a4a993e29a0f710f872b363a86a58fffa363a9..3642cec00a04e8c5577b7a7b25579ebd290c9f1c 100644 (file)
@@ -40,6 +40,7 @@ static int rk_hdmi_analog_hw_params(struct snd_pcm_substream *substream,
        int ret = 0;
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+       struct snd_soc_dai *codec_dai = rtd->codec_dai;
        int mclk;
 
        switch (params_rate(params)) {
@@ -76,6 +77,13 @@ static int rk_hdmi_analog_hw_params(struct snd_pcm_substream *substream,
                return ret;
        }
 
+       ret = snd_soc_dai_set_sysclk(codec_dai, 0, mclk,
+                                    SND_SOC_CLOCK_IN);
+       if (ret && ret != -ENOTSUPP) {
+               dev_err(codec_dai->dev, "Can't set codec clock %d\n", ret);
+               return ret;
+       }
+
        return 0;
 }