Re: [PATCH] ASoC: fsl_sai: Correct the clock source for mclk0
From: Shengjiu Wang
Date: Thu Nov 19 2020 - 01:05:12 EST
On Thu, Nov 19, 2020 at 1:54 PM Nicolin Chen <nicoleotsuka@xxxxxxxxx> wrote:
>
> On Thu, Nov 19, 2020 at 01:28:32PM +0800, Shengjiu Wang wrote:
> > On Thu, Nov 19, 2020 at 1:02 PM Nicolin Chen <nicoleotsuka@xxxxxxxxx> wrote:
> > >
> > > On Thu, Nov 19, 2020 at 10:29:16AM +0800, Shengjiu Wang wrote:
> > > > On VF610, mclk0 = bus_clk;
> > > > On i.MX6SX/6UL/6ULL/7D, mclk0 = mclk1;
> > > > On i.MX7ULP, mclk0 = bus_clk;
> > > > On i.MX8QM/8QXP, mclk0 = bus_clk;
> > > > On i.MX8MQ/8MN/8MM/8MP, mclk0 = bus_clk;
> > > >
> > > > So add variable mclk0_mclk1_match in fsl_sai_soc_data To
> > >
> > > Not in favor of "mclk0_mclk1_match" as it doesn't sound explicit
> > > to me. Instead, "mclk0_is_bus_clk" or "mclk0_is_mclk1" might be
> > > better. Or in case that you foresee some other implementation:
> > >
> > > enum {
> > > MCLK0_IS_BUS_CLK,
> > > MCLK0_IS_MCLK1,
> > > };
> > >
> > > static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
> > > + .mclk0_alias = MCLK0_IS_BUS_CLK,
> > > };
> >
> > No problem.
> >
> > But I just find this patch doesn't consider the mqs case.
> > MCLK0 can't be used for mqs, it needs MCLK1, even
> > the MCLK0 is same as MCLK1, MCLK1 need to be
> > selected for mqs case.
> >
> > Is there a decent way for this case?
>
> Is there any use case that we have to use MCLK0 instead of MCLK1
> on SoCs where MCLK0=MCLK1? If no, how about skip MCLK0 at all in
> the for-loop at fsl_sai_set_bclk?
>
> /*
> * There is no point in polling MCLK0 if it is identical to MCLK1.
> * And given that MQS use case has to use MCLK1 though two clocks
> * are the same, we simply skip MCLK0 and start to find from MCLK1.
> */
> id = mclk0_is_mclk1 ? 1 : 0;
>
> for (; id < FSL_SAI_MCLK_MAX; id++) {
Ok, thanks, will update the patch.
best regards
wang shengjiu