summaryrefslogtreecommitdiff
path: root/drivers/misc/i2s/msp_i2s.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/i2s/msp_i2s.c')
-rw-r--r--drivers/misc/i2s/msp_i2s.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/drivers/misc/i2s/msp_i2s.c b/drivers/misc/i2s/msp_i2s.c
index 9974991e1e8..c69ee708265 100644
--- a/drivers/misc/i2s/msp_i2s.c
+++ b/drivers/misc/i2s/msp_i2s.c
@@ -1018,18 +1018,11 @@ static int stm_msp_configure_enable(struct i2s_controller *i2s_cont,
}
if (config->loopback_enable & 0x80)
msp->loopback_enable = 1;
- /*Sometimes FIFO doesn't gets empty hence limit is provided */
+
+ /* Flush MSP-FIFOs */
flush_tx_fifo(msp);
- /*This has been added in order to fix fifo flush problem
- When last xfer occurs some data remains in fifo. In order to
- flush that data delay is needed */
- msleep(10);
- /* wait for fifo to flush */
flush_rx_fifo(msp);
- /* RX_BUSY take a while to clear */
- msleep(10);
-
msp->msp_state = MSP_STATE_CONFIGURED;
up(&msp->lock);
return 0;
@@ -1695,10 +1688,7 @@ static int stm_msp_disable(struct msp *msp, int direction, i2s_flag flag)
stm_msp_write((stm_msp_read(msp->registers + MSP_GCR) &
(~(RX_ENABLE | LOOPBACK_MASK))),
msp->registers + MSP_GCR);
- /*This has been added in order to fix fifo flush problem
- When last xfer occurs some data remains in fifo. In order to
- flush that data delay is needed */
- msleep(10);
+
msp_disable_transmit(msp);
msp_disable_receive(msp);