ASoC: Intel: sof-rt5682: get bclk frequency from topology
authorBrent Lu <brent.lu@intel.com>
Fri, 26 Apr 2024 15:25:28 +0000 (10:25 -0500)
committerMark Brown <broonie@kernel.org>
Mon, 29 Apr 2024 14:49:20 +0000 (23:49 +0900)
A different bclk frequency 3.072MHz was introduced to tgl platform and
is used in mtl topologies. Use SOF API to get frequency from topology
instead of hardcoding.

Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Brent Lu <brent.lu@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20240426152529.38345-23-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_rt5682.c

index 6a79dd5271ccb7212e3446640ba4104926dcff0c..c3b026868653ad0cc1221b7c8e160f1c6e34f5e6 100644 (file)
@@ -317,7 +317,12 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream,
                        return -EINVAL;
                }
 
-               pll_in = params_rate(params) * 50;
+               /* get the tplg configured bclk. */
+               pll_in = sof_dai_get_bclk(rtd);
+               if (pll_in <= 0) {
+                       dev_err(rtd->dev, "invalid bclk freq %d\n", pll_in);
+                       return -EINVAL;
+               }
        }
 
        pll_out = params_rate(params) * 512;