OSDN Git Service

spi: spi-sun6i: implement DMA-based transfer mode
authorAlexander Kochetkov <al.kochet@gmail.com>
Thu, 22 Oct 2020 07:52:21 +0000 (10:52 +0300)
committerMark Brown <broonie@kernel.org>
Mon, 26 Oct 2020 22:11:23 +0000 (22:11 +0000)
commit345980a3a5e5e1c99fc621e2ce878fb150ad2287
treeafffc239080a117e373ec2bc8d31067f269ec7cc
parent2ee1b42e8a0d698daf5553257e51432f84c230f7
spi: spi-sun6i: implement DMA-based transfer mode

DMA-based transfer will be enabled if data length is larger than FIFO size
(64 bytes for A64). This greatly reduce number of interrupts for
transferring data.

For smaller data size PIO mode will be used. In PIO mode whole buffer will
be loaded into FIFO.

If driver failed to request DMA channels then it fallback for PIO mode.

Tested on SOPINE (https://www.pine64.org/sopine/)

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20201022075221.23332-1-akochetkov@lintech.ru
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-sun6i.c