aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBo Shen <voice.shen@atmel.com>2015-01-30 04:38:44 -0500
committerMark Brown <broonie@kernel.org>2015-01-30 08:20:24 -0500
commit3fd5b30c577bdd51168f38cf4f2d322619015a53 (patch)
tree05d10f8b28bb79351c7ab08898550a117c890f4e
parentcbaadf0f90d6d406a36bb389fbdea524d6d89d8d (diff)
ASoC: atmel_ssc_dai: only clean PDC when using PDC
Only using PDC, it needs to clean PDC registers. Signed-off-by: Bo Shen <voice.shen@atmel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/atmel/atmel_ssc_dai.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/sound/soc/atmel/atmel_ssc_dai.c b/sound/soc/atmel/atmel_ssc_dai.c
index 76a9754370e8..379ac2a6ab16 100644
--- a/sound/soc/atmel/atmel_ssc_dai.c
+++ b/sound/soc/atmel/atmel_ssc_dai.c
@@ -627,15 +627,17 @@ static int atmel_ssc_hw_params(struct snd_pcm_substream *substream,
627 rcmr, rfmr, tcmr, tfmr); 627 rcmr, rfmr, tcmr, tfmr);
628 628
629 if (!ssc_p->initialized) { 629 if (!ssc_p->initialized) {
630 ssc_writel(ssc_p->ssc->regs, PDC_RPR, 0); 630 if (!ssc_p->ssc->pdata->use_dma) {
631 ssc_writel(ssc_p->ssc->regs, PDC_RCR, 0); 631 ssc_writel(ssc_p->ssc->regs, PDC_RPR, 0);
632 ssc_writel(ssc_p->ssc->regs, PDC_RNPR, 0); 632 ssc_writel(ssc_p->ssc->regs, PDC_RCR, 0);
633 ssc_writel(ssc_p->ssc->regs, PDC_RNCR, 0); 633 ssc_writel(ssc_p->ssc->regs, PDC_RNPR, 0);
634 634 ssc_writel(ssc_p->ssc->regs, PDC_RNCR, 0);
635 ssc_writel(ssc_p->ssc->regs, PDC_TPR, 0); 635
636 ssc_writel(ssc_p->ssc->regs, PDC_TCR, 0); 636 ssc_writel(ssc_p->ssc->regs, PDC_TPR, 0);
637 ssc_writel(ssc_p->ssc->regs, PDC_TNPR, 0); 637 ssc_writel(ssc_p->ssc->regs, PDC_TCR, 0);
638 ssc_writel(ssc_p->ssc->regs, PDC_TNCR, 0); 638 ssc_writel(ssc_p->ssc->regs, PDC_TNPR, 0);
639 ssc_writel(ssc_p->ssc->regs, PDC_TNCR, 0);
640 }
639 641
640 ret = request_irq(ssc_p->ssc->irq, atmel_ssc_interrupt, 0, 642 ret = request_irq(ssc_p->ssc->irq, atmel_ssc_interrupt, 0,
641 ssc_p->name, ssc_p); 643 ssc_p->name, ssc_p);