linux-uconsole/drivers/spi
Mans Rullgard f6e10f70c2 spi: atmel: fix handling of cs_change set on non-last xfer
commit fed8d8c7a6 upstream.

The driver does the wrong thing when cs_change is set on a non-last
xfer in a message.  When cs_change is set, the driver deactivates the
CS and leaves it off until a later xfer again has cs_change set whereas
it should be briefly toggling CS off and on again.

This patch brings the behaviour of the driver back in line with the
documentation and common sense.  The delay of 10 us is the same as is
used by the default spi_transfer_one_message() function in spi.c.
[gregory: rebased on for-5.5 from spi tree]
Fixes: 8090d6d1a4 ("spi: atmel: Refactor spi-atmel to use SPI framework queue")
Signed-off-by: Mans Rullgard <mans@mansr.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Link: https://lore.kernel.org/r/20191018153504.4249-1-gregory.clement@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-01-17 19:47:12 +01:00
..
internals.h spi: Add an helper to flush the message queue 2018-04-23 15:48:18 +01:00
Kconfig spi: add SPI controller driver for UniPhier SoC 2018-08-01 11:22:37 +01:00
Makefile spi: add SPI controller driver for UniPhier SoC 2018-08-01 11:22:37 +01:00
spi-altera.c
spi-armada-3700.c Merge remote-tracking branches 'spi/topic/a3700', 'spi/topic/atmel', 'spi/topic/bcm53xx', 'spi/topic/davinci' and 'spi/topic/dw' into spi-next 2018-01-26 17:57:24 +00:00
spi-ath79.c spi: add flags parameter to txrx_word function pointers 2018-08-01 14:50:24 +01:00
spi-atmel.c spi: atmel: fix handling of cs_change set on non-last xfer 2020-01-17 19:47:12 +01:00
spi-au1550.c
spi-axi-spi-engine.c
spi-bcm-qspi.c spi: bcm-qspi: fix calculation of address length 2018-11-13 11:08:15 -08:00
spi-bcm-qspi.h
spi-bcm63xx-hsspi.c spi/bcm63xx-hsspi: keep pll clk enabled 2019-11-20 18:46:54 +01:00
spi-bcm63xx.c
spi-bcm2835.c spi: bcm2835: Fix 3-wire mode if DMA is enabled 2019-08-09 17:52:35 +02:00
spi-bcm2835aux.c spi: bcm2835aux: fix corruptions for longer spi transfers 2019-09-10 10:33:41 +01:00
spi-bitbang-txrx.h
spi-bitbang.c spi: bitbang: Fix NULL pointer dereference in spi_unregister_master 2019-07-10 09:53:32 +02:00
spi-brcmstb-qspi.c
spi-butterfly.c spi: add flags parameter to txrx_word function pointers 2018-08-01 14:50:24 +01:00
spi-cadence.c spi: cadence: Fix missing clk_disable_unprepare() on error in cnds_runtime_resume() 2018-07-11 15:34:53 +01:00
spi-cavium-octeon.c
spi-cavium-thunderx.c spi: spi-cavium-thunderx: Add missing pci_release_regions() 2020-01-12 12:17:11 +01:00
spi-cavium.c
spi-cavium.h
spi-clps711x.c
spi-coldfire-qspi.c
spi-davinci.c Merge branch 'spi-4.18' into spi-linus 2018-08-10 17:51:50 +01:00
spi-dln2.c
spi-dw-mid.c spi: dw: Convert to generalized SPI controller API 2018-02-12 12:04:16 +00:00
spi-dw-mmio.c spi: dw-mmio: add MSCC Ocelot support 2018-07-30 12:02:08 +01:00
spi-dw-pci.c
spi-dw.c Merge branch 'spi-4.19' into spi-next 2018-08-10 17:51:52 +01:00
spi-dw.h spi: dw: export dw_spi_set_cs 2018-07-30 12:02:07 +01:00
spi-efm32.c
spi-ep93xx.c spi: spi-ep93xx: Use dma_data_direction for ep93xx_spi_dma_{finish,prepare} 2018-11-13 11:08:22 -08:00
spi-falcon.c
spi-fsl-cpm.c
spi-fsl-cpm.h
spi-fsl-dspi.c spi: spi-fsl-dspi: fix broken DSPI_EOQ_MODE 2018-08-28 20:55:23 +01:00
spi-fsl-espi.c spi: spi-fsl-espi: Log fifo counters on error 2018-07-26 15:43:09 +01:00
spi-fsl-lib.c
spi-fsl-lib.h
spi-fsl-lpspi.c spi: fsl-lpspi: Prevent FIFO under/overrun by default 2019-11-24 08:20:55 +01:00
spi-fsl-spi.c spi: fsl: use platform_get_irq() instead of of_irq_to_resource() 2020-01-04 19:13:45 +01:00
spi-fsl-spi.h
spi-gpio.c spi: spi-gpio: fix SPI_CS_HIGH capability 2019-09-16 08:22:07 +02:00
spi-img-spfi.c spi: img-spfi: fix potential double release 2019-12-31 16:35:39 +01:00
spi-imx.c spi: imx: stop buffer overflow in RX FIFO flush 2019-05-31 06:46:34 -07:00
spi-iproc-qspi.c
spi-jcore.c spi: jcore: disable ref_clk after getting its rate 2018-03-18 17:57:42 -07:00
spi-lantiq-ssc.c
spi-lm70llp.c spi: add flags parameter to txrx_word function pointers 2018-08-01 14:50:24 +01:00
spi-loopback-test.c
spi-lp8841-rtc.c
spi-mem.c spi: spi-mem: Adjust op len based on message/transfer size limitations 2018-11-13 11:08:15 -08:00
spi-meson-spicc.c spi: meson-spicc: Fix error handling in meson_spicc_probe() 2018-05-02 05:59:21 +09:00
spi-meson-spifc.c
spi-mpc52xx-psc.c
spi-mpc52xx.c spi: mpc52xx: Use gpio_is_valid() 2018-04-27 12:05:39 +01:00
spi-mpc512x-psc.c
spi-mt65xx.c spi: mediatek: use correct mata->xfer_len when in fifo transfer 2019-11-24 08:19:06 +01:00
spi-mxs.c spi: mxs: Switch to SPDX identifier 2018-05-03 10:27:43 +09:00
spi-nuc900.c
spi-oc-tiny.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
spi-omap-100k.c
spi-omap-uwire.c
spi-omap2-mcspi.c spi: omap2-mcspi: Fix DMA and FIFO event trigger size mismatch 2019-12-01 09:17:33 +01:00
spi-orion.c spi: orion: fix CS GPIO handling again 2018-06-19 13:06:51 +01:00
spi-pic32-sqi.c
spi-pic32.c spi: pic32: Use proper enum in dmaengine_prep_slave_rg 2019-11-20 18:47:11 +01:00
spi-pl022.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
spi-ppc4xx.c
spi-pxa2xx-dma.c spi: pxa2xx: Use core message processing loop 2018-04-17 17:11:30 +01:00
spi-pxa2xx-pci.c
spi-pxa2xx.c spi: pxa2xx: Add missed security checks 2019-12-31 16:35:59 +01:00
spi-pxa2xx.h spi: pxa2xx: Allow 64-bit DMA 2018-04-24 16:10:12 +01:00
spi-qup.c
spi-rb4xx.c
spi-rockchip.c spi: rockchip: initialize dma_slave_config properly 2019-11-24 08:21:05 +01:00
spi-rspi.c spi: rspi: Fix sequencer reset during initialization 2019-05-31 06:46:34 -07:00
spi-s3c24xx-fiq.h
spi-s3c24xx-fiq.S
spi-s3c24xx.c
spi-s3c64xx.c spi: spi-s3c64xx: Fix system resume support 2018-05-17 13:27:08 +09:00
spi-sc18is602.c
spi-sh-hspi.c
spi-sh-msiof.c spi: sh-msiof: fix deferred probing 2019-12-01 09:16:20 +01:00
spi-sh-sci.c spi: add flags parameter to txrx_word function pointers 2018-08-01 14:50:24 +01:00
spi-sh.c
spi-sirf.c spi: sirf: account for const type of of_device_id.data 2018-01-03 11:38:46 +00:00
spi-slave-system-control.c
spi-slave-time.c
spi-sprd-adi.c spi: sprd: adi: Add missing lock protection when rebooting 2019-12-31 16:35:28 +01:00
spi-st-ssc4.c spi: st-ssc4: add missed pm_runtime_disable 2019-12-31 16:36:06 +01:00
spi-stm32.c spi: stm32: Fix error handling in stm32_spi_probe() 2018-04-17 11:46:23 +01:00
spi-sun4i.c
spi-sun6i.c
spi-tegra20-sflash.c
spi-tegra20-slink.c spi: tegra20-slink: add missed clk_unprepare 2019-12-31 16:36:03 +01:00
spi-tegra114.c spi: tegra114: reset controller on probe 2019-05-31 06:46:28 -07:00
spi-test.h
spi-ti-qspi.c spi: spi-ti-qspi: Fix a bug when accessing non default CS 2020-01-12 12:17:12 +01:00
spi-tle62x0.c
spi-topcliff-pch.c spi : spi-topcliff-pch: Fix to handle empty DMA buffers 2019-05-31 06:46:33 -07:00
spi-txx9.c
spi-uniphier.c spi: uniphier: remove unnecessary include headers 2018-08-02 11:08:06 +01:00
spi-xcomm.c
spi-xilinx.c
spi-xlp.c
spi-xtensa-xtfpga.c spi: add flags parameter to txrx_word function pointers 2018-08-01 14:50:24 +01:00
spi-zynqmp-gqspi.c spi: simplify getting .drvdata 2018-04-20 17:53:20 +01:00
spi.c spi: Fix zero length xfer bug 2019-05-31 06:46:34 -07:00
spidev.c spi: Add call to spi_slave_abort() function when spidev driver is released 2019-12-31 16:34:48 +01:00