Skip to content

Commit 728d96d

Browse files
kv2019iVamshi Krishna Gopal
authored andcommitted
intel: ssp: drain RX fifo when starting
If DMA transaction is ongoing when RX is enabled, this can lead to stuck communication between DMA and SSP (DMA service request not seen by the DMA). To avoid this, flush the RX fifo before enabling SSP RX. Link: #7548 Suggested-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> (cherry picked from commit 4a4d8d2)
1 parent 58c0e7e commit 728d96d

File tree

1 file changed

+4
-0
lines changed
  • src/drivers/intel/ssp

1 file changed

+4
-0
lines changed

src/drivers/intel/ssp/ssp.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -975,6 +975,10 @@ static void ssp_early_start(struct dai *dai, int direction)
975975

976976
key = k_spin_lock(&dai->lock);
977977

978+
/* RX fifo must be cleared before start */
979+
if (direction == DAI_DIR_CAPTURE)
980+
ssp_empty_rx_fifo(dai);
981+
978982
/* request mclk/bclk */
979983
ssp_pre_start(dai);
980984

0 commit comments

Comments
 (0)