[PATCH v2 0/2] introduce fallback to pio in spi core
From: Robin Gong
Date: Tue Jun 16 2020 - 10:42:38 EST
Introudce fallback pio way at spi core level so that the tx/rx buffer
mapped by spi core for dma could be unmap and fallback pio again. Hence no
need the below patch where 'dma_sync_sg_for_devic' to sync fresh data back
into 'device' memory and sync to 'cpu' again in spi core.
https://www.spinics.net/lists/arm-kernel/msg812236.html
If you want to use this fallback feature, please set xfer->error with
SPI_TRANS_FAIL_NO_START in case dma transfer failed(but no any data push
into spi bus yet) in spi client driver and add 'master->fallback' checking
in your can_dma() to ensure spi core can fallback to pio next time.
change from:
v2:
1. Add error flag in stuct spi_transfer and fallback to pio if spi client
return SPI_TRANS_FAIL_NO_START failure before dma transfer start.
2. Remove SPI_MASTER_FALLBACK set on master->flags since the above error
flag could ensure no any impact for other spi client drivers which don't
need this feature.
Robin Gong (2):
spi: introduce fallback to pio
spi: imx: add fallback feature
drivers/spi/spi-imx.c | 23 +++++------------------
drivers/spi/spi.c | 11 +++++++++++
include/linux/spi/spi.h | 4 ++++
3 files changed, 20 insertions(+), 18 deletions(-)
--
2.7.4