On Tue, 21 Jul 2020 23:39:51 +0300, Serge Semin wrote: > It turns out having a Rx DMA channel serviced with higher priority than > a Tx DMA channel is not enough to provide a well balanced DMA-based SPI > transfer interface. There might still be moments when the Tx DMA channel > is occasionally handled faster than the Rx DMA channel. That in its turn > will eventually cause the SPI Rx FIFO overflow if SPI bus speed is high > enough to fill the SPI Rx FIFO in before it's cleared by the Rx DMA > channel. That's why having the DMA-based SPI Tx interface too optimized > is the errors prone, so the commit 0b2b66514fc9 ("spi: dw: Use DMA max > burst to set the request thresholds") though being perfectly normal from > the standard functionality point of view implicitly introduced the problem > described above. In order to fix that the Tx DMA activity is intentionally > slowed down by limiting the SPI Tx FIFO depth with a value twice bigger > than the Tx burst length calculated earlier by the > dw_spi_dma_maxburst_init() method.
Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next Thanks! [1/1] spi: dw-dma: Fix Tx DMA channel working too fast commit: affe93dd5b35bb0e7b0aa0505ae432dd0ac72c3f All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark