diff options
author | Jarkko Nikula <jhnikula@gmail.com> | 2009-08-23 05:24:26 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-08-25 05:20:48 -0400 |
commit | 32080af7a612e8c56131d6bdcd268cd9e8b0add1 (patch) | |
tree | 8022b8c7cdd0e2efc9f73e5f913cdd913078bd27 /sound/soc/omap/omap-mcbsp.c | |
parent | 9b30050908fad96968497e73b88626056ea33c96 (diff) |
ASoC: OMAP: Fix setup of XCCR and RCCR registers in McBSP DAI
Commit ca6e2ce08679c094878d7f39a0349a7db1d13675 is setting up few XCCR and
RCCR bits for I2S and DPS_A formats. Part of the bits are already set
for all formats and I believe that XDISABLE and RDISABLE bits are
format independent.
As XCCR and RCCR are found only from OMAP2430 and OMAP34xx, I move setup
of XDISABLE and RDISABLE to where those cpu's are tested and remove format
dependent part for simplicity.
Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Eero Nurkkala <ext-eero.nurkkala@nokia.com>
Cc: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/omap/omap-mcbsp.c')
-rw-r--r-- | sound/soc/omap/omap-mcbsp.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c index f5387d962f5d..89e8bce114af 100644 --- a/sound/soc/omap/omap-mcbsp.c +++ b/sound/soc/omap/omap-mcbsp.c | |||
@@ -379,8 +379,8 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai, | |||
379 | regs->xcr2 |= XFIG; | 379 | regs->xcr2 |= XFIG; |
380 | } | 380 | } |
381 | if (cpu_is_omap2430() || cpu_is_omap34xx()) { | 381 | if (cpu_is_omap2430() || cpu_is_omap34xx()) { |
382 | regs->xccr = DXENDLY(1) | XDMAEN; | 382 | regs->xccr = DXENDLY(1) | XDMAEN | XDISABLE; |
383 | regs->rccr = RFULL_CYCLE | RDMAEN; | 383 | regs->rccr = RFULL_CYCLE | RDMAEN | RDISABLE; |
384 | } | 384 | } |
385 | 385 | ||
386 | switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { | 386 | switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { |
@@ -388,15 +388,11 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai, | |||
388 | /* 1-bit data delay */ | 388 | /* 1-bit data delay */ |
389 | regs->rcr2 |= RDATDLY(1); | 389 | regs->rcr2 |= RDATDLY(1); |
390 | regs->xcr2 |= XDATDLY(1); | 390 | regs->xcr2 |= XDATDLY(1); |
391 | regs->rccr |= RFULL_CYCLE | RDMAEN | RDISABLE; | ||
392 | regs->xccr |= (DXENDLY(1) | XDMAEN | XDISABLE); | ||
393 | break; | 391 | break; |
394 | case SND_SOC_DAIFMT_DSP_A: | 392 | case SND_SOC_DAIFMT_DSP_A: |
395 | /* 1-bit data delay */ | 393 | /* 1-bit data delay */ |
396 | regs->rcr2 |= RDATDLY(1); | 394 | regs->rcr2 |= RDATDLY(1); |
397 | regs->xcr2 |= XDATDLY(1); | 395 | regs->xcr2 |= XDATDLY(1); |
398 | regs->rccr |= RFULL_CYCLE | RDMAEN | RDISABLE; | ||
399 | regs->xccr |= (DXENDLY(1) | XDMAEN | XDISABLE); | ||
400 | /* Invert FS polarity configuration */ | 396 | /* Invert FS polarity configuration */ |
401 | temp_fmt ^= SND_SOC_DAIFMT_NB_IF; | 397 | temp_fmt ^= SND_SOC_DAIFMT_NB_IF; |
402 | break; | 398 | break; |