]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00179226: imx-esai remove tx personal reset during record
authorAdrian Alonso <aalonso@freescale.com>
Mon, 9 Apr 2012 17:16:53 +0000 (12:16 -0500)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:34:24 +0000 (08:34 +0200)
* Remove transmitter personal reset during stream record
  this could potencially block concurrent play/record support.
* Remove receiver personal reset calls, rx is always
  operational.

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
sound/soc/imx/imx-esai.c

index 22edbf94976334978ea50f988efe3e1c755245ca..5f95ecce842e4a8e6e9e249ad293a09d1a45fc9f 100644 (file)
@@ -284,12 +284,10 @@ static int imx_esai_startup(struct snd_pcm_substream *substream,
                writel(ESAI_GPIO_ESAI, esai->base + ESAI_PCRC);
        }
 
-       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
                local_esai->imx_esai_txrx_state |= IMX_DAI_ESAI_TX;
-       } else {
+       else
                local_esai->imx_esai_txrx_state |= IMX_DAI_ESAI_RX;
-               writel(ESAI_RCR_RPR, esai->base + ESAI_RCR);
-       }
 
        ESAI_DUMP();
        return 0;
@@ -446,7 +444,6 @@ static int imx_esai_trigger(struct snd_pcm_substream *substream, int cmd,
 {
        struct imx_esai *esai = snd_soc_dai_get_drvdata(cpu_dai);
        u32 reg, tfcr = 0, rfcr = 0;
-       u32 temp;
 
        if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
                tfcr = readl(esai->base + ESAI_TFCR);
@@ -465,12 +462,8 @@ static int imx_esai_trigger(struct snd_pcm_substream *substream, int cmd,
                        reg |= ESAI_TCR_TE(substream->runtime->channels);
                        writel(reg, esai->base + ESAI_TCR);
                } else {
-                       temp = readl(esai->base + ESAI_TCR);
-                       temp &= ~ESAI_TCR_TPR;
-                       writel(temp, esai->base + ESAI_TCR);
                        rfcr |= ESAI_RFCR_RFEN;
                        writel(rfcr, esai->base + ESAI_RFCR);
-                       reg &= ~ESAI_RCR_RPR;
                        reg |= ESAI_RCR_RE(substream->runtime->channels);
                        writel(reg, esai->base + ESAI_RCR);
                }
@@ -481,7 +474,6 @@ static int imx_esai_trigger(struct snd_pcm_substream *substream, int cmd,
                if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
                        reg &= ~ESAI_TCR_TE(substream->runtime->channels);
                        writel(reg, esai->base + ESAI_TCR);
-                       writel(reg, esai->base + ESAI_TCR);
                        tfcr |= ESAI_TFCR_TFR;
                        tfcr &= ~ESAI_TFCR_TFEN;
                        writel(tfcr, esai->base + ESAI_TFCR);
@@ -490,8 +482,6 @@ static int imx_esai_trigger(struct snd_pcm_substream *substream, int cmd,
                } else {
                        reg &= ~ESAI_RCR_RE(substream->runtime->channels);
                        writel(reg, esai->base + ESAI_RCR);
-                       reg |= ESAI_RCR_RPR;
-                       writel(reg, esai->base + ESAI_RCR);
                        rfcr |= ESAI_RFCR_RFR;
                        rfcr &= ~ESAI_RFCR_RFEN;
                        writel(rfcr, esai->base + ESAI_RFCR);