aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/omap/omap-mcbsp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
index 894f2f33f508..7f700610b3cb 100644
--- a/sound/soc/omap/omap-mcbsp.c
+++ b/sound/soc/omap/omap-mcbsp.c
@@ -317,6 +317,10 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream,
317 return 0; 317 return 0;
318 } 318 }
319 319
320 regs->rcr2 &= ~(RPHASE | RFRLEN2(0x7f) | RWDLEN2(7));
321 regs->xcr2 &= ~(RPHASE | XFRLEN2(0x7f) | XWDLEN2(7));
322 regs->rcr1 &= ~(RFRLEN1(0x7f) | RWDLEN1(7));
323 regs->xcr1 &= ~(XFRLEN1(0x7f) | XWDLEN1(7));
320 format = mcbsp_data->fmt & SND_SOC_DAIFMT_FORMAT_MASK; 324 format = mcbsp_data->fmt & SND_SOC_DAIFMT_FORMAT_MASK;
321 wpf = channels = params_channels(params); 325 wpf = channels = params_channels(params);
322 if (channels == 2 && (format == SND_SOC_DAIFMT_I2S || 326 if (channels == 2 && (format == SND_SOC_DAIFMT_I2S ||
@@ -369,6 +373,8 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream,
369 framesize = wlen * channels; 373 framesize = wlen * channels;
370 374
371 /* Set FS period and length in terms of bit clock periods */ 375 /* Set FS period and length in terms of bit clock periods */
376 regs->srgr2 &= ~FPER(0xfff);
377 regs->srgr1 &= ~FWID(0xff);
372 switch (format) { 378 switch (format) {
373 case SND_SOC_DAIFMT_I2S: 379 case SND_SOC_DAIFMT_I2S:
374 case SND_SOC_DAIFMT_LEFT_J: 380 case SND_SOC_DAIFMT_LEFT_J:
@@ -505,6 +511,7 @@ static int omap_mcbsp_dai_set_clkdiv(struct snd_soc_dai *cpu_dai,
505 return -ENODEV; 511 return -ENODEV;
506 512
507 mcbsp_data->clk_div = div; 513 mcbsp_data->clk_div = div;
514 regs->srgr1 &= ~CLKGDV(0xff);
508 regs->srgr1 |= CLKGDV(div - 1); 515 regs->srgr1 |= CLKGDV(div - 1);
509 516
510 return 0; 517 return 0;
@@ -534,6 +541,8 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
534 return -EINVAL; 541 return -EINVAL;
535 542
536 mcbsp_data->in_freq = freq; 543 mcbsp_data->in_freq = freq;
544 regs->srgr2 &= ~CLKSM;
545 regs->pcr0 &= ~SCLKME;
537 546
538 switch (clk_id) { 547 switch (clk_id) {
539 case OMAP_MCBSP_SYSCLK_CLK: 548 case OMAP_MCBSP_SYSCLK_CLK: