The following changes since commit 54be6c6c5ae8e0d93a6c4641cb7528eb0b6ba478: Linux 6.8-rc3 (2024-02-04 12:20:36 +0000) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git tags/spi-v6.9 for you to fetch changes up to be84be4a35fa99cca7e81e6dd21516a324cca413: spi: Introduce SPI_INVALID_CS and is_valid_cs() (2024-03-07 15:07:11 +0000) ---------------------------------------------------------------- spi: Updates for v6.9 This release sees some exciting changes from David Lechner which implements some optimisations that have been talked about for a long time which allows client drivers to pre-prepare SPI messages for repeated or low latency use. This lets us move work out of latency sensitive paths and avoid repeating work for frequently performed operations. As well as being useful in itself this will also be used in future to allow controllers to directly trigger SPI operations (eg, from interrupts). Otherwise this release has mostly been focused on cleanups, plus a couple of new devices: - Support for pre-optimising messages. - A big set of updates from Uwe Kleine-König moving drivers to use APIs with more modern terminology for controllers. - Major overhaul of the s3c64xx driver. - Support for Google GS101 and Samsung Exynos850. ---------------------------------------------------------------- Ahelenia ZiemiaÅ?ska (1): spi: Kconfig: cap[c]ability Alexander Stein (1): spi: nxp-fspi: Adjust LUT debug output alignment Andy Shevchenko (8): spi: gpio: Follow renaming of SPI "master" to "controller" spi: pic32: Replace of_gpio.h by proper one spi: stm32-qspi: Replace of_gpio.h by proper one spi: Exctract spi_set_all_cs_unused() helper spi: Exctract spi_dev_check_cs() helper spi: Consistently use BIT for cs_index_mask spi: Fix types of the last chip select storage variables spi: Introduce SPI_INVALID_CS and is_valid_cs() Charles Keepax (2): spi: cs42l43: Handle error from devm_pm_runtime_enable() spi: cs42l43: Clean up of firmware node Colin Ian King (1): spi: dw: remove redundant assignment to variable len Dan Carpenter (1): spi: mchp-pci1xxxx: release resources on error in probe() David Lechner (16): spi: consolidate setting message->spi spi: avoid double validation in __spi_sync() spi: reorder spi_message struct member doc comments spi: move split xfers for CS_WORD emulation spi: bcm2835: implement ctlr->max_transfer_size spi: axi-spi-engine: use common AXI macros spi: drop gpf arg from __spi_split_transfer_maxsize() spi: axi-spi-engine: remove use of ida for sync id spi: axi-spi-engine: move msg finalization out of irq handler spi: add spi_optimize_message() APIs spi: move splitting transfers to spi_optimize_message() spi: stm32: move splitting transfers to optimize_message spi: axi-spi-engine: move message compile to optimize_message spi: axi-spi-engine: remove p from struct spi_engine_message_state spi: axi-spi-engine: use __counted_by() attribute spi: axi-spi-engine: use struct_size() macro Dhruva Gole (1): spi: Update the "master/slave" terminology in documentation Greg Kroah-Hartman (1): spi: make spi_bus_type const Krzysztof Kozlowski (3): spi: pl022: Use typedef for dma_filter_fn spi: pl022: Add missing dma_filter field kerneldoc spi: pxa2xx: Use typedef for dma_filter_fn Luis de Arquer (2): spi: spi-rockchip: Fix out of bounds array access spi: spi-rockchip: Fix max_native_cs Mark Brown (7): arm64: exynos: Enable SPI for Exynos850 spi: fsl-dspi: A couple of error handling spi: s3c64xx: add support for google,gs101-spi spi: get rid of some legacy macros spi: s3c64xx: straightforward cleanup spi: add support for pre-cooking messages spi: axi-spi-engine: small cleanups Mika Westerberg (2): spi: intel: Add default partition and name to the second chip spi: intel: Keep the BIOS partition inside the first chip Peng Fan (2): dt-bindings: spi: fsl-lpspi: support i.MX95 LPSPI dt-bindings: spi: nxp-fspi: support i.MX93 and i.MX95 Randy Dunlap (1): spi: spi-summary.rst: fix underline length Ruihai Zhou (1): spi: spi-mt65xx: Support sleep pin control Sam Protsenko (3): spi: s3c64xx: Extract FIFO depth calculation to a dedicated macro spi: s3c64xx: Add Exynos850 support spi: dt-bindings: samsung: Add Exynos850 SPI Thangaraj Samynathan (2): spi: mchp-pci1xxxx: Add support for DMA in SPI spi: mchp-pci1xxxx: DMA support for copying data to and from SPI Buf Théo Lebrun (4): spi: cadence-qspi: assert each subnode flash CS is valid spi: cadence-qspi: set maximum chip-select to 4 spi: cadence-qspi: report correct number of chip-select spi: spi-mem: add statistics support to ->exec_op() calls Tudor Ambarus (34): spi: s3c64xx: sort headers alphabetically spi: s3c64xx: explicitly include <linux/io.h> spi: s3c64xx: explicitly include <linux/bits.h> spi: s3c64xx: explicitly include <linux/types.h> spi: s3c64xx: avoid possible negative array index spi: s3c64xx: fix typo, s/configuartion/configuration spi: s3c64xx: remove unneeded (void *) casts in of_match_table spi: s3c64xx: remove else after return spi: s3c64xx: move common code outside if else spi: s3c64xx: check return code of dmaengine_slave_config() spi: s3c64xx: propagate the dma_submit_error() error code spi: s3c64xx: rename prepare_dma() to s3c64xx_prepare_dma() spi: s3c64xx: return ETIMEDOUT for wait_for_completion_timeout() spi: s3c64xx: drop blank line between declarations spi: s3c64xx: downgrade dev_warn to dev_dbg for optional dt props spi: s3c64xx: remove duplicated definition spi: s3c64xx: drop a superfluous bitwise NOT operation spi: dt-bindings: samsung: add google,gs101-spi compatible spi: s3c64xx: prepare for a different flavor of iowrite rep spi: s3c64xx: add s3c64xx_iowrite{8,16}_32_rep accessors spi: s3c64xx: add support for google,gs101-spi spi: dt-bindings: samsung: make dma properties not required spi: dt-bindings: introduce FIFO depth properties spi: s3c64xx: define a magic value spi: s3c64xx: allow full FIFO masks spi: s3c64xx: determine the fifo depth only once spi: s3c64xx: retrieve the FIFO depth from the device tree spi: s3c64xx: allow FIFO depth to be determined from the compatible spi: s3c64xx: let the SPI core determine the bus number spi: s3c64xx: introduce s3c64xx_spi_set_port_id() spi: s3c64xx: get rid of the OF alias ID dependency spi: s3c64xx: deprecate fifo_lvl_mask, rx_lvl_offset and port_id spi: s3c64xx: switch gs101 to new port config data spi: s3c64xx: switch exynos850 to new port config data Uwe Kleine-König (33): fpga: ice40-spi: Follow renaming of SPI "master" to "controller" ieee802154: ca8210: Follow renaming of SPI "master" to "controller" iio: adc: ad_sigma_delta: Follow renaming of SPI "master" to "controller" Input: pxspad - follow renaming of SPI "master" to "controller" Input: synaptics-rmi4 - follow renaming of SPI "master" to "controller" media: mgb4: Follow renaming of SPI "master" to "controller" media: netup_unidvb: Follow renaming of SPI "master" to "controller" media: usb/msi2500: Follow renaming of SPI "master" to "controller" media: v4l2-subdev: Follow renaming of SPI "master" to "controller" misc: gehc-achc: Follow renaming of SPI "master" to "controller" mmc: mmc_spi: Follow renaming of SPI "master" to "controller" mtd: dataflash: Follow renaming of SPI "master" to "controller" net: ks8851: Follow renaming of SPI "master" to "controller" net: vertexcom: mse102x: Follow renaming of SPI "master" to "controller" platform/chrome: cros_ec_spi: Follow renaming of SPI "master" to "controller" spi: bitbang: Follow renaming of SPI "master" to "controller" spi: cadence-quadspi: Don't emit error message on allocation error spi: cadence-quadspi: Follow renaming of SPI "master" to "controller" spi: cavium: Follow renaming of SPI "master" to "controller" spi: geni-qcom: Follow renaming of SPI "master" to "controller" spi: loopback-test: Follow renaming of SPI "master" to "controller" spi: slave-mt27xx: Follow renaming of SPI "master" to "controller" spi: spidev: Follow renaming of SPI "master" to "controller" staging: fbtft: Follow renaming of SPI "master" to "controller" staging: greybus: spi: Follow renaming of SPI "master" to "controller" tpm_tis_spi: Follow renaming of SPI "master" to "controller" usb: gadget: max3420_udc: Follow renaming of SPI "master" to "controller" video: fbdev: mmp: Follow renaming of SPI "master" to "controller" wifi: libertas: Follow renaming of SPI "master" to "controller" spi: fsl-lib: Follow renaming of SPI "master" to "controller" spi: Drop compat layer from renaming "master" to "controller" Documentation: spi: Update documentation for renaming "master" to "controller" spi: ppc4xx: Fix fallout from rename in struct spi_bitbang Varshini Rajendran (1): spi: dt-bindings: atmel,at91rm9200-spi: remove 9x60 compatible from list andy.shevchenko@xxxxxxxxx (2): spi: fsl-dspi: Preserve error code returned by dmaengine_slave_config() spi: fsl-dspi: Unify error messaging in dspi_request_dma() .../bindings/spi/atmel,at91rm9200-spi.yaml | 1 - .../devicetree/bindings/spi/samsung,spi.yaml | 4 +- .../devicetree/bindings/spi/spi-controller.yaml | 27 ++ .../devicetree/bindings/spi/spi-fsl-lpspi.yaml | 1 + .../devicetree/bindings/spi/spi-nxp-fspi.yaml | 18 +- Documentation/driver-api/driver-model/devres.rst | 2 +- Documentation/spi/spi-summary.rst | 114 ++--- drivers/char/tpm/tpm_tis_spi_main.c | 4 +- drivers/fpga/ice40-spi.c | 4 +- drivers/iio/adc/ad_sigma_delta.c | 14 +- drivers/input/joystick/psxpad-spi.c | 4 +- drivers/input/rmi4/rmi_spi.c | 2 +- drivers/media/pci/mgb4/mgb4_core.c | 14 +- drivers/media/pci/netup_unidvb/netup_unidvb_spi.c | 48 +- drivers/media/usb/msi2500/msi2500.c | 38 +- drivers/media/v4l2-core/v4l2-spi.c | 4 +- drivers/misc/gehc-achc.c | 8 +- drivers/mmc/host/mmc_spi.c | 6 +- drivers/mtd/devices/mtd_dataflash.c | 2 +- drivers/net/ethernet/micrel/ks8851_spi.c | 4 +- drivers/net/ethernet/vertexcom/mse102x.c | 2 +- drivers/net/ieee802154/ca8210.c | 2 +- drivers/net/wireless/marvell/libertas/if_spi.c | 2 +- drivers/platform/chrome/cros_ec_spi.c | 8 +- drivers/spi/Kconfig | 2 +- drivers/spi/spi-ath79.c | 4 +- drivers/spi/spi-au1550.c | 2 +- drivers/spi/spi-axi-spi-engine.c | 138 ++---- drivers/spi/spi-bcm2835.c | 27 +- drivers/spi/spi-bitbang.c | 64 +-- drivers/spi/spi-butterfly.c | 6 +- drivers/spi/spi-cadence-quadspi.c | 21 +- drivers/spi/spi-cavium.c | 6 +- drivers/spi/spi-cavium.h | 2 +- drivers/spi/spi-cs42l43.c | 22 +- drivers/spi/spi-davinci.c | 6 +- drivers/spi/spi-dw-dma.c | 2 +- drivers/spi/spi-fsl-dspi.c | 15 +- drivers/spi/spi-fsl-lib.c | 14 +- drivers/spi/spi-geni-qcom.c | 2 +- drivers/spi/spi-gpio.c | 2 +- drivers/spi/spi-intel.c | 34 +- drivers/spi/spi-lm70llp.c | 6 +- drivers/spi/spi-loopback-test.c | 4 +- drivers/spi/spi-mem.c | 49 +- drivers/spi/spi-mt65xx.c | 5 + drivers/spi/spi-nxp-fspi.c | 2 +- drivers/spi/spi-oc-tiny.c | 6 +- drivers/spi/spi-omap-uwire.c | 4 +- drivers/spi/spi-pci1xxxx.c | 510 ++++++++++++++++++-- drivers/spi/spi-pic32.c | 2 +- drivers/spi/spi-ppc4xx.c | 14 +- drivers/spi/spi-rockchip.c | 13 +- drivers/spi/spi-s3c64xx.c | 301 +++++++++--- drivers/spi/spi-sh-sci.c | 10 +- drivers/spi/spi-slave-mt27xx.c | 2 +- drivers/spi/spi-stm32-qspi.c | 2 +- drivers/spi/spi-stm32.c | 30 +- drivers/spi/spi-xilinx.c | 4 +- drivers/spi/spi-xtensa-xtfpga.c | 2 +- drivers/spi/spi.c | 520 ++++++++++++--------- drivers/spi/spidev.c | 2 +- drivers/staging/fbtft/fbtft-core.c | 4 +- drivers/staging/greybus/spilib.c | 66 +-- drivers/usb/gadget/udc/max3420_udc.c | 2 +- drivers/video/fbdev/mmp/hw/mmp_spi.c | 26 +- include/linux/amba/pl022.h | 4 +- include/linux/spi/pxa2xx_spi.h | 3 +- include/linux/spi/spi.h | 64 +-- include/linux/spi/spi_bitbang.h | 2 +- include/linux/spi/spi_gpio.h | 4 +- include/media/v4l2-common.h | 6 +- 72 files changed, 1569 insertions(+), 802 deletions(-)