spi: atmel-quadspi: Use optimezed memcpy_fromio()/memcpy_toio()
authorTudor Ambarus <tudor.ambarus@microchip.com>
Thu, 16 Jul 2020 04:31:39 +0000 (07:31 +0300)
committerMark Brown <broonie@kernel.org>
Thu, 16 Jul 2020 23:55:24 +0000 (00:55 +0100)
commitb780c3f38812bce7d7baebe2108738a043d6c4c3
tree369cfe620ff4fc14ff3cd145532d30e951f9c04c
parente126859729ed4a5143e5690186b8bec1c1157113
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 <tudor.ambarus@microchip.com>
Link: https://lore.kernel.org/r/20200716043139.565734-1-tudor.ambarus@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/Kconfig
drivers/spi/atmel-quadspi.c