linux-yocto/drivers/spi
Cheng Ming Lin 82b29ee8ba spi: Add check for 8-bit transfer with 8 IO mode support
commit 710505212e upstream.

The current SPI framework does not verify if the SPI device supports
8 IO mode when doing an 8-bit transfer. This patch adds a check to
ensure that if the transfer tx_nbits or rx_nbits is 8, the SPI mode must
support 8 IO. If not, an error is returned, preventing undefined behavior.

Fixes: d6a711a898 ("spi: Fix OCTAL mode support")
Cc: stable@vger.kernel.org
Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw>
Link: https://patch.msgid.link/20250714031023.504752-1-linchengming884@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-07-24 08:53:11 +02:00
..
atmel-quadspi.c spi: atmel-qspi: Memory barriers after memory-mapped I/O 2025-02-17 09:40:41 +01:00
internals.h
Kconfig spi: spi-zynqmp-gqspi: fix driver kconfig dependencies 2024-01-25 15:35:14 -08: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-altera-platform.c
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: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-armada-3700.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-aspeed-smc.c spi: aspeed: Fix an error handling path in aspeed_spi_[read|write]_user() 2024-12-19 18:11:29 +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: Rename SPI_MASTER_GPIO_SS to SPI_CONTROLLER_GPIO_SS 2023-07-11 14:12:56 +01:00
spi-atmel.c spi: atmel: Fix clock issue when using devices with different polarities 2024-01-01 12:42:44 +00: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: axi-spi-engine: fix version format string 2024-05-17 12:02:01 +02:00
spi-bcm-qspi.c spi: bcm-qspi: fix SFDP BFPT read by usig mspi read 2024-01-31 16:19:13 -08:00
spi-bcm-qspi.h
spi-bcm63xx-hsspi.c spi: bcm63xx-hsspi: fix shared reset 2025-06-19 15:28:32 +02:00
spi-bcm63xx.c spi: bcm63xx-spi: fix shared reset 2025-06-19 15:28:32 +02:00
spi-bcm2835.c spi: switch to use modern name 2023-08-07 21:59:25 +01:00
spi-bcm2835aux.c spi: switch to use modern name 2023-08-07 21:59:25 +01:00
spi-bcmbca-hsspi.c spi: bcmbca-hsspi: Fix missing pm_runtime_disable() 2024-10-04 16:29:03 +02: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-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: Fix pm runtime unbalance 2025-07-06 11:00:16 +02:00
spi-cadence-xspi.c spi: cadence: Ensure data lines set to low during dummy-cycle period 2024-07-11 12:49:21 +02:00
spi-cadence.c spi: spi-cadence: Fix missing spi_controller_is_target() check 2024-10-10 11:57:40 +02: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: switch to use modern name 2023-08-07 14:38:30 +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: Remove an erroneous clk_disable_unprepare() from the remove function 2024-01-25 15:35:55 -08:00
spi-cs42l43.c spi: cs42l43: Correct SPI root clock speed 2024-06-27 13:49:08 +02:00
spi-davinci.c spi: davinci: switch to use modern name 2023-08-07 14:38:31 +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-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: keep old name same as documentation 2023-08-16 12:58:07 +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: Clear completion counter before initiating transfer 2025-07-10 16:03:09 +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: 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: spi-fsl-lpspi: Adjust type of scldiv 2024-12-14 19:59:59 +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: geni-qcom: Fix boot warning related to pm_runtime and devres 2024-11-08 16:28:17 +01:00
spi-gpio.c spi: gpio: switch to use modern name 2023-08-14 13:10:57 +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-09-12 11:11:38 +02:00
spi-hisi-sfc-v3xx.c spi: hisi-sfc-v3xx: Return IRQ_NONE if no interrupts were detected 2024-03-01 13:34:49 +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: spi-imx: Add check for spi_imx_setupxfer() 2025-05-02 07:51:02 +02: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: Add Panther Lake SPI controller support 2025-01-02 10:32:05 +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: switch to use modern name 2023-08-14 13:11:06 +01:00
spi-lm70llp.c
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:12:15 +02:00
spi-lp8841-rtc.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +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: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-meson-spifc.c
spi-microchip-core-qspi.c spi: microchip-core-qspi: fix setting spi bus clock rate 2024-05-17 12:02:36 +02:00
spi-microchip-core.c spi: microchip-core: ensure TX and RX FIFOs are empty at start of a transfer 2024-08-03 08:54:40 +02:00
spi-mpc52xx-psc.c spi: spi-mpc52xx-psc: Fix an unsigned comparison that can never be negative 2023-08-07 18:37:54 +01:00
spi-mpc52xx.c spi: mpc52xx: Add cancel_work_sync before module remove 2024-12-14 19:59:49 +01:00
spi-mpc512x-psc.c spi: mpc5xxx-psc: Fix unsigned expression compared with zero 2023-08-03 17:07:09 +01:00
spi-mt65xx.c spi: spi-mt65xx: Fix NULL pointer access in interrupt handler 2024-03-26 18:20:13 -04:00
spi-mt7621.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-mtk-nor.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-mtk-snfi.c spi: Explicitly include correct DT includes 2023-07-14 20:53:00 +01:00
spi-mux.c spi: mux: set ctlr->bits_per_word_mask 2024-07-25 09:50:56 +02:00
spi-mxic.c spi: Replace all spi->chip_select and spi->cs_gpiod references with function call 2023-03-11 12:34:01 +00:00
spi-mxs.c spi-mxs: Fix chipselect glitch 2025-03-13 12:58:40 +01:00
spi-npcm-fiu.c spi: npcm-fiu: Fix UMA reads when dummy.nbytes == 0 2023-10-02 15:03:19 +01:00
spi-npcm-pspi.c
spi-nxp-fspi.c spi: fspi: add support for imx8ulp 2024-10-04 16:30:03 +02:00
spi-oc-tiny.c
spi-omap-uwire.c spi: Convert to SPI_CONTROLLER_HALF_DUPLEX 2023-07-11 14:14:31 +01:00
spi-omap2-mcspi.c spi: omap2-mcspi: Correctly handle devm_clk_get_optional() errors 2025-02-08 09:52:22 +01:00
spi-orion.c spi: orion: switch to use modern name 2023-08-21 14:29:18 +01:00
spi-pci1xxxx.c spi: mchp-pci1xxx: Fix a possible null pointer dereference in pci1xxx_spi_probe 2024-04-10 16:36:01 +02:00
spi-pic32-sqi.c spi: pic32-sqi: switch to use modern name 2023-08-21 14:29:20 +01:00
spi-pic32.c spi: pic32: switch to use modern name 2023-08-21 14:29:21 +01:00
spi-pl022.c spi: spl022: switch to use modern name 2023-08-21 14:29:22 +01:00
spi-ppc4xx.c spi: ppc4xx: Avoid returning 0 when failed to parse and map IRQ 2024-10-04 16:29:02 +02: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: switch to use modern name 2023-08-21 14:29:26 +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-06-04 14:41:55 +02:00
spi-rpc-if.c spi: rpc-if: Add missing MODULE_DEVICE_TABLE 2024-10-10 11:57:41 +02: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: fix timeout counters in flush_fifo 2024-10-10 11:57:40 +02: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:28:05 +02: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: sn-f-ospi: Fix division by zero 2025-02-21 13:57:06 +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: stm32: qspi: Clamp stm32_qspi_get_mode() output to CCR_BUSWIDTH_4 2024-06-27 13:49:14 +02:00
spi-stm32.c spi: stm32: Don't warn about spurious interrupts 2024-06-12 11:12:59 +02:00
spi-sun4i.c spi: spi-sun4i: fix early activation 2025-06-04 14:42:25 +02:00
spi-sun6i.c spi: Fixes for v6.6 2023-09-07 15:49:20 -07:00
spi-sunplus-sp7021.c
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-11-20 11:59:04 +01:00
spi-tegra114.c spi: tegra114: Use value to check for invalid delays 2025-05-22 14:12:22 +02:00
spi-tegra210-quad.c spi: tegra210-quad: modify chip select (CS) deactivation 2025-06-19 15:28:04 +02: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-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: zynq-qspi: Add check for clk_enable() 2025-02-08 09:51:50 +01:00
spi-zynqmp-gqspi.c spi: zynqmp-gqspi: Always acknowledge interrupts 2025-06-04 14:42:15 +02:00
spi.c spi: Add check for 8-bit transfer with 8 IO mode support 2025-07-24 08:53:11 +02:00
spidev.c spi: spidev: Add missing spi_device_id for jg10309-01 2024-09-30 16:25:12 +02:00