On Tue, Aug 16, 2022 at 11:29 PM Shengjiu Wang <shengjiu.wang@xxxxxxxxx> wrote: >> > The FIFO reset drops the words in the FIFO, which may cause >> > channel swap when SAI module is running, especially when the >> > DMA speed is low. So it is not good to do FIFO reset in ISR, >> > then remove the operation. >> >> I don't recall the details of adding this many years ago, but >> leaving underrun/overrun errors unhandled does not sound right >> to me either. Would it result in a channel swap also? Perhaps >> there needs to be a reset routine that stops and restarts the >> DMA as well? > > > Remove the reset, the channel swap is gone. I have no doubt about that :) > IMO, no need to handle the underrun/overrun in driver, the SAI > hardware can handle the read/write pointer itself when xrun happen, > and we don't need reset routine. That'd be okay then.