From: Grazvydas Ignotas Date: Mon, 14 Apr 2014 00:23:41 +0000 (+0300) Subject: ASoC: pandora: set divider correctly for higher bit depths X-Git-Tag: sz_161~50 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=commitdiff_plain;h=6b647d6ae1e9f1c6448d455f7a42d0857365d500;hp=e7accd0b0918c99c705c5f6774e72f076cffc14f ASoC: pandora: set divider correctly for higher bit depths --- diff --git a/sound/soc/omap/omap3pandora.c b/sound/soc/omap/omap3pandora.c index 891f5306af07..796484d6e4f4 100644 --- a/sound/soc/omap/omap3pandora.c +++ b/sound/soc/omap/omap3pandora.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -49,6 +50,7 @@ static int omap3pandora_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_dai *cpu_dai = rtd->cpu_dai; + int divider; int ret; /* Set the codec system clock for DAC and ADC */ @@ -68,9 +70,13 @@ static int omap3pandora_hw_params(struct snd_pcm_substream *substream, return ret; } - ret = snd_soc_dai_set_clkdiv(cpu_dai, OMAP_MCBSP_CLKGDV, 8); + divider = 8; + if (snd_pcm_format_physical_width(params_format(params)) > 16) + divider = 4; + + ret = snd_soc_dai_set_clkdiv(cpu_dai, OMAP_MCBSP_CLKGDV, divider); if (ret < 0) { - pr_err(PREFIX "can't set SRG clock divider\n"); + pr_err(PREFIX "can't set SRG clock divider to %d\n", divider); return ret; }