linux-stable/drivers/spi
Marek Vasut 35637acc98 spi: cadence: Correct initialisation of runtime PM again
[ Upstream commit 56912da7a6 ]

The original implementation of RPM handling in probe() was mostly
correct, except it failed to call pm_runtime_get_*() to activate the
hardware. The subsequent fix, 734882a8bf ("spi: cadence: Correct
initialisation of runtime PM"), breaks the implementation further,
to the point where the system using this hard IP on ZynqMP hangs on
boot, because it accesses hardware which is gated off.

Undo 734882a8bf ("spi: cadence: Correct initialisation of runtime
PM") and instead add missing pm_runtime_get_noresume() and move the
RPM disabling all the way to the end of probe(). That makes ZynqMP
not hang on boot yet again.

Fixes: 734882a8bf ("spi: cadence: Correct initialisation of runtime PM")
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Charles Keepax <ckeepax@opensource.cirrus.com>
Cc: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20210716182133.218640-1-marex@denx.de
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-07-28 13:30:56 +02:00
..
atmel-quadspi.c spi: atmel-quadspi: Fix AHB memory accesses 2020-12-30 11:51:43 +01:00
internals.h
Kconfig spi: Prevent adding devices below an unregistering controller 2020-08-26 10:40:50 +02:00
Makefile ARM: SoC driver updates for v5.4 2019-09-16 15:52:38 -07:00
spi-altera.c spi: altera: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:14:50 +01:00
spi-armada-3700.c spi: a3700: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:15:09 +01:00
spi-at91-usart.c
spi-ath79.c spi: ath79: remove spi-master setup and cleanup assignment 2021-05-11 14:04:05 +02:00
spi-atmel.c spi: atmel: Put allocated master before return 2021-03-04 10:26:30 +01:00
spi-au1550.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
spi-axi-spi-engine.c spi: spi-axi: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:15:49 +01:00
spi-bcm-qspi.c spi: bcm-qspi: Fix use-after-free on unbind 2020-12-02 08:49:44 +01:00
spi-bcm-qspi.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 459 2019-06-19 17:09:09 +02:00
spi-bcm63xx-hsspi.c spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in bcm63xx_hsspi_resume 2020-12-30 11:51:06 +01:00
spi-bcm63xx.c spi: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:15:43 +01:00
spi-bcm2835.c spi: bcm2835: Fix out-of-bounds access with more than 4 slaves 2021-06-16 11:59:39 +02:00
spi-bcm2835aux.c spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe 2020-12-02 08:49:54 +01:00
spi-bitbang-txrx.h
spi-bitbang.c spi: Cleanup on failure of initial setup 2021-06-16 11:59:38 +02:00
spi-brcmstb-qspi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 459 2019-06-19 17:09:09 +02:00
spi-butterfly.c spi: docs: convert to ReST and add it to the kABI bookset 2019-07-31 14:13:13 -06:00
spi-cadence.c spi: cadence: Correct initialisation of runtime PM again 2021-07-28 13:30:56 +02:00
spi-cavium-octeon.c spi: octeon: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:17:27 +01:00
spi-cavium-thunderx.c spi: spi-cavium-thunderx: Add missing pci_release_regions() 2020-01-12 12:21:20 +01:00
spi-cavium.c
spi-cavium.h
spi-clps711x.c spi: clps711x: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:17:36 +01:00
spi-coldfire-qspi.c spi: coldfire-qspi: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:17:56 +01:00
spi-davinci.c spi: davinci: Fix use-after-free on unbind 2020-12-30 11:51:41 +01:00
spi-dln2.c spi: dln2: Fix reference leak to master 2021-05-11 14:04:06 +02:00
spi-dw-mid.c spi: dw: Return any value retrieved from the dma_transfer callback 2020-06-22 09:31:10 +02:00
spi-dw-mmio.c spi: dw-mmio: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:18:05 +01:00
spi-dw-pci.c Merge branch 'spi-5.4' into spi-next 2019-09-15 10:32:06 +01:00
spi-dw.c spi: dw: Return any value retrieved from the dma_transfer callback 2020-06-22 09:31:10 +02:00
spi-dw.h spi: spi-dw: Add lock protect dw_spi rx/tx to prevent concurrent calls 2020-02-01 09:34:44 +00:00
spi-efm32.c spi: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:15:43 +01:00
spi-ep93xx.c spi: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:15:43 +01:00
spi-falcon.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-fsl-cpm.c spi: fsl-spi: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:24:26 +01:00
spi-fsl-cpm.h
spi-fsl-dspi.c spi: spi-fsl-dspi: Fix a resource leak in an error handling path 2021-06-03 08:59:07 +02:00
spi-fsl-espi.c spi: fsl-espi: Only process interrupts for expected events 2020-10-07 08:01:27 +02:00
spi-fsl-lib.c
spi-fsl-lib.h spi: fsl: Convert to use CS GPIO descriptors 2019-08-28 14:10:41 +01:00
spi-fsl-lpspi.c spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware() 2021-05-14 09:44:21 +02:00
spi-fsl-qspi.c spi: spi-fsl-qspi: Ensure width is respected in spi-mem operations 2020-02-24 08:36:54 +01:00
spi-fsl-spi.c spi: Cleanup on failure of initial setup 2021-06-16 11:59:38 +02:00
spi-fsl-spi.h
spi-geni-qcom.c spi: spi-geni-qcom: Fix use-after-free on unbind 2021-06-03 08:59:06 +02:00
spi-gpio.c spi: gpio: Don't leak SPI master in probe error path 2020-12-30 11:51:41 +01:00
spi-img-spfi.c spi: img-spfi: fix reference leak in img_spfi_resume 2020-12-30 11:51:04 +01:00
spi-imx.c spi: imx: add a check for speed_hz before calculating the clock 2021-07-28 13:30:54 +02:00
spi-iproc-qspi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
spi-jcore.c
spi-lantiq-ssc.c spi: lantiq-ssc: Fix warning by using WQ_MEM_RECLAIM 2020-08-19 08:16:14 +02:00
spi-lm70llp.c spi: docs: convert to ReST and add it to the kABI bookset 2019-07-31 14:13:13 -06:00
spi-loopback-test.c spi: spi-loopback-test: Fix 'tx_buf' might be 'rx_buf' 2021-07-14 16:53:10 +02:00
spi-lp8841-rtc.c spi: lp-8841: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:18:35 +01:00
spi-mem.c spi: spi-mem: fix reference leak in spi_mem_access_start 2020-12-30 11:51:04 +01:00
spi-meson-spicc.c spi: meson-spicc: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:18:55 +01:00
spi-meson-spifc.c spi: spi-meson-spifc: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:19:14 +01:00
spi-mpc52xx-psc.c
spi-mpc52xx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 428 2019-06-05 17:37:16 +02:00
spi-mpc512x-psc.c
spi-mt65xx.c spi: mediatek: fix fifo rx mode 2021-07-28 13:30:55 +02:00
spi-mt7621.c spi: mt7621: Don't leak SPI master in probe error path 2020-12-30 11:51:42 +01:00
spi-mxic.c spi: mxic: Don't leak SPI master in probe error path 2020-12-30 11:51:42 +01:00
spi-mxs.c spi: mxs: fix reference leak in mxs_spi_probe 2020-12-30 11:51:09 +01:00
spi-npcm-fiu.c spi: npcm-fiu: Disable clock in probe error path 2021-01-23 15:57:56 +01:00
spi-npcm-pspi.c spi: npcm: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:20:03 +01:00
spi-nxp-fspi.c spi: spi-nxp-fspi: move the register operation after the clock enable 2021-06-30 08:47:44 -04:00
spi-oc-tiny.c spi: oc-tiny: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:20:33 +01:00
spi-omap-100k.c spi: omap-100k: Fix the length judgment problem 2021-07-14 16:53:10 +02:00
spi-omap-uwire.c spi: Cleanup on failure of initial setup 2021-06-16 11:59:38 +02:00
spi-omap2-mcspi.c spi: Cleanup on failure of initial setup 2021-06-16 11:59:38 +02:00
spi-orion.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-pic32-sqi.c spi: pic32-sqi: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:20:52 +01:00
spi-pic32.c spi: pic32: Don't leak DMA channels in probe error path 2020-12-30 11:51:42 +01:00
spi-pl022.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
spi-ppc4xx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-pxa2xx-dma.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-pxa2xx-pci.c spi: pxa2xx: Fix the controller numbering for Wildcat Point 2021-03-04 10:26:34 +01:00
spi-pxa2xx.c spi: Cleanup on failure of initial setup 2021-06-16 11:59:38 +02:00
spi-pxa2xx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-qcom-qspi.c spi: spi-qcom-qspi: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:21:12 +01:00
spi-qup.c spi: qup: fix PM reference leak in spi_qup_remove() 2021-05-11 14:04:06 +02:00
spi-rb4xx.c spi: rb4xx: Don't leak SPI master in probe error path 2020-12-30 11:51:42 +01:00
spi-rockchip.c spi: rockchip: Fix error in SPI slave pio read 2020-08-19 08:15:58 +02:00
spi-rspi.c spi: rspi: Use platform_get_irq_byname_optional() for optional irqs 2020-01-17 19:49:01 +01:00
spi-s3c24xx-fiq.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-s3c24xx-fiq.S ARM: s3c: fix fiq for clang IAS 2021-03-04 10:26:16 +01:00
spi-s3c24xx.c spi: s3c24xx: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:21:31 +01:00
spi-s3c64xx.c spi: spi-s3c64xx: Check return values 2020-10-29 09:57:34 +01:00
spi-sc18is602.c spi: sc18is602: Don't leak SPI master in probe error path 2020-12-30 11:51:42 +01:00
spi-sh-hspi.c
spi-sh-msiof.c spi: sh-msiof: Use devm_platform_ioremap_resource() helper 2019-08-07 14:24:47 +01:00
spi-sh-sci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-sh.c spi: spi-sh: Fix use-after-free on unbind 2020-12-30 11:51:41 +01:00
spi-sifive.c spi: sifive: disable clk when probe fails and remove 2019-12-31 16:44:34 +01:00
spi-sirf.c spi: sirf: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:22:00 +01:00
spi-slave-mt27xx.c spi: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:15:43 +01:00
spi-slave-system-control.c
spi-slave-time.c
spi-sprd-adi.c spi: sprd: switch the sequence of setting WDG_LOAD_LOW and _HIGH 2020-07-22 09:33:18 +02:00
spi-sprd.c spi: sprd: Add missing MODULE_DEVICE_TABLE 2021-06-16 11:59:34 +02:00
spi-st-ssc4.c spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path 2020-12-30 11:51:42 +01:00
spi-stm32-qspi.c spi: stm32-qspi: Always wait BUSY bit to be cleared in stm32_qspi_wait_cmd() 2021-06-23 14:41:27 +02:00
spi-stm32.c spi: stm32: fixes pm_runtime calls in probe/remove 2021-07-28 13:30:55 +02:00
spi-sun4i.c spi: sun4i: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:22:29 +01:00
spi-sun6i.c spi: spi-sun6i: Fix chipselect/clock bug 2021-07-14 16:53:24 +02:00
spi-synquacer.c spi: spi-synquacer: fix set_cs handling 2021-03-04 10:26:51 +01:00
spi-tegra20-sflash.c spi: tegra20-sflash: fix reference leak in tegra_sflash_resume 2020-12-30 11:51:06 +01:00
spi-tegra20-slink.c spi: tegra20-slink: fix reference leak in slink ops of tegra20 2020-12-30 11:51:06 +01:00
spi-tegra114.c spi: tegra114: fix reference leak in tegra spi ops 2020-12-30 11:51:06 +01:00
spi-test.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
spi-ti-qspi.c spi: spi-ti-qspi: Free DMA resources 2021-05-11 14:04:02 +02:00
spi-tle62x0.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-topcliff-pch.c spi: spi-topcliff-pch: Fix potential double free in pch_spi_process_messages() 2021-07-14 16:53:10 +02:00
spi-txx9.c
spi-uniphier.c spi: uniphier: Fix FIFO threshold 2020-01-09 10:20:04 +01:00
spi-xcomm.c
spi-xilinx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-xlp.c spi: xlp: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:23:28 +01:00
spi-xtensa-xtfpga.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-zynq-qspi.c spi: zynq-qspi: use devm_platform_ioremap_resource() to simplify code 2019-09-04 17:24:07 +01:00
spi-zynqmp-gqspi.c spi/zynqmp: remove entry that causes a cs glitch 2020-03-25 08:25:45 +01:00
spi.c spi: Make of_register_spi_device also set the fwnode 2021-07-14 16:53:09 +02:00
spidev.c spi: spidev: Align buffers for DMA 2020-08-19 08:16:25 +02:00