diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2018-11-16 16:41:38 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-11-28 15:40:56 +0300 |
commit | 1003c27acfc2174558b2a0803bd6974e19be2738 (patch) | |
tree | fe2e447f8e56b2d38bbf5de2172a1cd917a17599 /sound/soc/davinci | |
parent | 61f94ee4a7435c35d78b22e4ae6e0551908000ae (diff) | |
download | linux-1003c27acfc2174558b2a0803bd6974e19be2738.tar.xz |
ASoC: davinci-mcasp: Clear TXSTAT register before activating serializers
Follow the guideline from the TRM:
Before starting, clear the respective transmitter and receiver status
registers
To avoid stale state stored in the status registers.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/davinci')
-rw-r--r-- | sound/soc/davinci/davinci-mcasp.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c index 267aee776b2d..740030b4d37a 100644 --- a/sound/soc/davinci/davinci-mcasp.c +++ b/sound/soc/davinci/davinci-mcasp.c @@ -192,6 +192,7 @@ static void mcasp_start_rx(struct davinci_mcasp *mcasp) } /* Activate serializer(s) */ + mcasp_set_reg(mcasp, DAVINCI_MCASP_RXSTAT_REG, 0xFFFFFFFF); mcasp_set_ctl_reg(mcasp, DAVINCI_MCASP_GBLCTLR_REG, RXSERCLR); /* Release RX state machine */ mcasp_set_ctl_reg(mcasp, DAVINCI_MCASP_GBLCTLR_REG, RXSMRST); @@ -220,6 +221,7 @@ static void mcasp_start_tx(struct davinci_mcasp *mcasp) mcasp_set_ctl_reg(mcasp, DAVINCI_MCASP_GBLCTLX_REG, TXHCLKRST); mcasp_set_ctl_reg(mcasp, DAVINCI_MCASP_GBLCTLX_REG, TXCLKRST); /* Activate serializer(s) */ + mcasp_set_reg(mcasp, DAVINCI_MCASP_TXSTAT_REG, 0xFFFFFFFF); mcasp_set_ctl_reg(mcasp, DAVINCI_MCASP_GBLCTLX_REG, TXSERCLR); /* wait for XDATA to be cleared */ |