spi: cadence-quadspi: Disable irqs during indirect reads
authorNiravkumar L Rabara <niravkumar.l.rabara@intel.com>
Sat, 13 Aug 2022 04:26:16 +0000 (12:26 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 22 Aug 2022 13:05:21 +0000 (14:05 +0100)
commit9ee5b6d53b8c99d13a47227e3b7052a1365556c9
tree792f06b520e62e43e38c0e68c5dbb5f4f7278324
parent46f7ac3d7892e808c9ba01c39da6bb85cda26ecd
spi: cadence-quadspi: Disable irqs during indirect reads

On architecture where reading the SRAM is slower than the pace at
controller fills it, with interrupt enabled while reading from
SRAM FIFO causes unwanted interrupt storm to CPU.

The inner "bytes to read" loop never exits and waits for the completion
so it is enough to only enable the watermark interrupt when we
are out of bytes to read, which only happens when we start the
transfer (waiting for the FIFO to fill up initially) if the SRAM
is slow.

So only using read watermark interrupt, as the current implementation
doesn't utilize the SRAM full and indirect complete read interrupt.
And disable all the read interrupts while reading from SRAM.

Signed-off-by: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
Link: https://lore.kernel.org/r/20220813042616.1372110-1-niravkumar.l.rabara@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-cadence-quadspi.c