diff options
author | Bo Shen <voice.shen@atmel.com> | 2015-01-30 04:38:44 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-01-30 08:20:24 -0500 |
commit | 3fd5b30c577bdd51168f38cf4f2d322619015a53 (patch) | |
tree | 05d10f8b28bb79351c7ab08898550a117c890f4e | |
parent | cbaadf0f90d6d406a36bb389fbdea524d6d89d8d (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.c | 20 |
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); |