u-boot/drivers/spi
Sean Anderson bae4d9fbd9 spi: dw: Actually mask interrupts
The designware spi driver unconditionally uses polling.

The comment to spi_hw_init() also states that the function should disable
interrupts.

According to the DesignWare DW_apb_ssi Databook, value 0xff in IMR enables
all interrupts. Since we want to mask all interrupts write 0x0 instead.

On the canaan k210 board, pressing the reset button twice to reset the
board will run u-boot. If u-boot boots Linux without having SPI interrupts
masked, Linux will hang as soon as interrupts are enabled, because of an
interrupt storm.

Properly masking the SPI interrupts in u-boot allows us to successfully
boot Linux, even after resetting the board.

Fixes: 5bef6fd79f ("spi: Add designware master SPI DM driver used on SoCFPGA")
Signed-off-by: Sean Anderson <seanga2@gmail.com>
[Niklas: rewrite commit message]
Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
2022-03-15 17:43:11 +08:00
..
altera_spi.c spi: altera_spi: Do not abuse CONFIG namespace 2021-08-30 14:13:28 -04:00
apple_spi.c spi: apple: Add driver for Apple SPI controller 2022-02-10 16:44:23 -05:00
atcspi200_spi.c WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
ath79_spi.c dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
atmel-quadspi.c spi: atmel-quadspi: Add support for SAMA7G5 QSPI 2021-12-07 08:55:22 +02:00
atmel_spi.c dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
atmel_spi.h spi: atmel: Remove nondm code 2020-06-11 15:14:04 +05:30
bcm63xx_hsspi.c dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
bcm63xx_spi.c dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
bcmstb_spi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
ca_sflash.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
cadence_qspi.c spi: cadence-qspi: Make reset control optional 2022-02-24 13:38:25 +05:30
cadence_qspi.h spi: cadence-qspi: Make reset control optional 2022-02-24 13:38:25 +05:30
cadence_qspi_apb.c mtd: cqspi: Wait for transfer completion 2021-12-02 11:10:40 +05:30
cf_spi.c treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
davinci_spi.c treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
designware_spi.c spi: dw: Actually mask interrupts 2022-03-15 17:43:11 +08:00
exynos_spi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
fsl_dspi.c spi: fsl_dspi: rename num-cs to spi-num-chipselects 2021-11-09 17:18:23 +05:30
fsl_espi.c treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
fsl_qspi.c Merge branch '2021-02-02-drop-asm_global_data-when-unused' 2021-02-15 10:16:45 -05:00
ich.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
ich.h x86: spl: Move priv/plat structs to headers 2021-01-05 12:24:41 -07:00
iproc_qspi.c driver: spi: add bcm iproc qspi support 2022-02-24 13:42:50 +05:30
Kconfig driver: spi: add bcm iproc qspi support 2022-02-24 13:42:50 +05:30
kirkwood_spi.c spi: kirkwood: prevent limiting speed to 0 2021-05-16 06:48:45 +02:00
Makefile driver: spi: add bcm iproc qspi support 2022-02-24 13:42:50 +05:30
meson_spifc.c dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
mpc8xx_spi.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
mpc8xxx_spi.c dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
mscc_bb_spi.c dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
mt7620_spi.c spi: add spi controller support for MediaTek MT7620 SoC 2021-01-24 21:39:26 +01:00
mt7621_spi.c dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
mtk_snfi_spi.c spi: spi-mem: allow specifying a command's extension 2021-06-28 11:55:11 +05:30
mtk_snor.c spi: mtk_snor: add support for MTK SPI NOR controller 2021-01-29 10:35:14 -05:00
mvebu_a3700_spi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
mxc_spi.c spi: mxc_spi: remove redundant code in spi_xchg_single() 2022-02-05 13:38:39 +01:00
mxs_spi.c treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
nxp_fspi.c spi: nxp_fspi: Implement errata workaround for LS1028A 2021-10-23 15:56:47 +05:30
octeon_spi.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
omap3_spi.c treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
pic32_spi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
pl022_spi.c treewide: Use OF_REAL instead of !OF_PLATDATA 2021-09-25 09:46:15 -06:00
renesas_rpc_spi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
rk_spi.c clk: Rename clk_get_by_driver_info() 2021-09-25 09:46:15 -06:00
rk_spi.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rockchip_sfc.c spi: rockchip_sfc: Using read_poll 2021-10-15 20:57:11 +08:00
sandbox_spi.c test: spi: Add sandbox_spi_get_{speed, mode} interface 2020-12-22 20:39:26 -07:00
sh_qspi.c dm: treewide: Rename ofdata_to_platdata() to of_to_plat() 2020-12-13 16:51:09 -07:00
soft_spi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
spi-emul-uclass.c dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
spi-mem-nodm.c spi: spi-mem-nodm: Fix read data size issue 2021-08-03 11:50:37 +05:30
spi-mem.c spi: spi-mem: add spi_mem_dtr_supports_op() 2021-06-28 11:56:06 +05:30
spi-mxic.c spi: Add MXIC controller driver 2021-06-25 20:59:45 +05:30
spi-qup.c dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
spi-sifive.c dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
spi-sunxi.c sunxi: SPI: fix pinmuxing for Allwinner H6 SoCs 2022-01-30 01:03:37 +00:00
spi-synquacer.c spi: synquacer: Add HSSPI SPI controller driver for SynQuacer 2021-07-06 14:07:36 -04:00
spi-uclass.c treewide: Try to avoid the preprocessor with OF_REAL 2021-09-25 09:46:15 -06:00
spi.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
stm32_qspi.c spi: stm32_qspi: Fix short data write operation 2021-06-18 08:39:45 +02:00
stm32_spi.c spi: stm32: Add ofdata_to_platdata() callback 2021-10-08 08:41:47 +02:00
tegra20_sflash.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
tegra20_slink.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
tegra114_spi.c dm: Use access methods for dev/uclass private data 2021-01-05 12:24:40 -07:00
tegra210_qspi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
tegra_spi.h dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
ti_qspi.c Fix wrong QSPI clock calculation for AM4372 2022-01-16 08:31:03 -05:00
uniphier_spi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
xilinx_spi.c spi: xilinx_spi: Trivial fixes in axi qspi driver 2021-03-30 12:03:24 +02:00
zynq_qspi.c spi: zynq_qspi: Add SPI memory operations to zynq qspi 2022-02-04 13:20:32 +01:00
zynq_spi.c Xilinx changes for v2021.04-rc3 2021-02-23 10:45:55 -05:00
zynqmp_gqspi.c spi: zynqmp_gqspi: Fix write issue at low frequencies 2021-10-25 10:02:25 +02:00