2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-26 22:24:09 +08:00
linux-next/drivers/spi
Mark Brown 627bad89ce
Merge series "MTD: spinand: Add spi_mem_poll_status() support" from <patrice.chotard@foss.st.com>
Patrice Chotard <patrice.chotard@foss.st.com>:

From: Patrice Chotard <patrice.chotard@foss.st.com>

This series adds support for the spi_mem_poll_status() spinand
interface.
Some QSPI controllers allows to poll automatically memory
status during operations (erase, read or write). This allows to
offload the CPU for this task.
STM32 QSPI is supporting this feature, driver update are also
part of this series.

Changes in v5:
  - Update spi_mem_read_status() description.
  - Update poll_status() description API by indicating that data buffer is
    filled with last status value.
  - Update timeout parameter by timeout_ms in spi_mem_poll_status() prototype.
  - Remove parenthesys arount -EINVAL in spi_mem_poll_status().
  - Add missing spi_mem_supports_op() call in stm32_qspi_poll_status().
  - Add Boris Reviewed-by for patch 1 and 2.

Changes in v4:
  - Remove init_completion() from spi_mem_probe() added in v2.
  - Add missing static for spi_mem_read_status().
  - Check if operation in spi_mem_poll_status() is a READ.
  - Update patch 2 commit message.
  - Add comment which explains how delays has been calculated.
  - Rename SPINAND_STATUS_TIMEOUT_MS to SPINAND_WAITRDY_TIMEOUT_MS.

Chnages in v3:
  - Add spi_mem_read_status() which allows to read 8 or 16 bits status.
  - Add initial_delay_us and polling_delay_us parameters to spi_mem_poll_status().
    and also to poll_status() callback.
  - Move spi_mem_supports_op() in SW-based polling case.
  - Add delay before invoquing read_poll_timeout().
  - Remove the reinit/wait_for_completion() added in v2.
  - Add initial_delay_us and polling_delay_us parameters to spinand_wait().
  - Add SPINAND_READ/WRITE/ERASE/RESET_INITIAL_DELAY_US and
    SPINAND_READ/WRITE/ERASE/RESET_POLL_DELAY_US defines.
  - Remove spi_mem_finalize_op() API added in v2.

Changes in v2:
  - Indicates the spi_mem_poll_status() timeout unit
  - Use 2-byte wide status register
  - Add spi_mem_supports_op() call in spi_mem_poll_status()
  - Add completion management in spi_mem_poll_status()
  - Add offload/non-offload case management in spi_mem_poll_status()
  - Optimize the non-offload case by using read_poll_timeout()
  - mask and match stm32_qspi_poll_status()'s parameters are 2-byte wide
  - Make usage of new spi_mem_finalize_op() API in
    stm32_qspi_wait_poll_status()

Patrice Chotard (3):
  spi: spi-mem: add automatic poll status functions
  mtd: spinand: use the spi-mem poll status APIs
  spi: stm32-qspi: add automatic poll status feature

 drivers/mtd/nand/spi/core.c  | 45 +++++++++++++------
 drivers/spi/spi-mem.c        | 86 ++++++++++++++++++++++++++++++++++++
 drivers/spi/spi-stm32-qspi.c | 86 ++++++++++++++++++++++++++++++++----
 include/linux/mtd/spinand.h  | 22 +++++++++
 include/linux/spi/spi-mem.h  | 16 +++++++
 5 files changed, 234 insertions(+), 21 deletions(-)

base-commit: 6efb943b86

