Re: [PATCH v3] ASoC: mediatek: Add second I2S on mt8173-rt5650 machine driver

From: PC Liao
Date: Thu Apr 07 2016 - 06:04:01 EST


Hi Matthias,

On Thu, 2016-04-07 at 17:50 +0800, Matthias Brugger wrote:
>
> On 07/04/16 09:35, PC Liao wrote:
> > diff --git a/sound/soc/mediatek/mt8173-rt5650.c b/sound/soc/mediatek/mt8173-rt5650.c
> > index bb09bb1..9f56df9 100644
> > --- a/sound/soc/mediatek/mt8173-rt5650.c
> > +++ b/sound/soc/mediatek/mt8173-rt5650.c
> > @@ -85,12 +85,26 @@ static int mt8173_rt5650_init(struct snd_soc_pcm_runtime *runtime)
> > {
> > struct snd_soc_card *card = runtime->card;
> > struct snd_soc_codec *codec = runtime->codec_dais[0]->codec;
> > + const char *codec_dai_capture = runtime->codec_dais[1]->name;
> > int ret;
> >
> > rt5645_sel_asrc_clk_src(codec,
> > - RT5645_DA_STEREO_FILTER |
> > - RT5645_AD_STEREO_FILTER,
> > - RT5645_CLK_SEL_I2S1_ASRC);
> > + RT5645_DA_STEREO_FILTER,
> > + RT5645_CLK_SEL_I2S1_ASRC);
> > +
> > + if (!strcmp(codec_dai_capture, "rt5645-aif1")) {
> > + rt5645_sel_asrc_clk_src(codec,
> > + RT5645_AD_STEREO_FILTER,
> > + RT5645_CLK_SEL_I2S1_ASRC);
> > + } else if (!strcmp(codec_dai_capture, "rt5645-aif2")) {
> > + rt5645_sel_asrc_clk_src(codec,
> > + RT5645_AD_STEREO_FILTER,
> > + RT5645_CLK_SEL_I2S2_ASRC);
> > + } else {
> > + dev_err(card->dev, "Can't get the right codec dai\n");
> > + return -EINVAL;
>
> For compatibility issues we should enable RT5645_CLK_SEL_I2S1_ASRC as
> default. BTW in the old version you enabled DA and AD filter while in
> the new version you just enable AD filter. What is the reason for that?
>
> Regards,
> Matthias

Thanks for comment.
I separate rt5645_sel_asrc_clk_src function into two parts.
I have and enable DA filter for I2S1 first.
Then, I use codec_dai_capture to determine which I2S AD filter I need.
Thanks!