28 Jul
2020
28 Jul
'20
1:40 a.m.
Hi Ravulapati
+static int acp3x_1015_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params)
+{
- struct snd_soc_pcm_runtime *rtd = substream->private_data;
- struct snd_soc_dai *codec_dai;
- int srate, i, ret;
- ret = 0;
- srate = params_rate(params);
- for (i = 0; i < rtd->num_codecs; i++) {
You can use for_each_rtd_codec_dais() here
if (strcmp(rtd->codec_dais[i]->name, "rt1015-aif"))
continue;
codec_dai = rtd->codec_dais[i];
ret = snd_soc_dai_set_bclk_ratio(codec_dai, 64);
if (ret < 0) {
dev_err(codec_dai->dev,
"codec_dai bclk ratio not set\n");
return ret;
}
ret = snd_soc_dai_set_pll(codec_dai, 0, RT1015_PLL_S_BCLK,
64 * srate, 256 * srate);
if (ret < 0) {
dev_err(codec_dai->dev, "codec_dai PLL not set\n");
return ret;
}
ret = snd_soc_dai_set_sysclk(codec_dai, RT1015_SCLK_S_PLL,
256 * srate, SND_SOC_CLOCK_IN);
if (ret < 0) {
dev_err(codec_dai->dev,
"codec_dai sys clock not set\n");
return ret;
}
You don't need to use dev_err() for snd_soc_dai_xxx(). Current snd_soc_dai_xxx() will indicate error message in such case.
Thank you for your help !!
Best regards --- Kuninori Morimoto