Skip to content

Commit b780c3f

Browse files
ambarusbroonie
authored andcommitted
spi: atmel-quadspi: Use optimezed memcpy_fromio()/memcpy_toio()
Optimezed mem*io operations are defined for LE platforms, use them. The ARM and !ARCH_EBSA110 dependencies for COMPILE_TEST were added only for the _memcpy_fromio()/_memcpy_toio() functions. Drop these dependencies. Tested unaligned accesses on both sama5d2 and sam9x60 QSPI controllers using SPI NOR flashes, everything works ok. The following performance improvement can be seen when running mtd_speedtest: sama5d2_xplained (mx25l25635e) - before: mtd_speedtest: eraseblock write speed is 983 KiB/s mtd_speedtest: eraseblock read speed is 6150 KiB/s - after: mtd_speedtest: eraseblock write speed is 1055 KiB/s mtd_speedtest: eraseblock read speed is 20144 KiB/s sam9x60ek (sst26vf064b) - before: mtd_speedtest: eraseblock write speed is 4770 KiB/s mtd_speedtest: eraseblock read speed is 8062 KiB/s - after: mtd_speedtest: eraseblock write speed is 4524 KiB/s mtd_speedtest: eraseblock read speed is 21186 KiB/s Signed-off-by: Tudor Ambarus <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent e126859 commit b780c3f

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

drivers/spi/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ config SPI_AT91_USART
103103

104104
config SPI_ATMEL_QUADSPI
105105
tristate "Atmel Quad SPI Controller"
106-
depends on ARCH_AT91 || (ARM && COMPILE_TEST && !ARCH_EBSA110)
106+
depends on ARCH_AT91 || COMPILE_TEST
107107
depends on OF && HAS_IOMEM
108108
help
109109
This enables support for the Quad SPI controller in master mode.

drivers/spi/atmel-quadspi.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -430,11 +430,11 @@ static int atmel_qspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op)
430430

431431
/* Send/Receive data */
432432
if (op->data.dir == SPI_MEM_DATA_IN)
433-
_memcpy_fromio(op->data.buf.in, aq->mem + offset,
434-
op->data.nbytes);
433+
memcpy_fromio(op->data.buf.in, aq->mem + offset,
434+
op->data.nbytes);
435435
else
436-
_memcpy_toio(aq->mem + offset, op->data.buf.out,
437-
op->data.nbytes);
436+
memcpy_toio(aq->mem + offset, op->data.buf.out,
437+
op->data.nbytes);
438438

439439
/* Release the chip-select */
440440
atmel_qspi_write(QSPI_CR_LASTXFER, aq, QSPI_CR);

0 commit comments

Comments
 (0)