ASoC: Intel: sof_cs42l42: use helper function to get bclk frequency
authorBrent Lu <brent.lu@intel.com>
Fri, 25 Jun 2021 20:50:42 +0000 (15:50 -0500)
committerMark Brown <broonie@kernel.org>
Sun, 11 Jul 2021 22:48:31 +0000 (23:48 +0100)
Use sof_dai_get_bclk() function to get bclk frequency instead of a
hard-coded magic number depending on configuration in topology.

Reviewed-by: Bard Liao <bard.liao@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/20210625205042.65181-5-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_cs42l42.c

index 42aadf8..2b16011 100644 (file)
@@ -16,6 +16,7 @@
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
+#include <sound/sof.h>
 #include <sound/soc-acpi.h>
 #include <dt-bindings/sound/cs42l42.h>
 #include "../../codecs/hdac_hdmi.h"
@@ -122,7 +123,12 @@ static int sof_cs42l42_hw_params(struct snd_pcm_substream *substream,
        struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
        int clk_freq, ret;
 
-       clk_freq = 3072000; /* BCLK freq */
+       clk_freq = sof_dai_get_bclk(rtd); /* BCLK freq */
+
+       if (clk_freq <= 0) {
+               dev_err(rtd->dev, "get bclk freq failed: %d\n", clk_freq);
+               return -EINVAL;
+       }
 
        /* Configure sysclk for codec */
        ret = snd_soc_dai_set_sysclk(codec_dai, 0,