#define RK_SPDIF_DBG(x...) do { } while (0)
#endif
-static int set_audio_clock_rate(unsigned long pll_rate,
- unsigned long audio_rate)
-{
- struct clk *sclk_spdif;
-#if defined(CONFIG_ARCH_RK30) || defined(CONFIG_ARCH_RK3188)
- struct clk *hclk_spdif;
-#endif
-
-#if defined(CONFIG_ARCH_RK30) || defined(CONFIG_ARCH_RK3188)
- hclk_spdif = clk_get(NULL, "hclk_spdif");
- if (IS_ERR(hclk_spdif)) {
- pr_err("spdif:failed to get hclk_spdif\n");
- return -ENOENT;
- }
-
- clk_set_rate(hclk_spdif, pll_rate);
- clk_put(hclk_spdif);
-#endif
-
- sclk_spdif = clk_get(NULL, "spdif");
- if (IS_ERR(sclk_spdif)) {
- pr_err("spdif:failed to get sclk_spdif\n");
- return -ENOENT;
- }
-
- clk_set_rate(sclk_spdif, audio_rate);
- clk_put(sclk_spdif);
-
- return 0;
-}
-
static int rk_hw_params(struct snd_pcm_substream *substream,
- struct snd_pcm_hw_params *params)
+ struct snd_pcm_hw_params *params)
{
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;
- unsigned long pll_out, rclk_rate, dai_fmt = rtd->dai_link->dai_fmt;
+ unsigned long pll_out, rclk_rate;
int ret, ratio;
RK_SPDIF_DBG("spdif:Entered %s\n", __func__);
- return 0;
-
- /* set codec DAI configuration */
- ret = snd_soc_dai_set_fmt(codec_dai, dai_fmt);
- if (ret < 0) {
- pr_err("%s():failed to set the format for codec side\n",
- __func__);
- return ret;
- }
-
- /* set cpu DAI configuration */
- ret = snd_soc_dai_set_fmt(cpu_dai, dai_fmt);
- if (ret < 0) {
- pr_err("%s():failed to set the format for cpu side\n",
- __func__);
- return ret;
- }
-
switch (params_rate(params)) {
case 44100:
pll_out = 11289600;
rclk_rate = params_rate(params) * ratio;
/* Set audio source clock rates */
- ret = set_audio_clock_rate(pll_out, rclk_rate);
+ ret = snd_soc_dai_set_sysclk(cpu_dai, 0,
+ rclk_rate, SND_SOC_CLOCK_IN);
if (ret < 0)
return ret;
ret = rockchip_of_get_sound_card_info_(card, false);
if (ret) {
pr_err("%s() get sound card info failed:%d\n",
- __func__, ret);
+ __func__, ret);
return ret;
}
if (ret)
pr_err("%s() register card failed:%d\n",
- __func__, ret);
+ __func__, ret);
return ret;
}