2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-17 01:34:00 +08:00
linux-next/drivers/spi
William Zhang c00d5e93ea
spi: bcm63xx-hsspi: Handle cs_change correctly
The kernel SPI interface includes the cs_change flag that alters how
the CS behaves.

If we're in the middle of transfers, it tells us to unselect the
CS momentarily since the target device requires that.

If we're at the end of a transfer, it tells us to keep the CS
selected, perhaps because the next transfer is likely targeted
to the same device.

We implement this scheme in the HSSPI driver in this change.

Prior to this change, the CS would toggle momentarily if cs_change
was set for the last transfer. This can be ignored by some or
most devices, but the Microchip TPM2 device does not ignore it.

With the change, the behavior is corrected and the 'glitch' is
eliminated.

Signed-off-by: Kursad Oney <kursad.oney@broadcom.com>
Signed-off-by: William Zhang <william.zhang@broadcom.com>
Link: https://lore.kernel.org/r/20230209200246.141520-10-william.zhang@broadcom.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-02-10 21:36:40 +00:00
..
atmel-quadspi.c spi: atmel-quadspi: switch to use modern name 2023-01-23 13:31:05 +00:00
internals.h
Kconfig spi: intel: Update help text of PCI and Platform drivers 2023-02-10 18:06:56 +00:00
Makefile spi: wpcm-fiu: Add driver for Nuvoton WPCM450 Flash Interface Unit (FIU) 2022-11-25 13:30:15 +00:00
spi-altera-core.c spi: altera: switch to use modern name 2022-12-29 13:22:03 +00: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: spi-altera-platform: switch to use modern name 2022-12-29 13:22:05 +00:00
spi-amd.c spi: amd: Fix SPI_SPD7 value 2022-11-04 12:25:03 +00:00
spi-ar934x.c spi: ar934x: switch to use modern name 2023-01-03 13:52:13 +00:00
spi-armada-3700.c spi: a3700: switch to use modern name 2023-01-03 13:52:13 +00:00
spi-aspeed-smc.c Linux 6.1-rc4 2022-11-25 19:16:05 +00:00
spi-at91-usart.c spi: at91-usart: switch to use modern name 2023-01-23 13:31:04 +00:00
spi-ath79.c spi: ath79: switch to use modern name 2023-01-03 13:52:12 +00:00
spi-atmel.c spi: atmel: switch to use modern name 2023-01-23 13:31:03 +00:00
spi-au1550.c spi: spi-au1550: replace ternary operator with min() 2022-05-16 17:57:01 +01:00
spi-axi-spi-engine.c
spi-bcm63xx-hsspi.c spi: bcm63xx-hsspi: Handle cs_change correctly 2023-02-10 21:36:40 +00:00
spi-bcm63xx.c spi: bcm63xx: Use devm_platform_get_and_ioremap_resource() 2022-10-17 12:49:49 +01:00
spi-bcm2835.c spi: Updates for v5.20 2022-08-02 10:55:04 -07:00
spi-bcm2835aux.c spi: bcm2835aux: Convert to use GPIO descriptors 2022-02-01 16:08:47 +00:00
spi-bcm-qspi.c spi: bcm-qspi: Make bcm_qspi_remove() return void 2022-10-18 19:16:53 +01:00
spi-bcm-qspi.h spi: bcm-qspi: Make bcm_qspi_remove() return void 2022-10-18 19:16:53 +01:00
spi-bitbang-txrx.h spi: bitbang: Fix lsb-first Rx 2022-08-15 01:26:20 +01:00
spi-bitbang.c
spi-brcmstb-qspi.c spi: bcm-qspi: Make bcm_qspi_remove() return void 2022-10-18 19:16:53 +01:00
spi-butterfly.c
spi-cadence-quadspi.c spi: cadence-quadspi: Add minimum operable clock rate warning to baudrate divisor calculation 2022-11-29 18:45:32 +00:00
spi-cadence-xspi.c spi: cadence: Fix busy cycles calculation 2022-12-26 23:23:21 +00:00
spi-cadence.c spi: spi-cadence: Fix SPI NO Slave Select macro definition 2022-07-20 18:45:21 +01:00
spi-cavium-octeon.c
spi-cavium-thunderx.c
spi-cavium.c
spi-cavium.h
spi-clps711x.c spi: clps711x: Use syscon_regmap_lookup_by_phandle 2022-04-25 14:01:09 +01:00
spi-coldfire-qspi.c
spi-davinci.c
spi-dln2.c spi: dln2: Propagate firmware node 2021-12-23 13:38:38 +00:00
spi-dw-bt1.c spi: dw: Fix PM disable depth imbalance in dw_spi_bt1_probe 2022-09-26 16:10:36 +01:00
spi-dw-core.c spi: dw: Fix wrong FIFO level setting for long xfers 2023-01-27 16:38:04 +00:00
spi-dw-dma.c spi: dw-dma: decrease reference count in dw_spi_dma_init_mfld() 2022-11-16 13:43:03 +00:00
spi-dw-mmio.c spi: dw: Add support for Intel Thunder Bay SPI controller 2022-07-13 13:32:32 +01: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: Add support for Intel Thunder Bay SPI controller 2022-07-13 13:32:32 +01:00
spi-ep93xx.c
spi-falcon.c
spi-fsi.c spi: fsi: Increase timeout and ensure status is checked 2022-06-23 15:48:21 +01:00
spi-fsl-cpm.c spi: fsl-cpm: substitute empty_zero_page with helper ZERO_PAGE(0) 2022-10-19 13:05:37 +01:00
spi-fsl-cpm.h
spi-fsl-dspi.c spi: fsl-dspi: add cs-gpios support 2022-11-16 14:46:07 +00:00
spi-fsl-espi.c
spi-fsl-lib.c
spi-fsl-lib.h
spi-fsl-lpspi.c spi: spi-fsl-lpspi: support multiple cs for lpspi 2022-12-07 14:19:20 +00:00
spi-fsl-qspi.c spi: spi-fsl-qspi: Use devm_platform_ioremap_resource_byname() 2022-09-26 16:10:41 +01:00
spi-fsl-spi.c spi: fsl_spi: Don't change speed while chipselect is active 2022-12-14 14:24:51 +00:00
spi-fsl-spi.h
spi-geni-qcom.c spi: spi-geni-qcom: Add support for SE DMA mode 2022-12-25 23:34:34 +00:00
spi-gpio.c spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode 2022-12-08 11:46:41 +00:00
spi-gxp.c spi: spi-gxp: fix typo in SPDX identifier line 2022-10-04 12:45:07 +01:00
spi-hisi-kunpeng.c spi: hisi-kunpeng: Fix the debugfs directory name incorrect 2021-11-17 13:04:54 +00:00
spi-hisi-sfc-v3xx.c spi: hisi-sfc-v3xx: Fix a typo ("duall") 2022-11-03 19:34:33 +00:00
spi-img-spfi.c spi: img-spfi: Use devm_platform_get_and_ioremap_resource() 2022-10-19 15:57:01 +01:00
spi-imx.c spi: Updates for v6.2 2022-12-13 12:54:31 -08:00
spi-ingenic.c spi: ingenic: Add support for new Ingenic SoCs. 2022-04-25 14:00:51 +01:00
spi-intel-pci.c spi: intel: Add support for controllers 2023-02-02 11:42:30 +00: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: Fix device private data and PR_NUM for Broxton controllers 2023-02-02 11:42:29 +00: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: Make bcm_qspi_remove() return void 2022-10-18 19:16:53 +01:00
spi-jcore.c
spi-lantiq-ssc.c spi: Use of_device_get_match_data() 2022-02-21 13:25:19 +00:00
spi-lm70llp.c
spi-loopback-test.c spi: spi-loopback-test: Allow skipping delays 2023-01-03 15:25:02 +00:00
spi-lp8841-rtc.c
spi-mem.c spi: spi-mem: Fix spi_mem_poll_status() 2022-06-06 12:32:27 +01:00
spi-meson-spicc.c spi: Updates for v6.2 2022-12-13 12:54:31 -08:00
spi-meson-spifc.c spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe 2022-01-07 13:36:38 +00:00
spi-microchip-core-qspi.c spi: microchip-core-qspi: Add support for microchip fpga qspi controllers 2022-08-15 12:17:38 +01:00
spi-microchip-core.c spi: microchip-core: Remove the unused function mchp_corespi_enable() 2022-10-17 12:49:47 +01:00
spi-mpc52xx-psc.c spi: mpc52xx-psc: Switch to using core message queue 2022-06-27 13:24:36 +01:00
spi-mpc52xx.c spi: mpc52xx: Replace NO_IRQ by 0 2022-10-10 13:01:20 +01:00
spi-mpc512x-psc.c spi: mpc512x-psc: Fix compile errors 2022-02-02 16:09:29 +00:00
spi-mt65xx.c spi: mediatek: Enable irq before the spi registration 2022-12-26 23:23:21 +00:00
spi-mt7621.c spi: mt7621: Remove 'clk' from 'struct mt7621_spi' 2022-08-29 17:51:39 +01:00
spi-mtk-nor.c spi: spi-mtk-nor: Add recovery mechanism for dma read timeout 2022-12-07 14:19:22 +00:00
spi-mtk-snfi.c spi: mtk-snfi: Add snfi sample delay and read latency adjustment 2023-02-09 17:07:20 +00:00
spi-mux.c spi: mux: Fix mux interaction with fast path optimisations 2022-09-02 13:27:13 +01:00
spi-mxic.c spi: mxic: Use devm_platform_ioremap_resource_byname() 2022-10-31 13:20:25 +00:00
spi-mxs.c spi: mxs: using pm_runtime_resume_and_get instead of pm_runtime_get_sync 2022-04-25 14:00:59 +01:00
spi-npcm-fiu.c spi: npcm-fiu: Use devm_platform_ioremap_resource_byname() 2022-10-31 13:20:24 +00:00
spi-npcm-pspi.c spi: npcm-pspi: Add NPCM845 peripheral SPI support 2022-08-15 12:17:29 +01:00
spi-nxp-fspi.c spi: nxp-fspi: make const array ls1028a_soc_attr static 2022-11-02 16:44:15 +00:00
spi-oc-tiny.c
spi-omap2-mcspi.c spi: omap2-mcspi: Fix probe so driver works again 2022-09-21 10:28:20 +01:00
spi-omap-100k.c spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probe 2022-09-26 16:10:37 +01:00
spi-omap-uwire.c ARM: omap1: move perseus spi pinconf to board file 2022-04-21 15:01:08 +02:00
spi-orion.c
spi-pci1xxxx.c spi: microchip: pci1xxxx: Add suspend and resume support for PCI1XXXX SPI driver 2022-11-29 16:59:11 +00:00
spi-pic32-sqi.c
spi-pic32.c spi: pic32: Convert to use GPIO descriptors 2022-01-31 15:17:30 +00:00
spi-pl022.c spi: pl022: Only use DT-specified DMA channels 2023-01-03 13:42:54 +00:00
spi-ppc4xx.c
spi-pxa2xx-dma.c
spi-pxa2xx-pci.c spi: pxa2xx-pci: Constify struct pxa_spi_info variables 2022-02-28 12:10:27 +00:00
spi-pxa2xx.c spi: pxa2xx: Move OF and ACPI ID tables closer to their user 2022-10-24 13:30:18 +01:00
spi-pxa2xx.h spi: pxa2xx: Get rid of unused ->cs_control() 2021-11-29 12:19:59 +00:00
spi-qcom-qspi.c
spi-qup.c spi: qup: support using GPIO as chip select line 2022-10-17 12:46:59 +01:00
spi-rb4xx.c
spi-realtek-rtl.c
spi-rockchip-sfc.c spi: rockchip-sfc: fix platform_get_irq.cocci warning 2022-03-10 12:17:56 +00:00
spi-rockchip.c spi: rockchip: Unmask IRQ at the final to avoid preemption 2022-06-20 11:35:43 +01:00
spi-rpc-if.c spi: rpc-if: Fix RPM imbalance in probe error path 2022-04-04 08:38:59 +01:00
spi-rspi.c spi: spi-rspi: Fix PIO fallback on RZ platforms 2022-07-21 17:21:07 +01:00
spi-s3c24xx-regs.h
spi-s3c24xx.c spi: s3c24xx: Switch to use devm_spi_alloc_master() 2022-09-23 18:21:50 +01:00
spi-s3c64xx.c spi: s3c64xx: Fix large transfers with DMA 2022-09-28 12:54:07 +01:00
spi-sc18is602.c spi: sc18is602: Convert to i2c's .probe_new() 2022-11-23 17:26:25 +00:00
spi-sh-hspi.c
spi-sh-msiof.c spi: sh-msiof: add generic Gen4 binding 2022-08-29 12:41:36 +01:00
spi-sh-sci.c
spi-sh.c spi: sh: Switch to using core message queue 2022-06-27 13:24:35 +01:00
spi-sifive.c spi: sifive: add PM callbacks to support suspend/resume 2022-06-10 13:32:24 +01:00
spi-slave-mt27xx.c
spi-slave-system-control.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
spi-slave-time.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
spi-sn-f-ospi.c spi: Add Socionext F_OSPI SPI flash controller driver 2022-11-24 11:05:07 +00:00
spi-sprd-adi.c
spi-sprd.c spi: spi-sprd: using pm_runtime_resume_and_get instead of pm_runtime_get_sync 2022-04-25 14:00:57 +01:00
spi-st-ssc4.c spi: st-ssc4: Covert to use GPIO descriptors 2022-02-01 16:08:45 +00:00
spi-stm32-qspi.c spi: stm32-qspi: Refactor dual flash mode enable check in ->setup() 2022-08-31 12:13:11 +01:00
spi-stm32.c spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run 2022-11-03 13:25:40 +00:00
spi-sun4i.c spi: sun4i: fix typos in comments 2022-03-15 12:03:58 +00:00
spi-sun6i.c
spi-sunplus-sp7021.c spi: remove spin_lock_irq and variable in the irq procress 2022-04-19 13:13:42 +01:00
spi-synquacer.c spi: synquacer: Add missing clk_disable_unprepare() 2022-06-27 23:26:53 +01:00
spi-tegra20-sflash.c spi: spi-tegra20-sflash: using pm_runtime_resume_and_get instead of pm_runtime_get_sync 2022-04-25 14:01:03 +01:00
spi-tegra20-slink.c spi: tegra20-slink: fix UAF in tegra_slink_remove() 2022-07-13 13:49:03 +01:00
spi-tegra114.c spi: spi-tegra114: using pm_runtime_resume_and_get instead of pm_runtime_get_sync 2022-04-19 13:13:44 +01:00
spi-tegra210-quad.c spi: tegra210-quad: Fix duplicate resource error 2022-11-17 10:53:04 +00:00
spi-test.h
spi-ti-qspi.c spi: spi-ti-qspi: Support per-transfer and per-slave speed_hz settings 2022-06-06 12:41:36 +01: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: Use core message validation 2022-06-20 12:43:36 +01:00
spi-uniphier.c spi: uniphier: fix reference count leak in uniphier_spi_probe() 2022-01-26 15:52:05 +00:00
spi-wpcm-fiu.c spi: wpcm-fiu: Add direct map support 2022-11-25 13:30:16 +00:00
spi-xcomm.c spi: xcomm: Convert to i2c's .probe_new() 2022-11-23 17:26:27 +00:00
spi-xilinx.c spi: xilinx: Switch to use devm_spi_alloc_master() 2022-09-23 18:21:49 +01:00
spi-xlp.c spi: xlp: Remove Netlogic XLP variants 2021-11-15 13:27:17 +00:00
spi-xtensa-xtfpga.c spi: xtensa-xtfpga: Switch to use devm_spi_alloc_master() 2022-09-22 14:39:50 +01:00
spi-zynq-qspi.c spi: spi-zynq-qspi: Fix a NULL pointer dereference in zynq_qspi_exec_mem_op() 2022-02-08 13:37:50 +00:00
spi-zynqmp-gqspi.c spi: spi-zynqmp-gqspi: Add tap delay support for GQSPI controller on Versal platform 2022-10-19 14:34:40 +01:00
spi.c spi: export spi_transfer_cs_change_delay_exec function 2023-02-10 21:36:39 +00:00
spidev.c spi: spidev: Fix double unlock in spidev_sync() 2023-02-06 14:51:33 +00:00