1
0
Fork 0
alistair23-linux/drivers/spi
Amelie Delaunay c67ad368cf spi: stm32: enhance DMA error management
This patch reworks DMA error management. In case the DMA callback is
called while EOT (End Of Transfer) flag is not set, that means that DMA
encountered an error. This error will result in an auto-suspend of SPI
flow, which could also result in an overrun. So, in DMA mode, SUSP and
OVR flags are a condition to stop the current transfer.

Moreover, stm32_spi_can_dma doesn't care about the state of dma channels.
During driver probe, master->can_dma is initialised if dma channel request
is successful. That's why we must use master->can_dma to know if dma
use is possible (dma channel are successfully requested and the transfer
size is greater than fifo size).

Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2017-06-28 20:00:54 +01:00
..
Kconfig spi: add driver for STM32 SPI controller 2017-06-21 16:15:54 +01:00
Makefile spi: add driver for STM32 SPI controller 2017-06-21 16:15:54 +01:00
spi-adi-v3.c
spi-altera.c
spi-armada-3700.c Merge remote-tracking branches 'spi/topic/armada', 'spi/topic/ath79', 'spi/topic/bcm-qspi' and 'spi/topic/bcm53xx' into spi-next 2017-02-19 16:40:55 +00:00
spi-ath79.c spi: spi-ath79: use gpio_set_value_cansleep for GPIO chip select 2016-12-14 17:36:57 +00:00
spi-atmel.c spi: atmel: add deepest PM support to SAMA5D2 2017-04-18 18:50:05 +01:00
spi-au1550.c spi: au1550: Simplify au1550_spi_setupxfer() 2015-09-16 20:54:54 +01:00
spi-axi-spi-engine.c spi: spi-axi: Free resources on error path 2017-01-09 11:20:46 +00:00
spi-bcm-qspi.c spi: Updates for v4.11 2017-02-20 17:26:11 -08:00
spi-bcm-qspi.h spi: iproc-qspi: Add Broadcom iProc SoCs support 2016-09-24 20:03:25 +01:00
spi-bcm53xx.c spi: bcm53xx: (re)license code to the GPL v2 2017-01-06 18:21:50 +00:00
spi-bcm53xx.h
spi-bcm63xx-hsspi.c spi/bcm63xx-hsspi: allow for probing through devicetree 2017-03-13 15:51:50 +00:00
spi-bcm63xx.c spi/bcm63xx: fix typo in bcm63xx_spi_max_length breaking compilation 2017-02-21 16:25:48 -08:00
spi-bcm2835.c spi: bcm2835: Remove unnecessary workaround to call gpio_set_value 2016-02-15 20:43:39 +00:00
spi-bcm2835aux.c Merge remote-tracking branches 'spi/topic/acpi', 'spi/topic/axi-engine', 'spi/topic/bcm2835' and 'spi/topic/bcm2835aux' into spi-next 2016-03-11 14:28:25 +07:00
spi-bfin-sport.c spi: spi-bfin-sport: Remove deprecated create_singlethread_workqueue 2016-07-03 14:24:31 +02:00
spi-bfin5xx.c spi: spi-bfin5xx: Remove deprecated create_singlethread_workqueue 2016-07-03 14:14:31 +02:00
spi-bitbang-txrx.h spi: Fix regression in spi-bitbang-txrx.h 2015-07-29 15:01:07 +01:00
spi-bitbang.c spi: bitbang: switch to the generic implementation of transfer_one_message 2015-10-05 14:55:56 +01:00
spi-brcmstb-qspi.c spi: brcmstb-qspi: Broadcom settop platform driver 2016-09-14 18:03:32 +01:00
spi-butterfly.c spi: butterfly: use new parport device model 2015-12-02 19:38:16 +00:00
spi-cadence.c spi: cadence: Allow for GPIO pins to be used as chipselects 2017-04-26 15:23:45 +01:00
spi-cavium-octeon.c spi: octeon: Split driver into Octeon specific and common parts 2016-07-24 21:54:29 +01:00
spi-cavium-thunderx.c spi: spi-cavium-thunderx: Add missing clk_disable_unprepare() 2016-08-24 12:37:43 +01:00
spi-cavium.c spi: octeon: Split driver into Octeon specific and common parts 2016-07-24 21:54:29 +01:00
spi-cavium.h spi: octeon: Add ThunderX driver 2016-08-19 16:24:39 +01:00
spi-clps711x.c spi: clps711x: Driver refactor 2016-07-07 11:44:43 +02:00
spi-coldfire-qspi.c spi: spi-coldfire-qspi: enable RuntimePM before registering to the core 2015-10-12 17:02:08 +01:00
spi-davinci.c spi: davinci: add comment about dummy tx buffer usage 2017-03-17 22:00:51 +00:00
spi-dln2.c spi: Drop duplicate code to set master->dev.parent 2016-04-26 11:56:09 +01:00
spi-dw-mid.c spi: dw-mid: switch to new dmaengine_terminate_* API (part 2) 2017-01-04 12:27:00 +00:00
spi-dw-mmio.c spi: dw: Disable clock after unregistering the host 2017-04-18 19:16:49 +01:00
spi-dw-pci.c spi: dw-pci: Spelling s/paltforms/platforms/g 2016-05-11 18:26:19 +01:00
spi-dw.c spi: dw: Make debugfs use bus num and make irq name unique 2017-01-09 11:22:14 +00:00
spi-dw.h spi: dw: Make debugfs use bus num and make irq name unique 2017-01-09 11:22:14 +00:00
spi-efm32.c
spi-ep93xx.c spi: spi-ep93xx: simplify GPIO chip selects 2017-02-16 20:10:26 +00:00
spi-falcon.c
spi-fsl-cpm.c QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
spi-fsl-cpm.h
spi-fsl-dspi.c spi: spi-fsl-dspi: Fix error handling 2017-02-19 16:39:21 +00:00
spi-fsl-espi.c spi: fsl-espi: fix ioread16/iowrite16 endianness 2016-12-01 18:50:59 +00:00
spi-fsl-lib.c spi: fsl-(e)spi: simplify cleanup code 2015-08-28 18:15:18 +01:00
spi-fsl-lib.h spi: fsl-espi: separate fsl-espi from fsl-lib completely 2016-11-14 11:21:48 +00:00
spi-fsl-lpspi.c spi: fsl-lpspi: fix indentation error 2017-01-09 19:34:02 +00:00
spi-fsl-spi.c Merge remote-tracking branches 'spi/topic/devprop', 'spi/topic/fsl', 'spi/topic/fsl-dspi', 'spi/topic/imx' and 'spi/topic/lantiq' into spi-next 2017-04-26 15:58:04 +01:00
spi-fsl-spi.h
spi-gpio.c
spi-img-spfi.c spi: img-spfi: Remove spi_master_put in img_spfi_remove() 2016-07-27 19:00:16 +01:00
spi-imx.c spi-imx: Implements handling of the SPI_READY mode flag. 2017-04-25 16:37:53 +01:00
spi-iproc-qspi.c spi: iproc-qspi: Add Broadcom iProc SoCs support 2016-09-24 20:03:25 +01:00
spi-jcore.c spi: jcore: Fix module autoload for OF registration 2016-11-23 16:42:20 +00:00
spi-lantiq-ssc.c Merge remote-tracking branches 'spi/topic/devprop', 'spi/topic/fsl', 'spi/topic/fsl-dspi', 'spi/topic/imx' and 'spi/topic/lantiq' into spi-next 2017-04-26 15:58:04 +01:00
spi-lm70llp.c spi: lm70llp: remove printk 2015-12-07 20:09:09 +00:00
spi-loopback-test.c Merge remote-tracking branches 'spi/topic/spidev', 'spi/topic/spidev-test', 'spi/topic/sunxi', 'spi/topic/tegra' and 'spi/topic/test' into spi-next 2017-04-26 15:58:16 +01:00
spi-lp8841-rtc.c spi: lp-8841: return correct error code from probe 2016-02-26 11:06:38 +09:00
spi-meson-spifc.c spi: meson: Add GXBB compatible 2016-09-12 20:11:39 +01:00
spi-mpc52xx-psc.c spi: spi-mpc52xx-psc: Remove deprecated create_singlethread_workqueue 2016-07-03 14:23:25 +02:00
spi-mpc52xx.c spi/mpc52xx: Combine substrings for two messages 2017-01-17 18:28:19 +00:00
spi-mpc512x-psc.c spi: mpc512x: Call mpc512x_psc_spi_transfer_setup() unconditionally 2015-09-17 12:33:31 +01:00
spi-mt65xx.c spi: mediatek: Only do dma for 4-byte aligned buffers 2017-01-31 19:55:38 +00:00
spi-mxs.c
spi-nuc900.c
spi-oc-tiny.c spi: oc-tiny: Use of_property_read_u32 instead of open-coding it 2015-09-16 19:16:01 +01:00
spi-omap-100k.c spi: omap-100k: Rely on validations done by spi core 2015-09-17 12:34:20 +01:00
spi-omap-uwire.c spi: omap-uwire: Remove needless bits_per_word and speed_hz tests 2015-09-17 12:33:58 +01:00
spi-omap2-mcspi.c spi: omap2-mcspi: poll OMAP2_MCSPI_CHSTAT_RXS for PIO transfer 2017-03-24 18:50:23 +00:00
spi-orion.c spi: orion: add LSB support 2017-04-07 18:15:20 +01:00
spi-pic32-sqi.c spi: pic32-sqi: use list_move_tail and list_move 2016-08-08 11:56:40 +01:00
spi-pic32.c spi: pic32: fixup wait_for_completion_timeout return handling 2016-07-24 21:49:16 +01:00
spi-pl022.c spi: pl022: don't use uninitialized variable 2017-04-06 11:55:22 +01:00
spi-ppc4xx.c spi/ppc4xx: Use kcalloc() in spi_ppc4xx_of_probe() 2017-01-17 18:34:25 +00:00
spi-pxa2xx-dma.c spi: pxa2xx: Remove pointer to chip data from driver data 2016-09-12 20:01:27 +01:00
spi-pxa2xx-pci.c spi: pca2xx-pci: Allow MSI 2017-01-23 18:09:37 +00:00
spi-pxa2xx.c Merge remote-tracking branches 'spi/topic/imx', 'spi/topic/lantiq-ssc', 'spi/topic/mpc52xx', 'spi/topic/ppc4xx' and 'spi/topic/pxa2xx' into spi-next 2017-02-19 16:41:01 +00:00
spi-pxa2xx.h spi: spi-pxa2xx: Remove unused macro 2016-11-14 13:52:04 +00:00
spi-qup.c Merge remote-tracking branches 'spi/topic/octeon', 'spi/topic/pic32-sqi', 'spi/topic/pxa2xx' and 'spi/topic/qup' into spi-next 2016-09-30 09:14:14 -07:00
spi-rb4xx.c
spi-rockchip.c spi: rockchip: support "sleep" pin configuration 2016-12-19 13:29:27 +00:00
spi-rspi.c Merge remote-tracking branches 'spi/topic/rockchip', 'spi/topic/rspi', 'spi/topic/s3c64xx', 'spi/topic/sh-msiof' and 'spi/topic/slave' into spi-next 2017-02-19 16:41:05 +00:00
spi-s3c24xx-fiq.S
spi-s3c24xx-fiq.h
spi-s3c24xx.c spi: bitbang: Replace spinlock by mutex 2015-09-17 12:13:40 +01:00
spi-s3c64xx.c Merge remote-tracking branches 'spi/topic/rockchip', 'spi/topic/rspi', 'spi/topic/s3c64xx', 'spi/topic/sh-msiof' and 'spi/topic/slave' into spi-next 2017-02-19 16:41:05 +00:00
spi-sc18is602.c spi: sc18is602: Add OF device ID table 2017-02-22 10:50:09 -08:00
spi-sh-hspi.c
spi-sh-msiof.c spi: sh-msiof: Remove useless memory allocation failure message 2017-01-04 17:39:37 +00:00
spi-sh-sci.c
spi-sh.c spi: spi-sh: Remove deprecated create_singlethread_workqueue 2016-07-11 19:32:38 +01:00
spi-sirf.c spi: sirf: add the reset for USP-based SPI 2015-05-26 11:39:16 +01:00
spi-st-ssc4.c spi: st-ssc4: Fix misuse of devm_gpio_request/devm_gpio_free APIs 2016-09-14 16:05:35 +01:00
spi-stm32.c spi: stm32: enhance DMA error management 2017-06-28 20:00:54 +01:00
spi-sun4i.c spi: sun4i: Allow transfers larger than FIFO size 2016-10-29 12:11:30 -06:00
spi-sun6i.c spi: sun6i: update max transfer size reported 2017-03-20 15:38:51 +00:00
spi-tegra20-sflash.c spi: tegra: fix spelling mistake: "trasfer" -> "transfer" 2017-04-24 18:44:28 +01:00
spi-tegra20-slink.c spi: tegra: fix spelling mistake: "trasfer" -> "transfer" 2017-04-24 18:44:28 +01:00
spi-tegra114.c spi: tegra: fix spelling mistake: "trasfer" -> "transfer" 2017-04-24 18:44:28 +01:00
spi-test.h spi: loopback-test: add elapsed time check 2017-03-17 21:54:08 +00:00
spi-ti-qspi.c Merge remote-tracking branches 'spi/topic/ti-qspi' and 'spi/topic/xlp' into spi-next 2017-04-26 15:58:22 +01:00
spi-tle62x0.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
spi-topcliff-pch.c spi/topcliff-pch: Delete an error message for a failed memory allocation in pch_spi_set_tx() 2017-01-17 18:38:02 +00:00
spi-txx9.c spi: spi-txx9: Add missing clock (un)prepare calls for CCF 2016-08-18 19:10:39 +01:00
spi-xcomm.c spi: xcomm: Export I2C module alias information 2015-07-31 18:14:57 +01:00
spi-xilinx.c spi: xilinx: Return IRQ_NONE if no interrupts were detected 2016-07-15 11:45:00 +01:00
spi-xlp.c spi: xlp: update for ARCH_VULCAN2 2017-03-13 16:48:40 +00:00
spi-xtensa-xtfpga.c spi: xtensa-xtfpga: fix register endianness 2015-09-22 09:30:10 -07:00
spi-zynqmp-gqspi.c spi: zynqmp: disable clocks in error paths 2016-05-04 14:21:03 +01:00
spi.c Merge remote-tracking branches 'spi/topic/ti-qspi' and 'spi/topic/xlp' into spi-next 2017-04-26 15:58:22 +01:00
spidev.c spi: spidev: Add sx1301 to device tree compatibility list 2017-03-16 11:14:27 +00:00