diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2022-08-16 22:48:32 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2022-08-17 13:00:32 +0100 |
commit | 81c0386c1376da54f05d6916936db5220df9f97d (patch) | |
tree | 777856fd50029e2ffdff92413e60c89145cbb7b4 /arch/hexagon | |
parent | c20cc099b30abd50f563e422aa72edcd7f92da55 (diff) | |
download | linux-stable-81c0386c1376da54f05d6916936db5220df9f97d.tar.gz linux-stable-81c0386c1376da54f05d6916936db5220df9f97d.tar.bz2 linux-stable-81c0386c1376da54f05d6916936db5220df9f97d.zip |
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>
Diffstat (limited to 'arch/hexagon')
-rw-r--r-- | arch/hexagon/include/asm/io.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/hexagon/include/asm/io.h b/arch/hexagon/include/asm/io.h index c33241425a5c..8e938dc1ca4b 100644 --- a/arch/hexagon/include/asm/io.h +++ b/arch/hexagon/include/asm/io.h @@ -308,6 +308,8 @@ static inline void outsl(unsigned long port, const void *buffer, int count) } } +#include <asm-generic/io.h> + #endif /* __KERNEL__ */ #endif |