lkml.org 
[lkml]   [2022]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[broonie-regmap:for-next 4/4] include/asm-generic/io.h:187:18: error: redefinition of 'readb'
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git for-next
head: 81c0386c1376da54f05d6916936db5220df9f97d
commit: 81c0386c1376da54f05d6916936db5220df9f97d [4/4] regmap: mmio: Support accelerared noinc operations
config: hexagon-randconfig-r035-20220815 (https://download.01.org/0day-ci/archive/20220818/202208180333.1pfLpmaj-lkp@intel.com/config)
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project aed5e3bea138ce581d682158eb61c27b3cfdd6ec)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git/commit/?id=81c0386c1376da54f05d6916936db5220df9f97d
git remote add broonie-regmap https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git
git fetch --no-tags broonie-regmap for-next
git checkout 81c0386c1376da54f05d6916936db5220df9f97d
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon prepare

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:187:18: error: redefinition of 'readb'
static inline u8 readb(const volatile void __iomem *addr)
^
include/asm-generic/io.h:186:15: note: expanded from macro 'readb'
#define readb readb
^
arch/hexagon/include/asm/io.h:83:18: note: previous definition is here
static inline u8 readb(const volatile void __iomem *addr)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:202:19: error: redefinition of 'readw'
static inline u16 readw(const volatile void __iomem *addr)
^
include/asm-generic/io.h:201:15: note: expanded from macro 'readw'
#define readw readw
^
arch/hexagon/include/asm/io.h:94:19: note: previous definition is here
static inline u16 readw(const volatile void __iomem *addr)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:217:19: error: redefinition of 'readl'
static inline u32 readl(const volatile void __iomem *addr)
^
include/asm-generic/io.h:216:15: note: expanded from macro 'readl'
#define readl readl
^
arch/hexagon/include/asm/io.h:105:19: note: previous definition is here
static inline u32 readl(const volatile void __iomem *addr)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:249:20: error: redefinition of 'writeb'
static inline void writeb(u8 value, volatile void __iomem *addr)
^
include/asm-generic/io.h:248:16: note: expanded from macro 'writeb'
#define writeb writeb
^
arch/hexagon/include/asm/io.h:122:20: note: previous definition is here
static inline void writeb(u8 data, volatile void __iomem *addr)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:261:20: error: redefinition of 'writew'
static inline void writew(u16 value, volatile void __iomem *addr)
^
include/asm-generic/io.h:260:16: note: expanded from macro 'writew'
#define writew writew
^
arch/hexagon/include/asm/io.h:132:20: note: previous definition is here
static inline void writew(u16 data, volatile void __iomem *addr)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:273:20: error: redefinition of 'writel'
static inline void writel(u32 value, volatile void __iomem *addr)
^
include/asm-generic/io.h:272:16: note: expanded from macro 'writel'
#define writel writel
^
arch/hexagon/include/asm/io.h:143:20: note: previous definition is here
static inline void writel(u32 data, volatile void __iomem *addr)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __raw_readb(PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
#define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writeb(value, PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
>> include/asm-generic/io.h:690:20: error: conflicting types for 'insb'
static inline void insb(unsigned long addr, void *buffer, unsigned int count)
^
include/asm-generic/io.h:689:14: note: expanded from macro 'insb'
#define insb insb
^
arch/hexagon/include/asm/io.h:248:20: note: previous definition is here
static inline void insb(unsigned long port, void *buffer, int count)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
>> include/asm-generic/io.h:698:20: error: conflicting types for 'insw'
static inline void insw(unsigned long addr, void *buffer, unsigned int count)
^
include/asm-generic/io.h:697:14: note: expanded from macro 'insw'
#define insw insw
^
arch/hexagon/include/asm/io.h:259:20: note: previous definition is here
static inline void insw(unsigned long port, void *buffer, int count)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
arch/hexagon/include/asm/io.h:39:38: note: expanded from macro 'readsw'
#define readsw(p, d, l) __raw_readsw(p, d, l)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:706:20: error: conflicting types for 'insl'
static inline void insl(unsigned long addr, void *buffer, unsigned int count)
^
include/asm-generic/io.h:705:14: note: expanded from macro 'insl'
#define insl insl
^
arch/hexagon/include/asm/io.h:270:20: note: previous definition is here
static inline void insl(unsigned long port, void *buffer, int count)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
arch/hexagon/include/asm/io.h:42:40: note: expanded from macro 'readsl'
#define readsl(p, d, l) __raw_readsl(p, d, l)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:714:20: error: conflicting types for 'outsb'
static inline void outsb(unsigned long addr, const void *buffer,
^
include/asm-generic/io.h:713:15: note: expanded from macro 'outsb'
#define outsb outsb
^
arch/hexagon/include/asm/io.h:281:20: note: previous definition is here
static inline void outsb(unsigned long port, const void *buffer, int count)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
>> include/asm-generic/io.h:723:20: error: conflicting types for 'outsw'
static inline void outsw(unsigned long addr, const void *buffer,
^
include/asm-generic/io.h:722:15: note: expanded from macro 'outsw'
#define outsw outsw
^
arch/hexagon/include/asm/io.h:291:20: note: previous definition is here
static inline void outsw(unsigned long port, const void *buffer, int count)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
arch/hexagon/include/asm/io.h:40:40: note: expanded from macro 'writesw'
#define writesw(p, d, l) __raw_writesw(p, d, l)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:732:20: error: conflicting types for 'outsl'
static inline void outsl(unsigned long addr, const void *buffer,
^
include/asm-generic/io.h:731:15: note: expanded from macro 'outsl'
#define outsl outsl
^
arch/hexagon/include/asm/io.h:301:20: note: previous definition is here
static inline void outsl(unsigned long port, const void *buffer, int count)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
arch/hexagon/include/asm/io.h:43:41: note: expanded from macro 'writesl'
#define writesl(p, d, l) __raw_writesl(p, d, l)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:1003:29: error: redefinition of 'virt_to_phys'
static inline unsigned long virt_to_phys(volatile void *address)
^
include/asm-generic/io.h:1002:22: note: expanded from macro 'virt_to_phys'
#define virt_to_phys virt_to_phys
^
arch/hexagon/include/asm/io.h:49:29: note: previous definition is here
static inline unsigned long virt_to_phys(volatile void *address)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:1011:21: error: redefinition of 'phys_to_virt'
static inline void *phys_to_virt(unsigned long address)
^
include/asm-generic/io.h:1010:22: note: expanded from macro 'phys_to_virt'
#define phys_to_virt phys_to_virt
^
arch/hexagon/include/asm/io.h:58:21: note: previous definition is here
static inline void *phys_to_virt(unsigned long address)
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:1182:20: error: redefinition of 'memset_io'
static inline void memset_io(volatile void __iomem *addr, int value,
^
include/asm-generic/io.h:1173:19: note: expanded from macro 'memset_io'
#define memset_io memset_io
^
arch/hexagon/include/asm/io.h:191:20: note: previous definition is here
static inline void memset_io(volatile void __iomem *addr, int value,
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:1199:20: error: conflicting types for 'memcpy_fromio'
static inline void memcpy_fromio(void *buffer,
^
include/asm-generic/io.h:1190:23: note: expanded from macro 'memcpy_fromio'
#define memcpy_fromio memcpy_fromio
^
arch/hexagon/include/asm/io.h:179:20: note: previous definition is here
static inline void memcpy_fromio(void *dst, const volatile void __iomem *src,
^
In file included from arch/hexagon/kernel/asm-offsets.c:15:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:311:
>> include/asm-generic/io.h:1217:20: error: conflicting types for 'memcpy_toio'
static inline void memcpy_toio(volatile void __iomem *addr, const void *buffer,
^
include/asm-generic/io.h:1208:21: note: expanded from macro 'memcpy_toio'
#define memcpy_toio memcpy_toio
^
arch/hexagon/include/asm/io.h:185:20: note: previous definition is here
static inline void memcpy_toio(volatile void __iomem *dst, const void *src,
^
12 warnings and 17 errors generated.
make[2]: *** [scripts/Makefile.build:117: arch/hexagon/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1207: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:222: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.


vim +/readb +187 include/asm-generic/io.h

cd24834130ac65 Jan Glauber 2012-11-29 179
9216efafc52ff9 Thierry Reding 2014-10-01 180 /*
9216efafc52ff9 Thierry Reding 2014-10-01 181 * {read,write}{b,w,l,q}() access little endian memory and return result in
9216efafc52ff9 Thierry Reding 2014-10-01 182 * native endianness.
9216efafc52ff9 Thierry Reding 2014-10-01 183 */
3f7e212df82ca0 Arnd Bergmann 2009-05-13 184
9216efafc52ff9 Thierry Reding 2014-10-01 185 #ifndef readb
9216efafc52ff9 Thierry Reding 2014-10-01 186 #define readb readb
9216efafc52ff9 Thierry Reding 2014-10-01 @187 static inline u8 readb(const volatile void __iomem *addr)
3f7e212df82ca0 Arnd Bergmann 2009-05-13 188 {
032d59e1cde9dd Sinan Kaya 2018-04-05 189 u8 val;
032d59e1cde9dd Sinan Kaya 2018-04-05 190
210031971cdd25 Sai Prakash Ranjan 2022-05-18 191 log_read_mmio(8, addr, _THIS_IP_);
032d59e1cde9dd Sinan Kaya 2018-04-05 192 __io_br();
032d59e1cde9dd Sinan Kaya 2018-04-05 193 val = __raw_readb(addr);
abbbbc83a210e9 Will Deacon 2019-02-22 194 __io_ar(val);
210031971cdd25 Sai Prakash Ranjan 2022-05-18 195 log_post_read_mmio(val, 8, addr, _THIS_IP_);
032d59e1cde9dd Sinan Kaya 2018-04-05 196 return val;
3f7e212df82ca0 Arnd Bergmann 2009-05-13 197 }
3f7e212df82ca0 Arnd Bergmann 2009-05-13 198 #endif
3f7e212df82ca0 Arnd Bergmann 2009-05-13 199
9216efafc52ff9 Thierry Reding 2014-10-01 200 #ifndef readw
9216efafc52ff9 Thierry Reding 2014-10-01 201 #define readw readw
9216efafc52ff9 Thierry Reding 2014-10-01 @202 static inline u16 readw(const volatile void __iomem *addr)
9216efafc52ff9 Thierry Reding 2014-10-01 203 {
032d59e1cde9dd Sinan Kaya 2018-04-05 204 u16 val;
032d59e1cde9dd Sinan Kaya 2018-04-05 205
210031971cdd25 Sai Prakash Ranjan 2022-05-18 206 log_read_mmio(16, addr, _THIS_IP_);
032d59e1cde9dd Sinan Kaya 2018-04-05 207 __io_br();
c1d55d50139bea Stafford Horne 2020-07-29 208 val = __le16_to_cpu((__le16 __force)__raw_readw(addr));
abbbbc83a210e9 Will Deacon 2019-02-22 209 __io_ar(val);
210031971cdd25 Sai Prakash Ranjan 2022-05-18 210 log_post_read_mmio(val, 16, addr, _THIS_IP_);
032d59e1cde9dd Sinan Kaya 2018-04-05 211 return val;
9216efafc52ff9 Thierry Reding 2014-10-01 212 }
7dc59bdde70633 GuanXuetao 2011-02-22 213 #endif
7dc59bdde70633 GuanXuetao 2011-02-22 214
9216efafc52ff9 Thierry Reding 2014-10-01 215 #ifndef readl
9216efafc52ff9 Thierry Reding 2014-10-01 216 #define readl readl
9216efafc52ff9 Thierry Reding 2014-10-01 @217 static inline u32 readl(const volatile void __iomem *addr)
3f7e212df82ca0 Arnd Bergmann 2009-05-13 218 {
032d59e1cde9dd Sinan Kaya 2018-04-05 219 u32 val;
032d59e1cde9dd Sinan Kaya 2018-04-05 220
210031971cdd25 Sai Prakash Ranjan 2022-05-18 221 log_read_mmio(32, addr, _THIS_IP_);
032d59e1cde9dd Sinan Kaya 2018-04-05 222 __io_br();
c1d55d50139bea Stafford Horne 2020-07-29 223 val = __le32_to_cpu((__le32 __force)__raw_readl(addr));
abbbbc83a210e9 Will Deacon 2019-02-22 224 __io_ar(val);
210031971cdd25 Sai Prakash Ranjan 2022-05-18 225 log_post_read_mmio(val, 32, addr, _THIS_IP_);
032d59e1cde9dd Sinan Kaya 2018-04-05 226 return val;
3f7e212df82ca0 Arnd Bergmann 2009-05-13 227 }
9216efafc52ff9 Thierry Reding 2014-10-01 228 #endif
3f7e212df82ca0 Arnd Bergmann 2009-05-13 229
9216efafc52ff9 Thierry Reding 2014-10-01 230 #ifdef CONFIG_64BIT
9216efafc52ff9 Thierry Reding 2014-10-01 231 #ifndef readq
9216efafc52ff9 Thierry Reding 2014-10-01 232 #define readq readq
9216efafc52ff9 Thierry Reding 2014-10-01 233 static inline u64 readq(const volatile void __iomem *addr)
3f7e212df82ca0 Arnd Bergmann 2009-05-13 234 {
032d59e1cde9dd Sinan Kaya 2018-04-05 235 u64 val;
032d59e1cde9dd Sinan Kaya 2018-04-05 236
210031971cdd25 Sai Prakash Ranjan 2022-05-18 237 log_read_mmio(64, addr, _THIS_IP_);
032d59e1cde9dd Sinan Kaya 2018-04-05 238 __io_br();
032d59e1cde9dd Sinan Kaya 2018-04-05 239 val = __le64_to_cpu(__raw_readq(addr));
abbbbc83a210e9 Will Deacon 2019-02-22 240 __io_ar(val);
210031971cdd25 Sai Prakash Ranjan 2022-05-18 241 log_post_read_mmio(val, 64, addr, _THIS_IP_);
032d59e1cde9dd Sinan Kaya 2018-04-05 242 return val;
3f7e212df82ca0 Arnd Bergmann 2009-05-13 243 }
9216efafc52ff9 Thierry Reding 2014-10-01 244 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 245 #endif /* CONFIG_64BIT */
3f7e212df82ca0 Arnd Bergmann 2009-05-13 246
9216efafc52ff9 Thierry Reding 2014-10-01 247 #ifndef writeb
9216efafc52ff9 Thierry Reding 2014-10-01 248 #define writeb writeb
9216efafc52ff9 Thierry Reding 2014-10-01 @249 static inline void writeb(u8 value, volatile void __iomem *addr)
3f7e212df82ca0 Arnd Bergmann 2009-05-13 250 {
210031971cdd25 Sai Prakash Ranjan 2022-05-18 251 log_write_mmio(value, 8, addr, _THIS_IP_);
755bd04aaf4bf7 Sinan Kaya 2018-04-05 252 __io_bw();
9216efafc52ff9 Thierry Reding 2014-10-01 253 __raw_writeb(value, addr);
755bd04aaf4bf7 Sinan Kaya 2018-04-05 254 __io_aw();
210031971cdd25 Sai Prakash Ranjan 2022-05-18 255 log_post_write_mmio(value, 8, addr, _THIS_IP_);
3f7e212df82ca0 Arnd Bergmann 2009-05-13 256 }
9216efafc52ff9 Thierry Reding 2014-10-01 257 #endif
3f7e212df82ca0 Arnd Bergmann 2009-05-13 258
9216efafc52ff9 Thierry Reding 2014-10-01 259 #ifndef writew
9216efafc52ff9 Thierry Reding 2014-10-01 260 #define writew writew
9216efafc52ff9 Thierry Reding 2014-10-01 @261 static inline void writew(u16 value, volatile void __iomem *addr)
3f7e212df82ca0 Arnd Bergmann 2009-05-13 262 {
210031971cdd25 Sai Prakash Ranjan 2022-05-18 263 log_write_mmio(value, 16, addr, _THIS_IP_);
755bd04aaf4bf7 Sinan Kaya 2018-04-05 264 __io_bw();
c1d55d50139bea Stafford Horne 2020-07-29 265 __raw_writew((u16 __force)cpu_to_le16(value), addr);
755bd04aaf4bf7 Sinan Kaya 2018-04-05 266 __io_aw();
210031971cdd25 Sai Prakash Ranjan 2022-05-18 267 log_post_write_mmio(value, 16, addr, _THIS_IP_);
3f7e212df82ca0 Arnd Bergmann 2009-05-13 268 }
9216efafc52ff9 Thierry Reding 2014-10-01 269 #endif
3f7e212df82ca0 Arnd Bergmann 2009-05-13 270
9216efafc52ff9 Thierry Reding 2014-10-01 271 #ifndef writel
9216efafc52ff9 Thierry Reding 2014-10-01 272 #define writel writel
9216efafc52ff9 Thierry Reding 2014-10-01 @273 static inline void writel(u32 value, volatile void __iomem *addr)
3f7e212df82ca0 Arnd Bergmann 2009-05-13 274 {
210031971cdd25 Sai Prakash Ranjan 2022-05-18 275 log_write_mmio(value, 32, addr, _THIS_IP_);
755bd04aaf4bf7 Sinan Kaya 2018-04-05 276 __io_bw();
c1d55d50139bea Stafford Horne 2020-07-29 277 __raw_writel((u32 __force)__cpu_to_le32(value), addr);
755bd04aaf4bf7 Sinan Kaya 2018-04-05 278 __io_aw();
210031971cdd25 Sai Prakash Ranjan 2022-05-18 279 log_post_write_mmio(value, 32, addr, _THIS_IP_);
3f7e212df82ca0 Arnd Bergmann 2009-05-13 280 }
9216efafc52ff9 Thierry Reding 2014-10-01 281 #endif
3f7e212df82ca0 Arnd Bergmann 2009-05-13 282

:::::: The code at line 187 was first introduced by commit
:::::: 9216efafc52ff99e9351ef60de5fcafc2bc8adb6 asm-generic/io.h: Reconcile I/O accessor overrides

:::::: TO: Thierry Reding <treding@nvidia.com>
:::::: CC: Thierry Reding <treding@nvidia.com>

--
0-DAY CI Kernel Test Service
https://01.org/lkp

\
 
 \ /
  Last update: 2022-08-17 21:56    [W:0.085 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site