linux/drivers/spi
Neil Armstrong 36acf80fc0
spi: meson-spicc: do not rely on busy flag in pow2 clk ops
Since [1], controller's busy flag isn't set anymore when the
__spi_transfer_message_noqueue() is used instead of the
__spi_pump_transfer_message() logic for spi_sync transfers.

Since the pow2 clock ops were limited to only be available when a
transfer is ongoing (between prepare_transfer_hardware and
unprepare_transfer_hardware callbacks), the only way to track this
down is to check for the controller cur_msg.

[1] ae7d2346dc ("spi: Don't use the message queue if possible in spi_sync")

Fixes: 09992025da ("spi: meson-spicc: add local pow2 clock ops to preserve rate between messages")
Fixes: ae7d2346dc ("spi: Don't use the message queue if possible in spi_sync")
Reported-by: Markus Schneider-Pargmann <msp@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Markus Schneider-Pargmann <msp@baylibre.com>
Link: https://lore.kernel.org/r/20220908121803.919943-1-narmstrong@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-09-08 13:51:51 +01:00
..
atmel-quadspi.c spi: atmel-quadspi: align condition to parenthesis 2022-06-09 12:20:05 +01:00
internals.h
Kconfig spi: microchip-core-qspi: Add support for microchip fpga qspi controllers 2022-08-15 12:17:38 +01:00
Makefile spi: microchip-core-qspi: Add support for microchip fpga qspi controllers 2022-08-15 12:17:38 +01:00
spi-altera-core.c spi: altera: separate core code from platform code 2021-04-20 17:26:40 +01:00
spi-altera-dfl.c spi: spi-altera-dfl: Fix an error handling path 2022-06-06 12:39:16 +01:00
spi-altera-platform.c spi: altera: Change to dynamic allocation of spi id 2021-10-20 01:53:15 +01:00
spi-amd.c spi: amd: Fix speed selection 2022-08-30 11:21:34 +01:00
spi-ar934x.c spi: ar934x: fix transfer size 2022-01-04 14:59:40 +00:00
spi-armada-3700.c spi: a3700: support BE for AC5 SPI driver 2022-07-26 16:51:07 +01:00
spi-aspeed-smc.c spi: aspeed: Fix division by zero 2022-06-29 18:10:12 +01:00
spi-at91-usart.c spi: at91-usart: replacing legacy gpio interface for gpiod 2021-10-20 00:23:21 +01:00
spi-ath79.c spi: ath79: add mem_ops for fast-read 2022-02-08 13:40:18 +00:00
spi-atmel.c spi: atmel: remove #ifdef CONFIG_{PM, SLEEP} 2022-07-18 13:45:32 +01:00
spi-au1550.c spi: spi-au1550: replace ternary operator with min() 2022-05-16 17:57:01 +01:00
spi-axi-spi-engine.c spi: spi-axi-spi-engine: remove usage of delay_usecs 2021-03-12 14:30:42 +00:00
spi-bcm63xx-hsspi.c
spi-bcm63xx.c spi: bcm63xx-spi: don't check 'delay_usecs' field 2021-03-12 14:30:43 +00:00
spi-bcm2835.c spi: Updates for v5.20 2022-08-02 10:55:04 -07:00
spi-bcm2835aux.c spi: bcm2835aux: Convert to use GPIO descriptors 2022-02-01 16:08:47 +00:00
spi-bcm-qspi.c spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op() 2022-04-06 15:50:11 +01:00
spi-bcm-qspi.h
spi-bitbang-txrx.h spi: gpio: Implement LSB First bitbang support 2022-02-22 11:56:41 +00:00
spi-bitbang.c spi: Cleanup on failure of initial setup 2021-06-01 14:03:12 +01:00
spi-brcmstb-qspi.c
spi-butterfly.c spi: butterfly: Switch to use module_parport_driver() 2021-03-10 12:46:05 +00:00
spi-cadence-quadspi.c spi: cadence-quadspi: Remove spi_master_put() in probe failure path 2022-07-14 13:26:35 +01:00
spi-cadence-xspi.c spi: cadence: fix platform_get_irq.cocci warning 2022-03-07 13:16:07 +00:00
spi-cadence.c spi: spi-cadence: Fix SPI NO Slave Select macro definition 2022-07-20 18:45:21 +01:00
spi-cavium-octeon.c
spi-cavium-thunderx.c
spi-cavium.c
spi-cavium.h
spi-clps711x.c spi: clps711x: Use syscon_regmap_lookup_by_phandle 2022-04-25 14:01:09 +01:00
spi-coldfire-qspi.c spi: coldfire-qspi: Use clk_disable_unprepare in the remove function 2021-08-19 18:20:10 +01:00
spi-davinci.c spi: davinci: invoke chipselect callback 2021-08-24 20:53:24 +01:00
spi-dln2.c spi: dln2: Propagate firmware node 2021-12-23 13:38:38 +00:00
spi-dw-bt1.c spi: dw: Put the driver entities naming in order 2021-11-16 14:30:05 +00:00
spi-dw-core.c spi: dw: Quite logging on deferred controller registration 2022-08-23 13:06:36 +01:00
spi-dw-dma.c spi: dw: Add deferred DMA-channels setup support 2022-06-27 13:24:33 +01:00
spi-dw-mmio.c spi: dw: Add support for Intel Thunder Bay SPI controller 2022-07-13 13:32:32 +01:00
spi-dw-pci.c spi: dw: Put the driver entities naming in order 2021-11-16 14:30:05 +00:00
spi-dw.h spi: dw: Add support for Intel Thunder Bay SPI controller 2022-07-13 13:32:32 +01:00
spi-ep93xx.c spi: spi-ep93xx: Prepare clock before using it 2021-08-03 18:27:24 +01:00
spi-falcon.c spi: spi-falcon: remove check for 'delay_usecs' 2021-03-12 14:30:48 +00:00
spi-fsi.c spi: fsi: Increase timeout and ensure status is checked 2022-06-23 15:48:21 +01:00
spi-fsl-cpm.c
spi-fsl-cpm.h
spi-fsl-dspi.c spi: spi-fsl-dspi: Fix issue with uninitialized dma_slave_config 2021-08-10 13:22:19 +01:00
spi-fsl-espi.c spi: fsl-espi: remove usage of 'delay_usecs' field 2021-03-12 14:30:49 +00:00
spi-fsl-lib.c
spi-fsl-lib.h
spi-fsl-lpspi.c spi: lpspi: Remove the unneeded result variable 2022-09-08 11:39:47 +01:00
spi-fsl-qspi.c spi: spi-fsl-qspi: check return value after calling platform_get_resource_byname() 2022-05-09 12:48:47 +01:00
spi-fsl-spi.c spi: Cleanup on failure of initial setup 2021-06-01 14:03:12 +01:00
spi-fsl-spi.h
spi-geni-qcom.c spi: qcom: geni: Simplify DMA setting 2022-01-28 16:00:24 +00:00
spi-gpio.c spi: gpio: Implement LSB First bitbang support 2022-02-22 11:56:41 +00:00
spi-gxp.c spi: spi-gxp: Add support for HPE GXP SoCs 2022-07-29 17:38:52 +01:00
spi-hisi-kunpeng.c spi: hisi-kunpeng: Fix the debugfs directory name incorrect 2021-11-17 13:04:54 +00:00
spi-hisi-sfc-v3xx.c spi: hisi-sfc-v3xx: drop unnecessary ACPI_PTR and related ifendif protection 2021-04-12 17:07:38 +01:00
spi-img-spfi.c spi: img-spfi: Fix pm_runtime_get_sync() error checking 2022-04-22 12:37:36 +01:00
spi-imx.c sound updates for 5.19-rc1 2022-05-25 16:55:16 -07:00
spi-ingenic.c spi: ingenic: Add support for new Ingenic SoCs. 2022-04-25 14:00:51 +01:00
spi-intel-pci.c spi: intel: Add support for Intel Meteor Lake-P SPI serial flash 2022-06-29 12:38:20 +01:00
spi-intel-platform.c mtd: spi-nor: intel-spi: Convert to SPI MEM 2022-02-14 12:53:09 +00:00
spi-intel.c spi: intel: 64k erase is supported from Canon Lake and beyond 2022-08-22 14:07:30 +01:00
spi-intel.h mtd: spi-nor: intel-spi: Convert to SPI MEM 2022-02-14 12:53:09 +00:00
spi-iproc-qspi.c
spi-jcore.c spi: jcore: Fix trailing statements should be on next line 2021-03-24 19:51:09 +00:00
spi-lantiq-ssc.c spi: Use of_device_get_match_data() 2022-02-21 13:25:19 +00:00
spi-lm70llp.c spi: lm70llp: add parenthesis for sizeof 2021-05-20 18:00:34 +01:00
spi-loopback-test.c spi: spi-loopback-test: Fix 'tx_buf' might be 'rx_buf' 2021-05-10 13:07:53 +01:00
spi-lp8841-rtc.c
spi-mem.c spi: spi-mem: Fix spi_mem_poll_status() 2022-06-06 12:32:27 +01:00
spi-meson-spicc.c spi: meson-spicc: do not rely on busy flag in pow2 clk ops 2022-09-08 13:51:51 +01:00
spi-meson-spifc.c spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe 2022-01-07 13:36:38 +00:00
spi-microchip-core-qspi.c spi: microchip-core-qspi: Add support for microchip fpga qspi controllers 2022-08-15 12:17:38 +01:00
spi-microchip-core.c spi: microchip-core: Simplify some error message 2022-08-15 12:18:41 +01:00
spi-mpc52xx-psc.c spi: mpc52xx-psc: Switch to using core message queue 2022-06-27 13:24:36 +01:00
spi-mpc52xx.c powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode 2022-06-22 12:51:49 +10:00
spi-mpc512x-psc.c spi: mpc512x-psc: Fix compile errors 2022-02-02 16:09:29 +00:00
spi-mt65xx.c spi: mt65xx: Fix definitions indentation 2022-04-19 16:32:14 +01:00
spi-mt7621.c spi: mt7621: Remove 'clk' from 'struct mt7621_spi' 2022-08-29 17:51:39 +01:00
spi-mtk-nor.c spi: spi-mtk-nor: initialize spi controller after resume 2022-04-12 17:18:51 +01:00
spi-mtk-snfi.c spi: mtk-snfi: preserve dma_mapping_error() error codes 2022-05-03 14:00:38 +01:00
spi-mux.c spi-mux: Fix false-positive lockdep splats 2021-10-14 13:32:19 +01:00
spi-mxic.c spi: mxic: Fix an error handling path in mxic_spi_probe() 2022-04-04 08:45:14 +01:00
spi-mxs.c spi: mxs: using pm_runtime_resume_and_get instead of pm_runtime_get_sync 2022-04-25 14:00:59 +01:00
spi-npcm-fiu.c spi: npcm-fiu: Add NPCM8XX support 2022-07-20 16:55:26 +01:00
spi-npcm-pspi.c spi: npcm-pspi: Add NPCM845 peripheral SPI support 2022-08-15 12:17:29 +01:00
spi-nxp-fspi.c spi: nxp-fspi: Do not dereference fwnode in struct device 2022-09-07 12:44:33 +01:00
spi-oc-tiny.c spi: oc-tiny: Use SPI_MODE_X_MASK 2021-05-11 15:42:49 +01:00
spi-omap2-mcspi.c spi: omap2-mcspi: add support for interword delay 2022-05-04 16:02:36 +01:00
spi-omap-100k.c spi: fix some invalid char occurrences 2021-05-20 17:58:33 +01:00
spi-omap-uwire.c ARM: omap1: move perseus spi pinconf to board file 2022-04-21 15:01:08 +02:00
spi-orion.c spi: orion: Add of_node_put() before goto 2021-10-15 16:10:59 +01:00
spi-pic32-sqi.c
spi-pic32.c spi: pic32: Convert to use GPIO descriptors 2022-01-31 15:17:30 +00:00
spi-pl022.c spi: spl022: fix Microwire full duplex mode 2021-10-26 11:53:57 +01:00
spi-ppc4xx.c spi: ppc4xx: add parenthesis for sizeof 2021-05-20 18:00:40 +01:00
spi-pxa2xx-dma.c spi: pxa2xx: Fix style of and typos in the comments and messages 2021-05-18 14:05:35 +01:00
spi-pxa2xx-pci.c spi: pxa2xx-pci: Constify struct pxa_spi_info variables 2022-02-28 12:10:27 +00:00
spi-pxa2xx.c spi: pxa2xx: Remove the unneeded result variable 2022-08-25 12:29:36 +01:00
spi-pxa2xx.h spi: pxa2xx: Get rid of unused ->cs_control() 2021-11-29 12:19:59 +00:00
spi-qcom-qspi.c spi: spi-qcom-qspi: Convert to use resource-managed OPP API 2021-03-16 10:14:11 +05:30
spi-qup.c spi: qup: add missing clk_disable_unprepare on error in spi_qup_pm_resume_runtime() 2022-09-05 13:09:51 +01:00
spi-rb4xx.c
spi-realtek-rtl.c
spi-rockchip-sfc.c spi: rockchip-sfc: fix platform_get_irq.cocci warning 2022-03-10 12:17:56 +00:00
spi-rockchip.c spi: rockchip: Unmask IRQ at the final to avoid preemption 2022-06-20 11:35:43 +01:00
spi-rpc-if.c spi: rpc-if: Fix RPM imbalance in probe error path 2022-04-04 08:38:59 +01:00
spi-rspi.c spi: spi-rspi: Fix PIO fallback on RZ platforms 2022-07-21 17:21:07 +01:00
spi-s3c24xx-regs.h
spi-s3c24xx.c spi: s3c24xx: Convert to GPIO descriptors 2022-01-24 13:37:34 +00:00
spi-s3c64xx.c spi: s3c64xx: correct dma_chan pointer initialization 2022-08-15 12:18:40 +01:00
spi-sc18is602.c spi: sc18is602: implement .max_{transfer,message}_size() for the controller 2021-05-21 13:13:33 +01:00
spi-sh-hspi.c
spi-sh-msiof.c spi: sh-msiof: add generic Gen4 binding 2022-08-29 12:41:36 +01:00
spi-sh-sci.c
spi-sh.c spi: sh: Switch to using core message queue 2022-06-27 13:24:35 +01:00
spi-sifive.c spi: sifive: add PM callbacks to support suspend/resume 2022-06-10 13:32:24 +01:00
spi-slave-mt27xx.c spi: mediatek: add mt8195 spi slave support 2021-03-23 17:19:45 +00:00
spi-slave-system-control.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
spi-slave-time.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
spi-sprd-adi.c spi: sprd: Add ADI r3 support 2021-08-26 12:09:38 +01:00
spi-sprd.c spi: spi-sprd: using pm_runtime_resume_and_get instead of pm_runtime_get_sync 2022-04-25 14:00:57 +01:00
spi-st-ssc4.c spi: st-ssc4: Covert to use GPIO descriptors 2022-02-01 16:08:45 +00:00
spi-stm32-qspi.c spi: stm32-qspi: Refactor dual flash mode enable check in ->setup() 2022-08-31 12:13:11 +01:00
spi-stm32.c spi: stm32: using pm_runtime_resume_and_get instead of pm_runtime_get_sync 2022-04-25 14:01:08 +01:00
spi-sun4i.c spi: sun4i: fix typos in comments 2022-03-15 12:03:58 +00:00
spi-sun6i.c spi: spi-sun6i: Fix chipselect/clock bug 2021-06-23 11:48:36 +01:00
spi-sunplus-sp7021.c spi: remove spin_lock_irq and variable in the irq procress 2022-04-19 13:13:42 +01:00
spi-synquacer.c spi: synquacer: Add missing clk_disable_unprepare() 2022-06-27 23:26:53 +01:00
spi-tegra20-sflash.c spi: spi-tegra20-sflash: using pm_runtime_resume_and_get instead of pm_runtime_get_sync 2022-04-25 14:01:03 +01:00
spi-tegra20-slink.c spi: tegra20-slink: fix UAF in tegra_slink_remove() 2022-07-13 13:49:03 +01:00
spi-tegra114.c spi: spi-tegra114: using pm_runtime_resume_and_get instead of pm_runtime_get_sync 2022-04-19 13:13:44 +01:00
spi-tegra210-quad.c spi: tegra210-quad: Multi-cs support 2022-06-13 13:28:29 +01:00
spi-test.h
spi-ti-qspi.c spi: spi-ti-qspi: Support per-transfer and per-slave speed_hz settings 2022-06-06 12:41:36 +01:00
spi-tle62x0.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
spi-topcliff-pch.c spi: topcliff-pch: Use core message validation 2022-06-20 12:43:36 +01:00
spi-uniphier.c spi: uniphier: fix reference count leak in uniphier_spi_probe() 2022-01-26 15:52:05 +00:00
spi-xcomm.c
spi-xilinx.c
spi-xlp.c spi: xlp: Remove Netlogic XLP variants 2021-11-15 13:27:17 +00:00
spi-xtensa-xtfpga.c
spi-zynq-qspi.c spi: spi-zynq-qspi: Fix a NULL pointer dereference in zynq_qspi_exec_mem_op() 2022-02-08 13:37:50 +00:00
spi-zynqmp-gqspi.c spi: spi-zynqmp-gqspi: Add two chip select support 2022-06-06 12:41:27 +01:00
spi.c spi: Add capability to perform some transfer with chipselect off 2022-09-07 15:18:48 +01:00
spidev.c spi: spidev: add SPI_RX_CPHA_FLIP 2022-04-19 13:13:48 +01:00