From fbdfbbbfa0e544afd022cd89ef0ae63c9aacaf7b Mon Sep 17 00:00:00 2001 From: Jarkko Nikula Date: Fri, 30 Sep 2011 16:07:44 +0300 Subject: [PATCH] --- yaml --- r: 270719 b: refs/heads/master c: 4dd0417253be35bfbe368c40ec5a10732b24fd65 h: refs/heads/master i: 270717: 3b003c92149b6743b1988a9d9119d6a0ccf95a81 270715: 5d42f39c2a7a84c6850a73e4d3bb9138f68111de 270711: ce725a03387d244468c93c04875925f758b370e1 270703: 271ea358644796adae02950d61c817121db8484f 270687: d3732e8a8bea124b800959ef54ea41e7a3c6b763 270655: 0da7848df50f80fc34c9991adf7ed576792032bf 270591: 70662e0ace2a32e774e3300135ea7ad89d73404c v: v3 --- [refs] | 2 +- trunk/sound/soc/omap/omap-mcbsp.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index f52acc904eb9..3b9933564f7f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 177fdd89f9c3f3f157c0b5e0f9c25a3a7c37ecf7 +refs/heads/master: 4dd0417253be35bfbe368c40ec5a10732b24fd65 diff --git a/trunk/sound/soc/omap/omap-mcbsp.c b/trunk/sound/soc/omap/omap-mcbsp.c index 894f2f33f508..7f700610b3cb 100644 --- a/trunk/sound/soc/omap/omap-mcbsp.c +++ b/trunk/sound/soc/omap/omap-mcbsp.c @@ -317,6 +317,10 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream, return 0; } + regs->rcr2 &= ~(RPHASE | RFRLEN2(0x7f) | RWDLEN2(7)); + regs->xcr2 &= ~(RPHASE | XFRLEN2(0x7f) | XWDLEN2(7)); + regs->rcr1 &= ~(RFRLEN1(0x7f) | RWDLEN1(7)); + regs->xcr1 &= ~(XFRLEN1(0x7f) | XWDLEN1(7)); format = mcbsp_data->fmt & SND_SOC_DAIFMT_FORMAT_MASK; wpf = channels = params_channels(params); if (channels == 2 && (format == SND_SOC_DAIFMT_I2S || @@ -369,6 +373,8 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream, framesize = wlen * channels; /* Set FS period and length in terms of bit clock periods */ + regs->srgr2 &= ~FPER(0xfff); + regs->srgr1 &= ~FWID(0xff); switch (format) { case SND_SOC_DAIFMT_I2S: case SND_SOC_DAIFMT_LEFT_J: @@ -505,6 +511,7 @@ static int omap_mcbsp_dai_set_clkdiv(struct snd_soc_dai *cpu_dai, return -ENODEV; mcbsp_data->clk_div = div; + regs->srgr1 &= ~CLKGDV(0xff); regs->srgr1 |= CLKGDV(div - 1); return 0; @@ -534,6 +541,8 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai, return -EINVAL; mcbsp_data->in_freq = freq; + regs->srgr2 &= ~CLKSM; + regs->pcr0 &= ~SCLKME; switch (clk_id) { case OMAP_MCBSP_SYSCLK_CLK: