]> www.infradead.org Git - users/jedix/linux-maple.git/commit
spi: cadence-qspi: minimise register accesses on each op if !DTR
authorThéo Lebrun <theo.lebrun@bootlin.com>
Fri, 5 Apr 2024 15:02:16 +0000 (17:02 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 8 Apr 2024 14:18:10 +0000 (15:18 +0100)
commit563f8598cbc246a81d256e0e888dc085504caa90
treed93f108f5038df0a072c00721e50b24f5d0a84e4
parentdcc594aef1bf3a6a49b77ad2c0348d894b7cd956
spi: cadence-qspi: minimise register accesses on each op if !DTR

cqspi_enable_dtr() is called for each operation, commands or not, reads
or writes. It writes CQSPI_REG_CONFIG then waits for idle (three
successful reads). Skip that in the no-DTR case if DTR is already
disabled.

It cannot be skipped in the DTR case as cqspi_setup_opcode_ext() writes
to a register and we must wait for idle state.

According to ftrace, the average cqspi_exec_mem_op() call goes from
85.4µs to 83.6µs when reading 235M over UBIFS on an octal flash.

Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Link: https://msgid.link/r/20240405-cdns-qspi-mbly-v2-6-956679866d6d@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-cadence-quadspi.c