regmap: mmio: Support accelerared noinc operations
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 16 Aug 2022 20:48:32 +0000 (22:48 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 17 Aug 2022 12:00:32 +0000 (13:00 +0100)
commit81c0386c1376da54f05d6916936db5220df9f97d
tree777856fd50029e2ffdff92413e60c89145cbb7b4
parentc20cc099b30abd50f563e422aa72edcd7f92da55
regmap: mmio: Support accelerared noinc operations

Use the newly added callback for accelerated noinc MMIO
to provide writesb, writesw, writesl, writesq, readsb, readsw,
readsl and readsq.

A special quirk is needed to deal with big endian regmaps: there
are no accelerated operations defined for big endian, so fall
back to calling the big endian operations itereatively for this
case.

The Hexagon architecture turns out to have an incomplete
<asm/io.h>: writesb() is not implemented. Fix this by doing
what other architectures do: include <asm-generic/io.h> into
the <asm/io.h> file.

Cc: Brian Cain <bcain@quicinc.com>
Cc: linux-hexagon@vger.kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20220816204832.265837-2-linus.walleij@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
arch/hexagon/include/asm/io.h
drivers/base/regmap/regmap-mmio.c