[alsa-devel] [PATCH] ASoC: pandora: fix CLKX polarity
Mark Brown
broonie at opensource.wolfsonmicro.com
Thu Jun 17 17:50:01 CEST 2010
Acked-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
Probably best to add a CC to stable too. Sorry about the rubbish formatting, on my phone and it can't do any better.
Grazvydas Ignotas <notasas at gmail.com> wrote:
>After mass production started it was found that several boards exhibit
>noise problems during sound playback. After some investigation it was
>determined that CLKX polarity is set incorrectly, and even if most boards
>can tolerate the wrong setting, there are some that don't.
>
>Fix polarity setup in the board file. As the clock settings for input and
>output now match, merge in and out functions and structures to simplify
>code.
>
>Signed-off-by: Grazvydas Ignotas <notasas at gmail.com>
>---
> sound/soc/omap/omap3pandora.c | 36 ++++++++----------------------------
> 1 files changed, 8 insertions(+), 28 deletions(-)
>
>diff --git a/sound/soc/omap/omap3pandora.c b/sound/soc/omap/omap3pandora.c
>index 87ce842..9eecac1 100644
>--- a/sound/soc/omap/omap3pandora.c
>+++ b/sound/soc/omap/omap3pandora.c
>@@ -43,12 +43,14 @@
>
> static struct regulator *omap3pandora_dac_reg;
>
>-static int omap3pandora_cmn_hw_params(struct snd_pcm_substream *substream,
>- struct snd_pcm_hw_params *params, unsigned int fmt)
>+static int omap3pandora_hw_params(struct snd_pcm_substream *substream,
>+ struct snd_pcm_hw_params *params)
> {
> struct snd_soc_pcm_runtime *rtd = substream->private_data;
> struct snd_soc_dai *codec_dai = rtd->dai->codec_dai;
> struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
>+ int fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
>+ SND_SOC_DAIFMT_CBS_CFS;
> int ret;
>
> /* Set codec DAI configuration */
>@@ -91,24 +93,6 @@ static int omap3pandora_cmn_hw_params(struct snd_pcm_substream *substream,
> return 0;
> }
>
>-static int omap3pandora_out_hw_params(struct snd_pcm_substream *substream,
>- struct snd_pcm_hw_params *params)
>-{
>- return omap3pandora_cmn_hw_params(substream, params,
>- SND_SOC_DAIFMT_I2S |
>- SND_SOC_DAIFMT_IB_NF |
>- SND_SOC_DAIFMT_CBS_CFS);
>-}
>-
>-static int omap3pandora_in_hw_params(struct snd_pcm_substream *substream,
>- struct snd_pcm_hw_params *params)
>-{
>- return omap3pandora_cmn_hw_params(substream, params,
>- SND_SOC_DAIFMT_I2S |
>- SND_SOC_DAIFMT_NB_NF |
>- SND_SOC_DAIFMT_CBS_CFS);
>-}
>-
> static int omap3pandora_dac_event(struct snd_soc_dapm_widget *w,
> struct snd_kcontrol *k, int event)
> {
>@@ -231,12 +215,8 @@ static int omap3pandora_in_init(struct snd_soc_codec *codec)
> return snd_soc_dapm_sync(codec);
> }
>
>-static struct snd_soc_ops omap3pandora_out_ops = {
>- .hw_params = omap3pandora_out_hw_params,
>-};
>-
>-static struct snd_soc_ops omap3pandora_in_ops = {
>- .hw_params = omap3pandora_in_hw_params,
>+static struct snd_soc_ops omap3pandora_ops = {
>+ .hw_params = omap3pandora_hw_params,
> };
>
> /* Digital audio interface glue - connects codec <--> CPU */
>@@ -246,14 +226,14 @@ static struct snd_soc_dai_link omap3pandora_dai[] = {
> .stream_name = "HiFi Out",
> .cpu_dai = &omap_mcbsp_dai[0],
> .codec_dai = &twl4030_dai[TWL4030_DAI_HIFI],
>- .ops = &omap3pandora_out_ops,
>+ .ops = &omap3pandora_ops,
> .init = omap3pandora_out_init,
> }, {
> .name = "TWL4030",
> .stream_name = "Line/Mic In",
> .cpu_dai = &omap_mcbsp_dai[1],
> .codec_dai = &twl4030_dai[TWL4030_DAI_HIFI],
>- .ops = &omap3pandora_in_ops,
>+ .ops = &omap3pandora_ops,
> .init = omap3pandora_in_init,
> }
> };
>--
>1.6.3.3
>
More information about the Alsa-devel
mailing list