--
2.17.1

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
2021-06-03 19:36:07 +01:00
..
atmel-quadspi.c spi: atmel-quadspi: Disable the QSPI IP at suspend() 2021-02-11 13:15:12 +00:00
internals.h
Kconfig spi: altera: Make SPI_ALTERA_CORE invisible 2021-04-28 16:34:59 +01:00
Makefile spi: altera: Add DFL bus driver for Altera API Controller 2021-04-20 17:26:41 +01:00
spi-altera-core.c spi: altera: separate core code from platform code 2021-04-20 17:26:40 +01:00
spi-altera-dfl.c spi: altera: Remove redundant dev_err call in dfl_spi_altera_probe() 2021-05-11 10:06:53 +01:00
spi-altera-platform.c spi: altera: separate core code from platform code 2021-04-20 17:26:40 +01:00
spi-amd.c spi: amd: Use devm_platform_ioremap_resource() in amd_spi_probe 2020-11-23 20:42:05 +00:00
spi-ar934x.c spi: ar934x: Don't leak SPI master in probe error path 2020-12-07 14:18:59 +00:00
spi-armada-3700.c spi: a3700: Remove a useless memset 2020-08-18 17:52:37 +01:00
spi-at91-usart.c
spi-ath79.c spi: ath79: set number of chipselect lines 2021-05-24 09:51:38 +01:00
spi-atmel.c spi: atmel: Reduce spin lock usage 2021-06-03 14:05:00 +01:00
spi-au1550.c spi: spi-au1550: Fix various whitespace warnings 2021-01-22 16:26:21 +00:00
spi-axi-spi-engine.c spi: spi-axi-spi-engine: remove usage of delay_usecs 2021-03-12 14:30:42 +00:00
spi-bcm63xx-hsspi.c spi: bcm63xx-hsspi: fix pm_runtime 2021-03-10 12:25:12 +00:00
spi-bcm63xx.c spi: bcm63xx-spi: don't check 'delay_usecs' field 2021-03-12 14:30:43 +00:00
spi-bcm2835.c spi: bcm2835: Allow arbitrary number of slaves 2021-06-02 12:03:39 +01:00
spi-bcm2835aux.c spi: delete repeated words in comments 2021-05-10 13:07:52 +01:00
spi-bcm-qspi.c spi: spi-bcm-qspi: replace 'delay_usecs' with 'delay.value' check 2021-03-12 14:30:44 +00:00
spi-bcm-qspi.h
spi-bitbang-txrx.h
spi-bitbang.c spi: Cleanup on failure of initial setup 2021-06-01 14:03:12 +01:00
spi-brcmstb-qspi.c
spi-butterfly.c spi: butterfly: Switch to use module_parport_driver() 2021-03-10 12:46:05 +00:00
spi-cadence-quadspi.c spi: Updates for v5.13 2021-04-26 16:32:11 -07:00
spi-cadence.c spi: cadence: cache reference clock rate during probe 2021-01-15 14:14:38 +00:00
spi-cavium-octeon.c
spi-cavium-thunderx.c
spi-cavium.c
spi-cavium.h
spi-clps711x.c spi: clps711xx: remove redundant white-space 2021-02-04 18:45:59 +00:00
spi-coldfire-qspi.c
spi-davinci.c spi: davinci: Use device_get_match_data() helper 2021-04-09 13:44:04 +01:00
spi-dln2.c spi: dln2: Fix reference leak to master 2021-04-09 13:43:57 +01:00
spi-dw-bt1.c spi: dw: Avoid stack content exposure 2021-02-12 12:41:49 +00:00
spi-dw-core.c spi: dw: Add support for 32-bits max xfer size 2020-12-09 12:14:22 +00:00
spi-dw-dma.c spi: dw: Add generic DW SSI status-check method 2020-10-08 23:00:18 +01:00
spi-dw-mmio.c spi: delete repeated words in comments 2021-05-10 13:07:52 +01:00
spi-dw-pci.c spi: dw: Add DWC SSI capability 2020-10-08 23:00:06 +01:00
spi-dw.h spi: dw: Add support for 32-bits max xfer size 2020-12-09 12:14:22 +00:00
spi-ep93xx.c
spi-falcon.c spi: spi-falcon: remove check for 'delay_usecs' 2021-03-12 14:30:48 +00:00
spi-fsi.c spi: fsi: add a missing of_node_put 2021-04-21 16:07:04 +01:00
spi-fsl-cpm.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
spi-fsl-cpm.h
spi-fsl-dspi.c spi: spi-fsl-dspi: Fix a resource leak in an error handling path 2021-05-10 13:00:27 +01:00
spi-fsl-espi.c spi: fsl-espi: remove usage of 'delay_usecs' field 2021-03-12 14:30:49 +00:00
spi-fsl-lib.c
spi-fsl-lib.h
spi-fsl-lpspi.c spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware() 2021-04-09 13:43:59 +01:00
spi-fsl-qspi.c
spi-fsl-spi.c spi: Cleanup on failure of initial setup 2021-06-01 14:03:12 +01:00
spi-fsl-spi.h
spi-geni-qcom.c spi: delete repeated words in comments 2021-05-10 13:07:52 +01:00
spi-gpio.c spi: gpio: Don't leak SPI master in probe error path 2020-12-07 14:18:54 +00:00
spi-hisi-kunpeng.c spi: hisi-kunpeng: Fix Woverflow warning on conversion 2021-04-07 16:58:34 +01:00
spi-hisi-sfc-v3xx.c spi: hisi-sfc-v3xx: drop unnecessary ACPI_PTR and related ifendif protection 2021-04-12 17:07:38 +01:00
spi-img-spfi.c spi: img-spfi: fix reference leak in img_spfi_resume 2020-11-02 15:53:25 +00:00
spi-imx.c sound updates for 5.13 2021-04-30 12:48:14 -07:00
spi-iproc-qspi.c
spi-jcore.c spi: jcore: Fix trailing statements should be on next line 2021-03-24 19:51:09 +00:00
spi-lantiq-ssc.c spi: lantiq: remove redundant irqsave and irqrestore in hardIRQ 2020-09-17 19:56:02 +01:00
spi-lm70llp.c spi: lm70llp: add parenthesis for sizeof 2021-05-20 18:00:34 +01:00
spi-loopback-test.c spi: spi-loopback-test: Fix 'tx_buf' might be 'rx_buf' 2021-05-10 13:07:53 +01:00
spi-lp8841-rtc.c
spi-mem.c spi: spi-mem: add automatic poll status functions 2021-06-03 14:04:56 +01:00
spi-meson-spicc.c
spi-meson-spifc.c
spi-mpc52xx-psc.c spi: mpc52xx-psc: add parenthesis for sizeof 2021-05-20 18:00:37 +01:00
spi-mpc52xx.c spi: mpc52xx: add parenthesis for sizeof 2021-05-20 18:00:36 +01:00
spi-mpc512x-psc.c spi: mpc512x-psc: add parenthesis for sizeof 2021-05-20 18:00:35 +01:00
spi-mt65xx.c spi: mediatek: add set_cs_timing support 2021-02-08 11:41:23 +00:00
spi-mt7621.c spi: mt7621: Don't leak SPI master in probe error path 2020-12-07 14:18:59 +00:00
spi-mtk-nor.c spi: spi-mtk-nor: Fix checkpatch spacing error 2021-03-24 19:51:07 +00:00
spi-mux.c spi: spi-mux: Simplify with dev_err_probe() 2020-09-08 18:19:27 +01:00
spi-mxic.c spi: mxic: Don't leak SPI master in probe error path 2020-12-07 14:18:52 +00:00
spi-mxs.c spi: mxs: fix reference leak in mxs_spi_probe 2020-11-18 18:00:26 +00:00
spi-npcm-fiu.c spi: npcm-fiu: Disable clock in probe error path 2020-12-07 14:19:00 +00:00
spi-npcm-pspi.c spi: npcm-pspi: Use SPI_MODE_X_MASK 2021-05-11 15:42:48 +01:00
spi-nxp-fspi.c spi: fspi: enable fspi driver for on imx8mp 2021-03-25 13:59:42 +00:00
spi-oc-tiny.c spi: oc-tiny: Use SPI_MODE_X_MASK 2021-05-11 15:42:49 +01:00
spi-omap2-mcspi.c Merge branch 'for-5.13' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-5.14 2021-06-01 18:33:33 +01:00
spi-omap-100k.c spi: fix some invalid char occurrences 2021-05-20 17:58:33 +01:00
spi-omap-uwire.c Merge branch 'for-5.13' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-5.14 2021-06-01 18:33:33 +01:00
spi-orion.c spi: orion: set devdata properly as it is being used later 2021-04-09 13:44:02 +01:00
spi-pic32-sqi.c
spi-pic32.c spi: pic32: Don't leak DMA channels in probe error path 2020-11-12 15:16:34 +00:00
spi-pl022.c spi: delete repeated words in comments 2021-05-10 13:07:52 +01:00
spi-ppc4xx.c spi: ppc4xx: add parenthesis for sizeof 2021-05-20 18:00:40 +01:00
spi-pxa2xx-dma.c spi: pxa2xx: Fix style of and typos in the comments and messages 2021-05-18 14:05:35 +01:00
spi-pxa2xx-pci.c spi: pxa2xx: Fix inconsistent indenting 2021-05-21 13:13:42 +01:00
spi-pxa2xx.c Merge branch 'for-5.13' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-5.14 2021-06-01 18:33:33 +01:00
spi-pxa2xx.h spi: pxa2xx: Fix style of and typos in the comments and messages 2021-05-18 14:05:35 +01:00
spi-qcom-qspi.c spi: spi-qcom-qspi: Convert to use resource-managed OPP API 2021-03-16 10:14:11 +05:30
spi-qup.c spi: qup: fix PM reference leak in spi_qup_remove() 2021-04-09 13:44:03 +01:00
spi-rb4xx.c spi: rb4xx: Don't leak SPI master in probe error path 2020-12-07 14:18:55 +00:00
spi-realtek-rtl.c spi: realtek-rtl: Add support for Realtek RTL838x/RTL839x SPI controllers 2021-02-04 18:45:57 +00:00
spi-rockchip.c spi: rockchip: Fix code indent should use tabs where possible 2021-03-24 19:51:11 +00:00
spi-rpc-if.c spi: rpc-if: Gaurd .pm assignment with CONFIG_PM_SLEEP #ifdef check 2021-01-11 16:39:09 +00:00
spi-rspi.c spi: rspi: Fill in controller speed limits 2020-08-20 22:38:17 +01:00
spi-s3c24xx-regs.h ARM: s3c24xx: move regs-spi.h into spi driver 2020-08-19 21:40:14 +02:00
spi-s3c24xx.c ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
spi-s3c64xx.c spi: s3c64xx: constify driver/match data 2021-04-15 16:07:58 +01:00
spi-sc18is602.c spi: sc18is602: implement .max_{transfer,message}_size() for the controller 2021-05-21 13:13:33 +01:00
spi-sh-hspi.c
spi-sh-msiof.c spi: sh-msiof: Fill in controller speed limits 2021-01-13 12:19:09 +00:00
spi-sh-sci.c
spi-sh.c spi: spi-sh: replace 'delay_usecs' with 'delay.value' in pr_debug 2021-03-12 14:30:45 +00:00
spi-sifive.c
spi-slave-mt27xx.c spi: mediatek: add mt8195 spi slave support 2021-03-23 17:19:45 +00:00
spi-slave-system-control.c
spi-slave-time.c
spi-sprd-adi.c spi: sprd: Fix checkpatch spacing error 2021-03-24 19:51:04 +00:00
spi-sprd.c spi: sprd: Add missing MODULE_DEVICE_TABLE 2021-05-12 13:01:43 +01:00
spi-st-ssc4.c spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path 2020-11-12 15:16:35 +00:00
spi-stm32-qspi.c spi: stm32-qspi: add automatic poll status feature 2021-06-03 14:04:58 +01:00
spi-stm32.c Merge branch 'for-5.12' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-5.13 2021-04-15 19:29:40 +01:00
spi-sun4i.c
spi-sun6i.c spi: spi-sun6i: enable autosuspend feature 2020-10-26 23:29:05 +00:00
spi-synquacer.c spi: spi-synquacer: fix set_cs handling 2021-02-03 16:23:07 +00:00
spi-tegra20-sflash.c spi: spi-tegra20-flash: don't check 'delay_usecs' field for spi transfer 2021-03-12 14:30:46 +00:00
spi-tegra20-slink.c spi: tegra20-slink: fix reference leak in slink ops of tegra20 2020-11-09 19:44:27 +00:00
spi-tegra114.c spi: tegra114: Fix an error message 2021-05-10 13:17:18 +01:00
spi-tegra210-quad.c spi: tegra210-quad: Fix an error message 2021-05-10 13:17:19 +01:00
spi-test.h
spi-ti-qspi.c spi: spi-ti-qspi: Free DMA resources 2021-03-10 12:25:09 +00:00
spi-tle62x0.c
spi-topcliff-pch.c spi: spi-topcliff-pch: Fix potential double free in pch_spi_process_messages() 2021-05-10 13:17:16 +01:00
spi-uniphier.c spi: uniphier: Use SPI_MODE_X_MASK 2021-05-11 15:42:52 +01:00
spi-xcomm.c
spi-xilinx.c spi: xilinx: Fix info message during probe 2020-09-17 19:56:01 +01:00
spi-xlp.c
spi-xtensa-xtfpga.c
spi-zynq-qspi.c spi: spi-zynq-qspi: Fix stack violation bug 2021-04-29 14:06:06 +01:00
spi-zynqmp-gqspi.c spi: spi-zynqmp-gqspi: return -ENOMEM if dma_map_single fails 2021-04-16 13:44:15 +01:00
spi.c Merge branch 'for-5.13' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-5.14 2021-06-01 18:33:33 +01:00
spidev.c spi: spidev: Use SPI_MODE_X_MASK 2021-05-11 15:42:47 +01:00