spi: dw: Use relaxed IO-methods to access FIFOs
authorSerge Semin <Sergey.Semin@baikalelectronics.ru>
Sun, 20 Sep 2020 11:28:51 +0000 (14:28 +0300)
committerMark Brown <broonie@kernel.org>
Tue, 29 Sep 2020 16:22:24 +0000 (17:22 +0100)
commit7e31cea7d1e0f4b683dc45c21530cd3ee82559b4
tree2fa944e4f532c762804dedd040f55cad2d61f5db
parenta1d5aa6f7f97b15e8fd917169239088823471741
spi: dw: Use relaxed IO-methods to access FIFOs

In accordance with [1] the relaxed methods are guaranteed to be ordered
with respect to other accesses from the same CPU thread to the same
peripheral.  This is what we need during the data read/write from/to the
controller FIFOs being executed within a single IRQ handler or a kernel
task.

Such optimization shall significantly speed the data reader and writer up.
For instance, the relaxed IO-accessors utilization on Baikal-T1 lets the
driver to support the SPI memory operations with bus frequency three-fold
faster than if normal IO-accessors would be used.

[1] "LINUX KERNEL MEMORY BARRIERS", Documentation/memory-barriers.txt,
    Section "KERNEL I/O BARRIER EFFECTS"

Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Link: https://lore.kernel.org/r/20200920112914.26501-8-Sergey.Semin@baikalelectronics.ru
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-dw.h