From: Peter Ujfalusi Date: Tue, 24 Jan 2012 10:36:10 +0000 (+0200) Subject: ASoC: omap-abe-twl6040: Use provided MCLK frequency from pdata X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=62ba98ce4a74ef606e6a7f6c8541fc5e3127f944;p=openwrt%2Fstaging%2Fblogic.git ASoC: omap-abe-twl6040: Use provided MCLK frequency from pdata Avoid using hardwired configuration for MCLK frequency. Different board design might use other MCLK frequency. Signed-off-by: Peter Ujfalusi Acked-by: Mark Brown --- diff --git a/sound/soc/omap/omap-abe-twl6040.c b/sound/soc/omap/omap-abe-twl6040.c index 1da26031e26d..93bb8eee22b3 100644 --- a/sound/soc/omap/omap-abe-twl6040.c +++ b/sound/soc/omap/omap-abe-twl6040.c @@ -45,12 +45,15 @@ static int omap_abe_hw_params(struct snd_pcm_substream *substream, { struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_dai *codec_dai = rtd->codec_dai; + struct snd_soc_codec *codec = rtd->codec; + struct snd_soc_card *card = codec->card; + struct omap_abe_twl6040_data *pdata = dev_get_platdata(card->dev); int clk_id, freq; int ret; clk_id = twl6040_get_clk_id(rtd->codec); if (clk_id == TWL6040_SYSCLK_SEL_HPPLL) - freq = 38400000; + freq = pdata->mclk_freq; else if (clk_id == TWL6040_SYSCLK_SEL_LPPLL) freq = 32768; else @@ -298,6 +301,11 @@ static __devinit int omap_abe_probe(struct platform_device *pdev) return -ENODEV; } + if (!pdata->mclk_freq) { + dev_err(&pdev->dev, "MCLK frequency missing\n"); + return -ENODEV; + } + if (pdata->has_dmic) { card->dai_link = twl6040_dmic_dai; card->num_links = ARRAY_SIZE(twl6040_dmic_dai);