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-81c0386c1376da54f05d6916936db5220df9f97d.tar.gz |
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 |