This enables the Sparc to use <asm-generic/io.h> to fill in the missing (undefined) [read|write]sq I/O accessor functions. This is needed if Sparc[64] ever wants to uses CONFIG_REGMAP_MMIO which has been patches to use accelerated _noinc accessors such as readsq/writesq that Sparc64, while being a 64bit platform, as of now not yet provide. This comes with the requirement that everything the architecture already provides needs to be defined, rather than just being, say, static inline functions. Bite the bullet and just provide the definitions and make it work. Compile-tested on sparc32 and sparc64. Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Cc: David S. Miller <davem@davemloft.net> Cc: sparclinux@vger.kernel.org Cc: linux-arch@vger.kernel.org Cc: Mark Brown <broonie@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Link: https://lore.kernel.org/linux-arm-kernel/202208201639.HXye3ke4-lkp@intel.com/ Signed-off-by: Arnd Bergmann <arnd@arndb.de>
24 lines
649 B
C
24 lines
649 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef ___ASM_SPARC_IO_H
|
|
#define ___ASM_SPARC_IO_H
|
|
#if defined(__sparc__) && defined(__arch64__)
|
|
#include <asm/io_64.h>
|
|
#else
|
|
#include <asm/io_32.h>
|
|
#endif
|
|
|
|
/*
|
|
* Defines used for both SPARC32 and SPARC64
|
|
*/
|
|
|
|
/* Big endian versions of memory read/write routines */
|
|
#define readb_be(__addr) __raw_readb(__addr)
|
|
#define readw_be(__addr) __raw_readw(__addr)
|
|
#define readl_be(__addr) __raw_readl(__addr)
|
|
#define writeb_be(__b, __addr) __raw_writeb(__b, __addr)
|
|
#define writel_be(__w, __addr) __raw_writel(__w, __addr)
|
|
#define writew_be(__l, __addr) __raw_writew(__l, __addr)
|
|
|
|
#include <asm-generic/io.h>
|
|
|
|
#endif
|