linux/drivers/spi
Stephan Gerhold ecdaa94730
spi: qup: Vote for interconnect bandwidth to DRAM
When the SPI QUP controller is used together with a DMA engine it needs
to vote for the interconnect path to the DRAM. Otherwise it may be
unable to access the memory quickly enough.

The requested peak bandwidth is dependent on the SPI core/bus clock so
that the bandwidth scales together with the selected SPI speed.

To avoid sending votes too often the bandwidth is always requested when
a DMA transfer starts, but dropped only on runtime suspend. Runtime
suspend should only happen if no transfer is active. After resumption we
can defer the next vote until the first DMA transfer actually happens.

Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Link: https://lore.kernel.org/r/20230919-spi-qup-dvfs-v2-4-1bac2e9ab8db@kernkonzept.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-09-25 14:19:38 +02:00
..
atmel-quadspi.c spi: atmel-quadspi: Convert to platform remove callback returning void 2023-03-17 15:47:51 +00:00
internals.h
Kconfig Add cs42l43 PC focused SoundWire CODEC 2023-08-18 22:46:19 +01:00
Makefile Add cs42l43 PC focused SoundWire CODEC 2023-08-18 22:46:19 +01:00
spi-altera-core.c spi: Replace all spi->chip_select and spi->cs_gpiod references with function call 2023-03-11 12:34:01 +00:00
spi-altera-dfl.c spi: spi-altera-dfl: switch to use modern name 2022-12-29 13:22:04 +00:00
spi-altera-platform.c spi: spi-altera-platform: switch to use modern name 2022-12-29 13:22:05 +00:00
spi-amd.c spi: amd: fix Wvoid-pointer-to-enum-cast warning 2023-08-14 13:11:15 +01:00
spi-amlogic-spifc-a1.c spi: amlogic-spifc-a1: switch to use devm_spi_alloc_host() 2023-08-14 13:10:48 +01:00
spi-ar934x.c spi: ar934x: Use helper function devm_clk_get_enabled() 2023-09-11 01:31:52 +01:00
spi-armada-3700.c spi: armada-3700: Use helper function devm_clk_get_prepared() 2023-09-11 01:31:53 +01:00
spi-aspeed-smc.c spi: aspeed: Use helper function devm_clk_get_enabled() 2023-09-11 01:31:54 +01:00
spi-at91-usart.c spi: at91-usart: Use PTR_ERR_OR_ZERO() to simplify code 2023-08-22 13:51:35 +01:00
spi-ath79.c spi: ath79: Use helper function devm_clk_get_enabled() 2023-09-11 01:31:55 +01:00
spi-atmel.c spi: Header and core clean up and refactoring 2023-07-12 12:44:34 +01:00
spi-au1550.c spi: au1550: switch to use modern name 2023-08-14 13:10:49 +01:00
spi-axi-spi-engine.c spi: spi-axi-spi-engine: Use helper function devm_clk_get_enabled() 2023-09-11 01:31:56 +01:00
spi-bcm63xx-hsspi.c spi: bcm63xx-hsspi: switch to use modern name 2023-08-07 14:38:23 +01:00
spi-bcm63xx.c spi: bcm63xx: switch to use modern name 2023-08-07 14:38:24 +01:00
spi-bcm2835.c spi: bcm2835: reduce the abuse of the GPIO API 2023-09-18 13:05:30 +01:00
spi-bcm2835aux.c spi: bcm2835aux: Use helper function devm_clk_get_enabled() 2023-09-11 01:31:57 +01:00
spi-bcm-qspi.c spi: bcm-qspi: switch to use modern name 2023-08-07 14:38:20 +01:00
spi-bcm-qspi.h spi: bcm-qspi: Make bcm_qspi_remove() return void 2022-10-18 19:16:53 +01:00
spi-bcmbca-hsspi.c spi: bcmbca-hsspi: switch to use modern name 2023-08-14 13:10:59 +01:00
spi-bitbang-txrx.h spi: Get rid of old SPI_MASTER_NO_TX & SPI_MASTER_NO_RX 2023-07-11 13:41:20 +01:00
spi-bitbang.c spi: Rename SPI_MASTER_GPIO_SS to SPI_CONTROLLER_GPIO_SS 2023-07-11 14:12:56 +01:00
spi-brcmstb-qspi.c spi: brcmstb-qspi: Convert to platform remove callback returning void 2023-03-06 12:31:15 +00:00
spi-butterfly.c spi: butterfly: switch to use modern name 2023-08-07 14:38:25 +01:00
spi-cadence-quadspi.c spi: spi-cadence-quadspi: add runtime pm support 2023-09-11 01:32:21 +01:00
spi-cadence-xspi.c spi: cadence-xspi: switch to use modern name 2023-08-07 14:38:26 +01:00
spi-cadence.c spi: spi-cadence: Use helper function devm_clk_get_enabled() 2023-09-11 01:31:58 +01:00
spi-cavium-octeon.c spi: octeon: switch to use modern name 2023-08-07 14:38:29 +01:00
spi-cavium-thunderx.c spi: spi-cavium-thunderx: Use helper function devm_clk_get_enabled() 2023-09-11 01:31:59 +01:00
spi-cavium.c spi: Replace all spi->chip_select and spi->cs_gpiod references with function call 2023-03-11 12:34:01 +00:00
spi-cavium.h
spi-clps711x.c spi: clps711x: switch to use modern name 2023-08-07 14:38:28 +01:00
spi-coldfire-qspi.c spi: coldfire-qspi: switch to use modern name 2023-08-07 14:38:31 +01:00
spi-cs42l43.c spi: cs42l43: Add SPI controller support 2023-08-18 17:38:11 +01:00
spi-davinci.c spi: davinci: Use helper function devm_clk_get_enabled() 2023-09-11 01:32:00 +01:00
spi-dln2.c spi: dln2: switch to use modern name 2023-08-07 14:38:32 +01:00
spi-dw-bt1.c spi: dw-bt1: Use helper function devm_clk_get_enabled() 2023-09-11 01:32:01 +01:00
spi-dw-core.c spi: dw: switch to use modern name 2023-08-07 14:38:33 +01:00
spi-dw-dma.c spi: dw: switch to use modern name 2023-08-07 14:38:33 +01:00
spi-dw-mmio.c spi: dw-mmio: Use helper function devm_clk_get_*() 2023-09-11 01:32:02 +01:00
spi-dw-pci.c
spi-dw.h spi: dw: switch to use modern name 2023-08-07 14:38:33 +01:00
spi-ep93xx.c spi: ep93xx: switch to use modern name 2023-08-14 13:10:50 +01:00
spi-falcon.c spi: falcon: switch to use modern name 2023-08-14 13:10:51 +01:00
spi-fsi.c spi: fsi: switch to use spi_alloc_host() 2023-08-14 13:10:52 +01:00
spi-fsl-cpm.c spi: fsl-cpm: Properly define and use IO pointers 2023-08-09 12:52:49 +01:00
spi-fsl-cpm.h
spi-fsl-dspi.c spi: spi-fsl-dspi: Use helper function devm_clk_get_enabled() 2023-09-11 01:32:02 +01:00
spi-fsl-espi.c spi: fsl-espi: switch to use modern name 2023-08-14 13:10:54 +01:00
spi-fsl-lib.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-fsl-lib.h spi: fsl: Remove unused extern declarations 2023-07-25 17:40:28 +01:00
spi-fsl-lpspi.c spi: fsl-lpspi: switch to use modern name 2023-08-14 13:10:54 +01:00
spi-fsl-qspi.c spi: fsl-qspi: switch to use modern name 2023-08-14 13:10:55 +01:00
spi-fsl-spi.c spi: fsl-spi: switch to use modern name 2023-08-14 13:10:56 +01:00
spi-fsl-spi.h
spi-geni-qcom.c spi: spi-geni-qcom: Add SPI Device mode support for GENI based QuPv3 2023-07-31 15:57:04 +01:00
spi-gpio.c spi: gpio: switch to use modern name 2023-08-14 13:10:57 +01:00
spi-gxp.c spi: gxp: switch to use modern name 2023-08-14 13:10:58 +01:00
spi-hisi-kunpeng.c spi: hisi-kunpeng: switch to use modern name 2023-08-07 14:38:34 +01:00
spi-hisi-sfc-v3xx.c spi: hisi-sfc-v3xx: switch to use modern name 2023-08-14 13:11:00 +01:00
spi-img-spfi.c spi: img-spfi: switch to use modern name 2023-08-14 13:11:01 +01:00
spi-imx.c spi: imx: switch to use modern name 2023-08-14 13:11:02 +01:00
spi-ingenic.c spi: ingenic: switch to use devm_spi_alloc_host() 2023-08-14 13:11:03 +01:00
spi-intel-pci.c spi: intel-pci: Add support for Meteor Lake-S SPI serial flash 2023-03-31 12:54:07 +01:00
spi-intel-platform.c
spi-intel.c spi: intel: switch to use modern name 2023-08-14 13:11:04 +01:00
spi-intel.h
spi-iproc-qspi.c spi: bcm-qspi: Simplify logic by using devm_platform_ioremap_resource_byname() 2023-08-21 13:10:56 +01:00
spi-jcore.c spi: jcore: switch to use modern name 2023-08-14 13:11:05 +01:00
spi-lantiq-ssc.c spi: lantiq-ssc: Use helper function devm_clk_get_enabled() 2023-09-11 01:32:03 +01:00
spi-lm70llp.c spi: lm70llp: switch to use modern name 2023-09-11 01:31:30 +01:00
spi-loongson-core.c spi: loongson: add bus driver for the loongson spi controller 2023-07-31 15:57:09 +01:00
spi-loongson-pci.c spi: loongson: add bus driver for the loongson spi controller 2023-07-31 15:57:09 +01:00
spi-loongson-plat.c spi: loongson: add bus driver for the loongson spi controller 2023-07-31 15:57:09 +01:00
spi-loongson.h spi: loongson: add bus driver for the loongson spi controller 2023-07-31 15:57:09 +01:00
spi-loopback-test.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-lp8841-rtc.c spi: lp-8841: switch to use modern name 2023-09-11 01:31:31 +01:00
spi-mem.c spi: Replace all spi->chip_select and spi->cs_gpiod references with function call 2023-03-11 12:34:01 +00:00
spi-meson-spicc.c spi: Use devm_clk_get_*() helper function to 2023-09-11 22:43:17 +01:00
spi-meson-spifc.c spi: Use devm_clk_get_*() helper function to 2023-09-11 22:43:17 +01:00
spi-microchip-core-qspi.c spi: Use devm_clk_get_*() helper function to 2023-09-11 22:43:17 +01:00
spi-microchip-core.c spi: Use devm_clk_get_*() helper function to 2023-09-11 22:43:17 +01:00
spi-mpc52xx-psc.c spi: mpc52xx-psc: switch to use modern name 2023-09-11 01:31:36 +01:00
spi-mpc52xx.c spi: mpc52xx: switch to use modern name 2023-09-11 01:31:37 +01:00
spi-mpc512x-psc.c spi: mpc512x-psc: switch to use modern name 2023-09-11 01:31:35 +01:00
spi-mt65xx.c spi: mt65xx: switch to use modern name 2023-09-11 01:31:37 +01:00
spi-mt7621.c spi: mt7621: switch to use modern name 2023-09-11 01:31:38 +01:00
spi-mtk-nor.c spi: mtk-nor: switch to use modern name 2023-09-11 01:31:39 +01:00
spi-mtk-snfi.c spi: Use devm_clk_get_*() helper function to 2023-09-11 22:43:17 +01:00
spi-mux.c spi: mux: switch to use spi_alloc_host() 2023-09-11 01:31:41 +01:00
spi-mxic.c spi: mxic: switch to use modern name 2023-09-11 01:31:42 +01:00
spi-mxs.c spi: mxs: switch to use modern name 2023-09-11 01:31:42 +01:00
spi-npcm-fiu.c spi: npcm-fiu: Use helper function devm_clk_get_enabled() 2023-09-11 01:32:08 +01:00
spi-npcm-pspi.c spi: npcm-pspi: switch to use modern name 2023-09-11 01:31:43 +01:00
spi-nxp-fspi.c spi: nxp-fspi: switch to use modern name 2023-09-11 01:31:44 +01:00
spi-oc-tiny.c spi: oc-tiny: switch to use modern name 2023-09-11 01:31:45 +01:00
spi-omap2-mcspi.c spi: omap2-mcspi: switch to use modern name 2023-09-11 01:31:47 +01:00
spi-omap-uwire.c spi: omap-uwire: switch to use modern name 2023-09-11 01:31:46 +01:00
spi-orion.c spi: orion: Use helper function devm_clk_get_enabled() 2023-09-11 01:32:09 +01:00
spi-pci1xxxx.c spi: mchp-pci1xxxx: Annotate struct pci1xxxx_spi with __counted_by 2023-09-22 19:01:40 +01:00
spi-pic32-sqi.c spi: pic32-sqi: Use helper function devm_clk_get_enabled() 2023-09-11 01:32:10 +01:00
spi-pic32.c spi: pic32: Use helper function devm_clk_get_enabled() 2023-09-11 01:32:11 +01:00
spi-pl022.c spi: spl022: Use helper function devm_clk_get_enabled() 2023-09-11 01:32:11 +01:00
spi-ppc4xx.c spi: ppc4xx: switch to use modern name 2023-08-21 14:29:23 +01:00
spi-pxa2xx-dma.c
spi-pxa2xx-pci.c
spi-pxa2xx.c spi: pxa2xx: switch to use modern name 2023-08-21 14:29:24 +01:00
spi-pxa2xx.h
spi-qcom-qspi.c spi: spi-qcom-qspi: switch to use modern name 2023-08-21 14:29:25 +01:00
spi-qup.c spi: qup: Vote for interconnect bandwidth to DRAM 2023-09-25 14:19:38 +02:00
spi-rb4xx.c spi: rb4xx: switch to use modern name 2023-08-21 14:29:27 +01:00
spi-realtek-rtl.c spi: realtek-rtl: switch to use devm_spi_alloc_host() 2023-08-21 14:29:28 +01:00
spi-rockchip-sfc.c spi: rockchip-sfc: switch to use modern name 2023-08-21 14:29:29 +01:00
spi-rockchip.c spi: rockchip: Use helper function devm_clk_get_enabled() 2023-09-11 01:32:12 +01:00
spi-rpc-if.c spi: rpc-if: switch to use devm_spi_alloc_host() 2023-08-16 12:58:08 +01:00
spi-rspi.c spi: rspi: switch to use spi_alloc_host() 2023-08-21 14:29:30 +01:00
spi-rzv2m-csi.c spi: rzv2m-csi: switch to use devm_spi_alloc_host() 2023-08-21 14:29:31 +01:00
spi-s3c64xx.c spi: s3c64xx: switch to use modern name 2023-08-21 14:29:32 +01:00
spi-sc18is602.c spi: sc18is602: switch to use modern name 2023-08-21 14:29:33 +01:00
spi-sh-hspi.c spi: sh-hspi: switch to use modern name 2023-08-21 14:29:34 +01:00
spi-sh-msiof.c spi: sh-msiof: switch to use modern name 2023-08-21 14:29:35 +01:00
spi-sh-sci.c spi: sh-sci: switch to use modern name 2023-08-21 14:29:36 +01:00
spi-sh.c spi: sh: switch to use modern name 2023-08-21 14:29:37 +01:00
spi-sifive.c spi: sifive: switch to use modern name 2023-08-21 14:29:38 +01:00
spi-slave-mt27xx.c spi: Get rid of old SPI_MASTER_MUST_TX & SPI_MASTER_MUST_RX 2023-07-11 13:41:25 +01:00
spi-slave-system-control.c
spi-slave-time.c
spi-sn-f-ospi.c spi: spi-sn-f-ospi: switch to use modern name 2023-08-21 14:29:39 +01:00
spi-sprd-adi.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-sprd.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-st-ssc4.c spi: Replace all spi->chip_select and spi->cs_gpiod references with function call 2023-03-11 12:34:01 +00:00
spi-stm32-qspi.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-stm32.c spi: Updates for v6.6 2023-08-29 09:47:33 -07:00
spi-sun4i.c spi: Replace all spi->chip_select and spi->cs_gpiod references with function call 2023-03-11 12:34:01 +00:00
spi-sun6i.c spi: Fixes for v6.6 2023-09-07 15:49:20 -07:00
spi-sunplus-sp7021.c spi: sunplus-sp7021: Convert to platform remove callback returning void 2023-03-06 21:18:18 +00:00
spi-synquacer.c spi: Replace all spi->chip_select and spi->cs_gpiod references with function call 2023-03-11 12:34:01 +00:00
spi-tegra20-sflash.c spi: tegra20-sflash: fix to check return value of platform_get_irq() in tegra_sflash_probe() 2023-07-26 16:30:19 +01:00
spi-tegra20-slink.c spi: tegra: Fix missing IRQ check in tegra_slink_probe() 2023-09-11 01:32:20 +01:00
spi-tegra114.c spi: tegra114: Remove unnecessary NULL-pointer checks 2023-08-15 19:55:00 +01:00
spi-tegra210-quad.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-test.h
spi-ti-qspi.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-tle62x0.c
spi-topcliff-pch.c spi: Replace all spi->chip_select and spi->cs_gpiod references with function call 2023-03-11 12:34:01 +00:00
spi-uniphier.c spi: uniphier: Convert to platform remove callback returning void 2023-03-06 21:18:24 +00:00
spi-wpcm-fiu.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-xcomm.c spi: Convert to SPI_CONTROLLER_HALF_DUPLEX 2023-07-11 14:14:31 +01:00
spi-xilinx.c spi: xilinx: Use devm_platform_get_and_ioremap_resource() 2023-03-28 14:49:37 +01:00
spi-xlp.c spi: Replace all spi->chip_select and spi->cs_gpiod references with function call 2023-03-11 12:34:01 +00:00
spi-xtensa-xtfpga.c spi: Get rid of old SPI_MASTER_NO_TX & SPI_MASTER_NO_RX 2023-07-11 13:41:20 +01:00
spi-zynq-qspi.c spi: spi-zynq: Do not check for 0 return after calling platform_get_irq() 2023-08-07 14:38:39 +01:00
spi-zynqmp-gqspi.c spi: spi-zynq: Do not check for 0 return after calling platform_get_irq() 2023-08-07 14:38:39 +01:00
spi.c spi: Drop warning from spi_stop_queue() 2023-09-18 13:05:29 +01:00
spidev.c spidev: Simplify SPI_IOC_RD_MODE* cases in spidev_ioctl() 2023-09-11 01:31:51 +01:00