linux/drivers/spi
Larisa Grigore d0f379279c spi: spi-fsl-lpspi: Clear status register after disabling the module
[ Upstream commit dedf9c93de ]

Clear the error flags after disabling the module to avoid the case when
a flag is set again between flag clear and module disable. And use
SR_CLEAR_MASK to replace hardcoded value for improved readability.

Although fsl_lpspi_reset() was only introduced in commit a15dc3d657
("spi: lpspi: Fix CLK pin becomes low before one transfer"), the
original driver only reset SR in the interrupt handler, making it
vulnerable to the same issue. Therefore the fixes commit is set at the
introduction of the driver.

Fixes: 5314987de5 ("spi: imx: add lpspi bus driver")
Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com>
Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Link: https://patch.msgid.link/20250828-james-nxp-lpspi-v2-4-6262b9aa9be4@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-09-09 18:58:25 +02:00
..
atmel-quadspi.c spi: atmel-qspi: Memory barriers after memory-mapped I/O 2025-02-17 10:05:46 +01:00
internals.h spi: Rework per message DMA mapped flag to be per transfer 2024-06-10 12:49:03 +01:00
Kconfig spi: cadence: Add 64BIT Kconfig dependency 2024-07-30 14:23:14 +01:00
Makefile spi: add ch341a usb2spi driver 2024-07-08 17:01:10 +01:00
spi-airoha-snfi.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
spi-altera-core.c spi: add missing MODULE_DESCRIPTION() macros 2024-06-10 12:49:05 +01: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: altera: Drop unneeded MODULE_ALIAS 2024-04-15 10:17:25 +09:00
spi-amd.c spi: spi_amd: Add support for SPI MEM framework 2024-03-25 20:30:06 +00: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 'time_left' variable with wait_for_completion_timeout() 2024-04-30 23:57:26 +09:00
spi-aspeed-smc.c spi: aspeed: Fix an error handling path in aspeed_spi_[read|write]_user() 2024-12-19 18:13:14 +01:00
spi-at91-usart.c spi: at91-usart: Remove some dead code 2023-09-25 16:27:48 +02:00
spi-ath79.c spi: bitbang: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:48 +00:00
spi-atmel.c spi: remove struct spi_message::is_dma_mapped 2024-03-25 20:30:07 +00:00
spi-au1550.c spi: au1550: t->{tx,rx}_dma checks 2024-03-28 21:09:45 +00:00
spi-axi-spi-engine.c Add support for AD4000 series of ADCs 2024-07-29 16:48:44 +01:00
spi-bcm-qspi.c spi: bcm-qspi: fix SFDP BFPT read by usig mspi read 2024-01-23 13:28:03 +00:00
spi-bcm-qspi.h spi: bcm-qspi: Make bcm_qspi_remove() return void 2022-10-18 19:16:53 +01:00
spi-bcm63xx-hsspi.c spi: bcm63xx-hsspi: fix shared reset 2025-06-19 15:32:15 +02:00
spi-bcm63xx.c spi: bcm63xx-spi: fix shared reset 2025-06-19 15:32:15 +02:00
spi-bcm2835.c spi: bcm2835: Restore native CS probing when pinctrl-bcm2835 is absent 2025-04-10 14:39:33 +02:00
spi-bcm2835aux.c spi: bcm2835aux: Use helper function devm_clk_get_enabled() 2023-09-11 01:31:57 +01:00
spi-bcmbca-hsspi.c spi: bcmbca-hsspi: Use devm_spi_alloc_host() 2024-08-28 20:39:08 +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: bitbang: Implement support for MOSI idle state configuration 2024-07-29 01:19:52 +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 parport: Remove parport_driver.devmodel 2024-07-03 16:44:22 +02:00
spi-cadence-quadspi.c spi: cadence-quadspi: fix cleanup of rx_chan on failure paths 2025-08-01 09:48:44 +01:00
spi-cadence-xspi.c spi: cadence: Fix out-of-bounds array access in cdns_mrvl_xspi_setup_clock() 2025-04-10 14:39:32 +02:00
spi-cadence.c spi: spi-cadence: Fix missing spi_controller_is_target() check 2024-09-30 21:55:00 +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: cavium: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:50 +00:00
spi-cavium.h spi: cavium: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:50 +00:00
spi-ch341.c spi: add ch341a usb2spi driver 2024-07-08 17:01:10 +01:00
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: drop driver owner assignment 2024-03-28 13:58:41 +00:00
spi-cs42l43.c spi: cs42l43: Property entry should be a null-terminated array 2025-08-15 12:14:06 +02:00
spi-davinci.c spi: davinci: Adapt transfer's timeout to transfer's length 2024-08-28 13:38:02 +01:00
spi-dln2.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
spi-dw-bt1.c spi: dw: differentiate between unsupported and invalid requests 2024-05-27 01:33:04 +01:00
spi-dw-core.c spi: dw: Use new spi_xfer_is_dma_mapped() helper 2024-06-10 12:48:58 +01:00
spi-dw-dma.c spi: dw: remove redundant assignment to variable len 2024-02-15 14:17:19 +00:00
spi-dw-mmio.c spi: dw: Bail out early on unsupported target mode 2024-05-09 17:48:06 +02: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: Convert dw_spi::num_cs to u32 2024-05-03 11:09:24 +09:00
spi-ep93xx.c spi: ep93xx: update kerneldoc comments for ep93xx_spi 2024-09-12 14:33:12 +00: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: add missing MODULE_DESCRIPTION() macros 2024-06-10 12:49:05 +01:00
spi-fsl-cpm.h spi: fsl: remove is_dma_mapped checks 2024-03-28 21:09:46 +00:00
spi-fsl-dspi.c spi: spi-fsl-dspi: Clear completion counter before initiating transfer 2025-07-10 16:04:49 +02: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: add missing MODULE_DESCRIPTION() macros 2024-06-10 12:49:05 +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: spi-fsl-lpspi: Clear status register after disabling the module 2025-09-09 18:58:25 +02:00
spi-fsl-qspi.c spi: fsl-qspi: Fix double cleanup in probe error path 2025-07-06 11:01:50 +02:00
spi-fsl-spi.c spi: fsl: remove is_dma_mapped checks 2024-03-28 21:09:46 +00:00
spi-fsl-spi.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
spi-geni-qcom.c spi: geni-qcom: Fix boot warning related to pm_runtime and devres 2024-10-22 20:49:02 +01:00
spi-gpio.c spi: spi-gpio: Add support for MOSI idle state configuration 2024-07-29 01:19:53 +01:00
spi-gxp.c spi: spi-gxp: BUG: Correct spi write return value 2023-09-27 17:06:36 +02:00
spi-hisi-kunpeng.c spi: hisi-kunpeng: Add verification for the max_frequency provided by the firmware 2024-07-30 13:27:38 +01:00
spi-hisi-sfc-v3xx.c spi: hisi-sfc-v3xx: Return IRQ_NONE if no interrupts were detected 2024-01-23 15:05:18 +00: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: spi-imx: Add check for spi_imx_setupxfer() 2025-05-02 07:59:28 +02:00
spi-ingenic.c spi: ingenic: Use new spi_xfer_is_dma_mapped() helper 2024-06-10 12:48:59 +01:00
spi-intel-pci.c spi: intel: Add Panther Lake SPI controller support 2025-01-02 10:34:19 +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: Add check devm_kasprintf() returned value 2024-08-30 12:28:17 +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: 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-ljca.c spi: ljca: switch to use devm_spi_alloc_host() 2023-12-11 12:55:16 +00:00
spi-lm70llp.c parport: Remove parport_driver.devmodel 2024-07-03 16:44:22 +02: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: loopback-test: Do not split 1024-byte hexdumps 2025-05-22 14:29:38 +02: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: Fix error code checking in spi_mem_exec_op() 2024-03-14 14:14:20 +00:00
spi-meson-spicc.c spi: meson-spicc: convert comma to semicolon 2024-07-29 01:23:24 +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: microchip-core-qspi: fix setting spi bus clock rate 2024-05-09 06:59:19 +02:00
spi-microchip-core.c spi: microchip-core: prevent RX overflows when transmit size > FIFO size 2025-03-22 12:54:23 -07:00
spi-mpc52xx-psc.c spi: mpc52xx-psc: Make mpc52xx_psc_spi_transfer_one_message() static 2023-10-06 12:34:31 +01:00
spi-mpc52xx.c spi: mpc52xx: Add cancel_work_sync before module remove 2024-12-14 20:03:15 +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: spi-mt65xx: Use threaded interrupt for non-SPIMEM transfer 2024-07-29 01:23:25 +01:00
spi-mt7621.c spi: mt7621: allow GPIO chip select lines 2024-03-25 15:03:02 +00: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: mtk-snfi: fix kerneldoc for mtk_snand_is_page_ops() 2024-10-21 15:33:19 +01:00
spi-mux.c spi: spi-mux: Fix coverity issue, unchecked return value 2025-05-29 11:02:16 +02:00
spi-mxic.c spi: mxic: differentiate between unsupported and invalid requests 2024-05-27 01:33:05 +01:00
spi-mxs.c spi: mxs: Switch to RUNTIME/SYSTEM_SLEEP_PM_OPS() 2024-09-03 22:07:58 +01:00
spi-npcm-fiu.c spi: Unify error codes by replacing -ENOTSUPP with -EOPNOTSUPP 2023-11-30 12:12:39 +00:00
spi-npcm-pspi.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
spi-nxp-fspi.c spi: Updates for v6.12 2024-09-17 10:31:31 +02:00
spi-oc-tiny.c spi: oc-tiny: Remove unused of_gpio.h 2024-04-17 23:01:11 +09:00
spi-omap-uwire.c spi: add missing MODULE_DESCRIPTION() macros 2024-06-10 12:49:05 +01:00
spi-omap2-mcspi.c spi: omap2-mcspi: Disable multi-mode when the previous message kept CS asserted 2025-06-19 15:32:27 +02:00
spi-orion.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
spi-pci1xxxx.c spi: pci1xxxx: Use new spi_xfer_is_dma_mapped() helper 2024-06-10 12:49:01 +01:00
spi-pic32-sqi.c spi: pic32-sqi: use 'time_left' variable with wait_for_completion_timeout() 2024-04-30 23:57:29 +09:00
spi-pic32.c spi: pic32: use 'time_left' variable with wait_for_completion_timeout() 2024-04-30 23:57:30 +09:00
spi-pl022.c spi: pl022: update description of internal_cs_control() 2023-12-15 12:58:18 +00:00
spi-ppc4xx.c spi: ppc4xx: Sort headers 2024-09-02 12:56:31 +01:00
spi-pxa2xx-dma.c spi: pxa2xx: Remove DMA parameters from struct chip_data 2024-05-03 11:11:36 +09:00
spi-pxa2xx-pci.c spi: Revert "spi: Insert the missing pci_dev_put()before return" 2024-09-03 12:37:20 +01:00
spi-pxa2xx-platform.c spi: pxa2xx: Move PM runtime handling to the glue drivers 2024-08-22 13:34:06 +01:00
spi-pxa2xx.c spi: pxa2xx: Move PM runtime handling to the glue drivers 2024-08-22 13:34:06 +01:00
spi-pxa2xx.h spi: pxa2xx: Do not override dev->platform_data on probe 2024-08-22 13:34:05 +01:00
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: Rework DMA mapped flag 2024-06-11 11:38:25 +01: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: Fix register out of bounds access 2025-05-29 11:02:06 +02:00
spi-rpc-if.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
spi-rspi.c spi: rspi: Get rid of unused struct rspi_plat_data 2024-03-25 17:18:22 +00:00
spi-rzv2m-csi.c spi: rzv2m-csi: Add target mode support 2023-10-09 13:14:28 +01:00
spi-s3c64xx.c spi: s3c64xx: fix timeout counters in flush_fifo 2024-10-01 19:02:01 +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: Fix maximum DMA transfer size 2025-06-19 15:31:33 +02:00
spi-sh-sci.c spi: bitbang: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:48 +00: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: slave-mt27xx: switch to use target_abort 2024-09-10 12:41:40 +01:00
spi-slave-system-control.c spi: slave-system-control: switch to use spi_target_abort() 2024-09-10 12:41:38 +01:00
spi-slave-time.c spi: slave-time: switch to use spi_target_abort() 2024-09-10 12:41:37 +01:00
spi-sn-f-ospi.c spi: sn-f-ospi: Fix division by zero 2025-02-21 14:01:16 +01:00
spi-sprd-adi.c spi: sprd-adi: switch to use spi_alloc_host() 2023-12-11 12:54:53 +00:00
spi-sprd.c spi: sprd: switch to use modern name 2023-12-11 12:54:53 +00:00
spi-st-ssc4.c spi: st-ssc4: switch to use modern name 2023-12-11 12:54:54 +00:00
spi-stm32-qspi.c spi: stm32: qspi: Clamp stm32_qspi_get_mode() output to CCR_BUSWIDTH_4 2024-06-18 14:48:26 +01:00
spi-stm32.c spi: stm32: Check for cfg availability in stm32_spi_probe 2025-08-15 12:13:35 +02:00
spi-sun4i.c spi: spi-sun4i: fix early activation 2025-06-04 14:43:53 +02:00
spi-sun6i.c spi: sun6i: use 'time_left' variable with wait_for_completion_timeout() 2024-04-30 23:57:31 +09:00
spi-sunplus-sp7021.c spi: sunplus-sp7021: switch to use modern name 2023-12-11 12:54:59 +00:00
spi-synquacer.c spi: synquacer: switch to use modern name 2023-12-11 12:55:00 +00:00
spi-tegra20-sflash.c spi: tegra20-sflash: switch to use modern name 2023-12-11 12:55:03 +00:00
spi-tegra20-slink.c spi: tegra20-slink: switch to use modern name 2023-12-11 12:55:04 +00:00
spi-tegra114.c spi: tegra114: Use value to check for invalid delays 2025-05-22 14:29:49 +02:00
spi-tegra210-quad.c spi: tegra210-quad: modify chip select (CS) deactivation 2025-06-19 15:31:31 +02: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: switch to use modern name 2023-12-11 12:55:06 +00: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: switch to use modern name 2023-12-11 12:55:07 +00:00
spi-uniphier.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
spi-wpcm-fiu.c spi: wpcm-fiu: Simplify with dev_err_probe() 2024-08-28 22:22:24 +01:00
spi-xcomm.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
spi-xilinx.c spi: bitbang: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:48 +00:00
spi-xlp.c spi: xlp: use 'time_left' variable with wait_for_completion_timeout() 2024-04-30 23:57:32 +09:00
spi-xtensa-xtfpga.c spi: bitbang: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:48 +00:00
spi-zynq-qspi.c spi: zynq-qspi: Add check for clk_enable() 2025-02-08 09:57:03 +01:00
spi-zynqmp-gqspi.c spi: zynqmp-gqspi: Always acknowledge interrupts 2025-05-29 11:03:06 +02:00
spi.c spi: Add check for 8-bit transfer with 8 IO mode support 2025-07-24 08:56:22 +02:00
spidev.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00