Re: [PATCH v3] ASoC: amd: add support for rt5682 codec in machine driver

From: Mukunda,Vijendar
Date: Tue Mar 16 2021 - 09:21:04 EST




On 15/03/21 9:30 pm, Pierre-Louis Bossart wrote:

+static int rt5682_clk_enable(struct snd_pcm_substream *substream)
+{
+    int ret;
+    struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
+
+    /*
+     * Set wclk to 48000 because the rate constraint of this driver is
+     * 48000. ADAU7002 spec: "The ADAU7002 requires a BCLK rate that is
+     * minimum of 64x the LRCLK sample rate." RT5682 is the only clk
+     * source so for all codecs we have to limit bclk to 64X lrclk.
+     */
+    clk_set_rate(rt5682_dai_wclk, 48000);
+    clk_set_rate(rt5682_dai_bclk, 48000 * 64);
+    ret = clk_prepare_enable(rt5682_dai_bclk);
+    if (ret < 0) {
+        dev_err(rtd->dev, "can't enable master clock %d\n", ret);
+        return ret;
+    }
+    return ret;
+}

Out of curiosity, is there a reason why you use clk_prepare_enable() for the bclk but not for the wclk?These changes were shared by codec vendor as an initial patch.
We should use clk_prepare_enable() for wclk not for bclk.
We will update and share the new patch.