Re: [PATCH v2] ASoC: fsl-asoc-card: Get "extal" clock rate by clk_get_rate

From: Shengjiu Wang
Date: Mon Aug 10 2020 - 04:50:40 EST


On Mon, Aug 10, 2020 at 4:39 PM Nicolin Chen <nicoleotsuka@xxxxxxxxx> wrote:
>
> On Mon, Aug 10, 2020 at 04:11:43PM +0800, Shengjiu Wang wrote:
> > On some platform(.e.g. i.MX8QM MEK), the "extal" clock is different
> > with the mclk of codec, then the clock rate is also different.
> > So it is better to get clock rate of "extal" rate by clk_get_rate,
> > don't reuse the clock rate of mclk.
> >
> > Signed-off-by: Shengjiu Wang <shengjiu.wang@xxxxxxx>
> > ---
> > changes in v2
> > - add defer probe handler
> >
> > sound/soc/fsl/fsl-asoc-card.c | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/sound/soc/fsl/fsl-asoc-card.c b/sound/soc/fsl/fsl-asoc-card.c
> > index 52adedc03245..32f8f756e6bb 100644
> > --- a/sound/soc/fsl/fsl-asoc-card.c
> > +++ b/sound/soc/fsl/fsl-asoc-card.c
> > @@ -696,6 +696,17 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
> > goto asrc_fail;
> > }
> > } else if (of_node_name_eq(cpu_np, "esai")) {
> > + struct clk *esai_clk = clk_get(&cpu_pdev->dev, "extal");
> > +
> > + if (!IS_ERR(esai_clk)) {
> > + priv->cpu_priv.sysclk_freq[TX] = clk_get_rate(esai_clk);
> > + priv->cpu_priv.sysclk_freq[RX] = clk_get_rate(esai_clk);
>
> Will it break existing imx-audio-cs42888 on older i.MX platforms?
> 'cause it overwrites cpu_priv.sysclk_freq[] that are set in "card
> configurations" section.

Tested, no break for imx6.

best regards
wang shengjiu