Skip to content

Commit 01fbc23

Browse files
kv2019iabonislawski
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) (cherry picked from commit 2c3f370)
1 parent 2d117b1 commit 01fbc23

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

  • src/drivers/intel/ssp

src/drivers/intel/ssp/ssp.c

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

914914
spin_lock(&dai->lock);
915915

916+
/* RX fifo must be cleared before start */
917+
if (direction == DAI_DIR_CAPTURE)
918+
ssp_empty_rx_fifo(dai);
919+
916920
/* request mclk/bclk */
917921
ssp_pre_start(dai);
918922

0 commit comments

Comments
 (0)