Hi Baoquan, I love your patch! Yet something to improve: [auto build test ERROR on akpm-mm/mm-everything] url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/mm-ioremap-Convert-architectures-to-take-GENERIC_IOREMAP-way/20220820-083435 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything config: sh-allmodconfig compiler: sh4-linux-gcc (GCC) 12.1.0 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://github.com/intel-lab-lkp/linux/commit/503a31451202f89e58bc5f0a49261398fafbd90e git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Baoquan-He/mm-ioremap-Convert-architectures-to-take-GENERIC_IOREMAP-way/20220820-083435 git checkout 503a31451202f89e58bc5f0a49261398fafbd90e # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sh prepare If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot All error/warnings (new ones prefixed by >>): In file included from include/linux/io.h:13, from include/linux/irq.h:20, from include/asm-generic/hardirq.h:17, from arch/sh/include/asm/hardirq.h:9, from include/linux/hardirq.h:11, from include/linux/interrupt.h:11, from include/linux/kernel_stat.h:9, from include/linux/cgroup.h:26, from include/linux/memcontrol.h:13, from include/linux/swap.h:9, from include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: >> arch/sh/include/asm/io.h:259: warning: "ioremap_cache" redefined 259 | #define ioremap_cache ioremap_cache | arch/sh/include/asm/io.h:257: note: this is the location of the previous definition 257 | #define ioremap_cache(addr, size) \ | In file included from arch/sh/include/asm/io.h:263: >> include/asm-generic/io.h:689:14: error: conflicting types for 'insb'; have 'void(long unsigned int, void *, unsigned int)' 689 | #define insb insb | ^~~~ include/asm-generic/io.h:690:20: note: in expansion of macro 'insb' 690 | static inline void insb(unsigned long addr, void *buffer, unsigned int count) | ^~~~ In file included from arch/sh/include/asm/io.h:220: arch/sh/include/asm/io_noioport.h:56:20: note: previous definition of 'insb' with type 'void(long unsigned int, void *, long unsigned int)' 56 | static inline void insb(unsigned long port, void *dst, unsigned long count) | ^~~~ >> include/asm-generic/io.h:697:14: error: conflicting types for 'insw'; have 'void(long unsigned int, void *, unsigned int)' 697 | #define insw insw | ^~~~ include/asm-generic/io.h:698:20: note: in expansion of macro 'insw' 698 | static inline void insw(unsigned long addr, void *buffer, unsigned int count) | ^~~~ arch/sh/include/asm/io_noioport.h:61:20: note: previous definition of 'insw' with type 'void(long unsigned int, void *, long unsigned int)' 61 | static inline void insw(unsigned long port, void *dst, unsigned long count) | ^~~~ >> include/asm-generic/io.h:705:14: error: conflicting types for 'insl'; have 'void(long unsigned int, void *, unsigned int)' 705 | #define insl insl | ^~~~ include/asm-generic/io.h:706:20: note: in expansion of macro 'insl' 706 | static inline void insl(unsigned long addr, void *buffer, unsigned int count) | ^~~~ arch/sh/include/asm/io_noioport.h:66:20: note: previous definition of 'insl' with type 'void(long unsigned int, void *, long unsigned int)' 66 | static inline void insl(unsigned long port, void *dst, unsigned long count) | ^~~~ >> include/asm-generic/io.h:713:15: error: conflicting types for 'outsb'; have 'void(long unsigned int, const void *, unsigned int)' 713 | #define outsb outsb | ^~~~~ include/asm-generic/io.h:714:20: note: in expansion of macro 'outsb' 714 | static inline void outsb(unsigned long addr, const void *buffer, | ^~~~~ arch/sh/include/asm/io_noioport.h:71:20: note: previous definition of 'outsb' with type 'void(long unsigned int, const void *, long unsigned int)' 71 | static inline void outsb(unsigned long port, const void *src, unsigned long count) | ^~~~~ >> include/asm-generic/io.h:722:15: error: conflicting types for 'outsw'; have 'void(long unsigned int, const void *, unsigned int)' 722 | #define outsw outsw | ^~~~~ include/asm-generic/io.h:723:20: note: in expansion of macro 'outsw' 723 | static inline void outsw(unsigned long addr, const void *buffer, | ^~~~~ arch/sh/include/asm/io_noioport.h:76:20: note: previous definition of 'outsw' with type 'void(long unsigned int, const void *, long unsigned int)' 76 | static inline void outsw(unsigned long port, const void *src, unsigned long count) | ^~~~~ >> include/asm-generic/io.h:731:15: error: conflicting types for 'outsl'; have 'void(long unsigned int, const void *, unsigned int)' 731 | #define outsl outsl | ^~~~~ include/asm-generic/io.h:732:20: note: in expansion of macro 'outsl' 732 | static inline void outsl(unsigned long addr, const void *buffer, | ^~~~~ arch/sh/include/asm/io_noioport.h:81:20: note: previous definition of 'outsl' with type 'void(long unsigned int, const void *, long unsigned int)' 81 | static inline void outsl(unsigned long port, const void *src, unsigned long count) | ^~~~~ >> include/asm-generic/io.h:792:17: error: conflicting types for 'ioread8'; have 'u8(const volatile void *)' {aka 'unsigned char(const volatile void *)'} 792 | #define ioread8 ioread8 | ^~~~~~~ include/asm-generic/io.h:793:18: note: in expansion of macro 'ioread8' 793 | static inline u8 ioread8(const volatile void __iomem *addr) | ^~~~~~~ In file included from arch/sh/include/asm/io.h:22: include/asm-generic/iomap.h:29:21: note: previous declaration of 'ioread8' with type 'unsigned int(const void *)' 29 | extern unsigned int ioread8(const void __iomem *); | ^~~~~~~ >> include/asm-generic/io.h:800:18: error: conflicting types for 'ioread16'; have 'u16(const volatile void *)' {aka 'short unsigned int(const volatile void *)'} 800 | #define ioread16 ioread16 | ^~~~~~~~ include/asm-generic/io.h:801:19: note: in expansion of macro 'ioread16' 801 | static inline u16 ioread16(const volatile void __iomem *addr) | ^~~~~~~~ include/asm-generic/iomap.h:30:21: note: previous declaration of 'ioread16' with type 'unsigned int(const void *)' 30 | extern unsigned int ioread16(const void __iomem *); | ^~~~~~~~ >> include/asm-generic/io.h:808:18: error: conflicting types for 'ioread32'; have 'u32(const volatile void *)' {aka 'unsigned int(const volatile void *)'} 808 | #define ioread32 ioread32 | ^~~~~~~~ include/asm-generic/io.h:809:19: note: in expansion of macro 'ioread32' 809 | static inline u32 ioread32(const volatile void __iomem *addr) | ^~~~~~~~ include/asm-generic/iomap.h:32:21: note: previous declaration of 'ioread32' with type 'unsigned int(const void *)' 32 | extern unsigned int ioread32(const void __iomem *); | ^~~~~~~~ >> include/asm-generic/io.h:826:18: error: conflicting types for 'iowrite8'; have 'void(u8, volatile void *)' {aka 'void(unsigned char, volatile void *)'} 826 | #define iowrite8 iowrite8 | ^~~~~~~~ include/asm-generic/io.h:827:20: note: in expansion of macro 'iowrite8' 827 | static inline void iowrite8(u8 value, volatile void __iomem *addr) | ^~~~~~~~ include/asm-generic/iomap.h:50:13: note: previous declaration of 'iowrite8' with type 'void(u8, void *)' {aka 'void(unsigned char, void *)'} 50 | extern void iowrite8(u8, void __iomem *); | ^~~~~~~~ >> include/asm-generic/io.h:834:19: error: conflicting types for 'iowrite16'; have 'void(u16, volatile void *)' {aka 'void(short unsigned int, volatile void *)'} 834 | #define iowrite16 iowrite16 | ^~~~~~~~~ include/asm-generic/io.h:835:20: note: in expansion of macro 'iowrite16' 835 | static inline void iowrite16(u16 value, volatile void __iomem *addr) | ^~~~~~~~~ include/asm-generic/iomap.h:51:13: note: previous declaration of 'iowrite16' with type 'void(u16, void *)' {aka 'void(short unsigned int, void *)'} 51 | extern void iowrite16(u16, void __iomem *); | ^~~~~~~~~ >> include/asm-generic/io.h:842:19: error: conflicting types for 'iowrite32'; have 'void(u32, volatile void *)' {aka 'void(unsigned int, volatile void *)'} 842 | #define iowrite32 iowrite32 | ^~~~~~~~~ include/asm-generic/io.h:843:20: note: in expansion of macro 'iowrite32' 843 | static inline void iowrite32(u32 value, volatile void __iomem *addr) | ^~~~~~~~~ include/asm-generic/iomap.h:53:13: note: previous declaration of 'iowrite32' with type 'void(u32, void *)' {aka 'void(unsigned int, void *)'} 53 | extern void iowrite32(u32, void __iomem *); | ^~~~~~~~~ >> include/asm-generic/io.h:860:20: error: conflicting types for 'ioread16be'; have 'u16(const volatile void *)' {aka 'short unsigned int(const volatile void *)'} 860 | #define ioread16be ioread16be | ^~~~~~~~~~ include/asm-generic/io.h:861:19: note: in expansion of macro 'ioread16be' 861 | static inline u16 ioread16be(const volatile void __iomem *addr) | ^~~~~~~~~~ include/asm-generic/iomap.h:31:21: note: previous declaration of 'ioread16be' with type 'unsigned int(const void *)' 31 | extern unsigned int ioread16be(const void __iomem *); | ^~~~~~~~~~ >> include/asm-generic/io.h:868:20: error: conflicting types for 'ioread32be'; have 'u32(const volatile void *)' {aka 'unsigned int(const volatile void *)'} 868 | #define ioread32be ioread32be | ^~~~~~~~~~ include/asm-generic/io.h:869:19: note: in expansion of macro 'ioread32be' 869 | static inline u32 ioread32be(const volatile void __iomem *addr) | ^~~~~~~~~~ include/asm-generic/iomap.h:33:21: note: previous declaration of 'ioread32be' with type 'unsigned int(const void *)' 33 | extern unsigned int ioread32be(const void __iomem *); | ^~~~~~~~~~ >> include/asm-generic/io.h:886:21: error: conflicting types for 'iowrite16be'; have 'void(u16, volatile void *)' {aka 'void(short unsigned int, volatile void *)'} 886 | #define iowrite16be iowrite16be | ^~~~~~~~~~~ include/asm-generic/io.h:887:20: note: in expansion of macro 'iowrite16be' 887 | static inline void iowrite16be(u16 value, void volatile __iomem *addr) | ^~~~~~~~~~~ include/asm-generic/iomap.h:52:13: note: previous declaration of 'iowrite16be' with type 'void(u16, void *)' {aka 'void(short unsigned int, void *)'} 52 | extern void iowrite16be(u16, void __iomem *); | ^~~~~~~~~~~ >> include/asm-generic/io.h:894:21: error: conflicting types for 'iowrite32be'; have 'void(u32, volatile void *)' {aka 'void(unsigned int, volatile void *)'} 894 | #define iowrite32be iowrite32be | ^~~~~~~~~~~ include/asm-generic/io.h:895:20: note: in expansion of macro 'iowrite32be' 895 | static inline void iowrite32be(u32 value, volatile void __iomem *addr) | ^~~~~~~~~~~ include/asm-generic/iomap.h:54:13: note: previous declaration of 'iowrite32be' with type 'void(u32, void *)' {aka 'void(unsigned int, void *)'} 54 | extern void iowrite32be(u32, void __iomem *); | ^~~~~~~~~~~ >> include/asm-generic/io.h:912:21: error: conflicting types for 'ioread8_rep'; have 'void(const volatile void *, void *, unsigned int)' 912 | #define ioread8_rep ioread8_rep | ^~~~~~~~~~~ include/asm-generic/io.h:913:20: note: in expansion of macro 'ioread8_rep' 913 | static inline void ioread8_rep(const volatile void __iomem *addr, void *buffer, | ^~~~~~~~~~~ include/asm-generic/iomap.h:82:13: note: previous declaration of 'ioread8_rep' with type 'void(const void *, void *, long unsigned int)' 82 | extern void ioread8_rep(const void __iomem *port, void *buf, unsigned long count); | ^~~~~~~~~~~ include/asm-generic/io.h: In function 'ioread8_rep': >> include/asm-generic/io.h:916:16: warning: passing argument 1 of '__raw_readsb' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 916 | readsb(addr, buffer, count); | ^~~~ arch/sh/include/asm/io.h:59:46: note: in definition of macro 'readsb' 59 | #define readsb(p,d,l) __raw_readsb(p,d,l) | ^ arch/sh/include/asm/io.h:103:60: note: expected 'volatile void *' but argument is of type 'const volatile void *' 103 | static inline void pfx##reads##bwlq(volatile void __iomem *mem, \ | ~~~~~~~~~~~~~~~~~~~~~~~^~~ arch/sh/include/asm/io.h:114:1: note: in expansion of macro '__BUILD_MEMORY_STRING' 114 | __BUILD_MEMORY_STRING(__raw_, b, u8) | ^~~~~~~~~~~~~~~~~~~~~ include/asm-generic/io.h: At top level: >> include/asm-generic/io.h:921:22: error: conflicting types for 'ioread16_rep'; have 'void(const volatile void *, void *, unsigned int)' 921 | #define ioread16_rep ioread16_rep | ^~~~~~~~~~~~ include/asm-generic/io.h:922:20: note: in expansion of macro 'ioread16_rep' 922 | static inline void ioread16_rep(const volatile void __iomem *addr, | ^~~~~~~~~~~~ include/asm-generic/iomap.h:83:13: note: previous declaration of 'ioread16_rep' with type 'void(const void *, void *, long unsigned int)' 83 | extern void ioread16_rep(const void __iomem *port, void *buf, unsigned long count); | ^~~~~~~~~~~~ include/asm-generic/io.h: In function 'ioread16_rep': include/asm-generic/io.h:925:16: warning: passing argument 1 of '__raw_readsw' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 925 | readsw(addr, buffer, count); | ^~~~ arch/sh/include/asm/io.h:60:46: note: in definition of macro 'readsw' 60 | #define readsw(p,d,l) __raw_readsw(p,d,l) | ^ arch/sh/include/asm/io.h:103:60: note: expected 'volatile void *' but argument is of type 'const volatile void *' 103 | static inline void pfx##reads##bwlq(volatile void __iomem *mem, \ | ~~~~~~~~~~~~~~~~~~~~~~~^~~ arch/sh/include/asm/io.h:115:1: note: in expansion of macro '__BUILD_MEMORY_STRING' 115 | __BUILD_MEMORY_STRING(__raw_, w, u16) | ^~~~~~~~~~~~~~~~~~~~~ include/asm-generic/io.h: At top level: include/asm-generic/io.h:930:22: error: conflicting types for 'ioread32_rep'; have 'void(const volatile void *, void *, unsigned int)' 930 | #define ioread32_rep ioread32_rep | ^~~~~~~~~~~~ include/asm-generic/io.h:931:20: note: in expansion of macro 'ioread32_rep' 931 | static inline void ioread32_rep(const volatile void __iomem *addr, | ^~~~~~~~~~~~ include/asm-generic/iomap.h:84:13: note: previous declaration of 'ioread32_rep' with type 'void(const void *, void *, long unsigned int)' 84 | extern void ioread32_rep(const void __iomem *port, void *buf, unsigned long count); | ^~~~~~~~~~~~ include/asm-generic/io.h: In function 'ioread32_rep': include/asm-generic/io.h:934:16: warning: passing argument 1 of '__raw_readsl' discards 'volatile' qualifier from pointer target type [-Wdiscarded-qualifiers] 934 | readsl(addr, buffer, count); | ^~~~ arch/sh/include/asm/io.h:61:46: note: in definition of macro 'readsl' 61 | #define readsl(p,d,l) __raw_readsl(p,d,l) | ^ arch/sh/include/asm/io.h:118:39: note: expected 'const void *' but argument is of type 'const volatile void *' 118 | void __raw_readsl(const void __iomem *addr, void *data, int longlen); | ~~~~~~~~~~~~~~~~~~~~^~~~ include/asm-generic/io.h: At top level: include/asm-generic/io.h:950:22: error: conflicting types for 'iowrite8_rep'; have 'void(volatile void *, const void *, unsigned int)' 950 | #define iowrite8_rep iowrite8_rep | ^~~~~~~~~~~~ include/asm-generic/io.h:951:20: note: in expansion of macro 'iowrite8_rep' 951 | static inline void iowrite8_rep(volatile void __iomem *addr, | ^~~~~~~~~~~~ include/asm-generic/iomap.h:86:13: note: previous declaration of 'iowrite8_rep' with type 'void(void *, const void *, long unsigned int)' 86 | extern void iowrite8_rep(void __iomem *port, const void *buf, unsigned long count); | ^~~~~~~~~~~~ include/asm-generic/io.h:960:23: error: conflicting types for 'iowrite16_rep'; have 'void(volatile void *, const void *, unsigned int)' 960 | #define iowrite16_rep iowrite16_rep | ^~~~~~~~~~~~~ include/asm-generic/io.h:961:20: note: in expansion of macro 'iowrite16_rep' 961 | static inline void iowrite16_rep(volatile void __iomem *addr, | ^~~~~~~~~~~~~ include/asm-generic/iomap.h:87:13: note: previous declaration of 'iowrite16_rep' with type 'void(void *, const void *, long unsigned int)' 87 | extern void iowrite16_rep(void __iomem *port, const void *buf, unsigned long count); | ^~~~~~~~~~~~~ include/asm-generic/io.h:970:23: error: conflicting types for 'iowrite32_rep'; have 'void(volatile void *, const void *, unsigned int)' 970 | #define iowrite32_rep iowrite32_rep | ^~~~~~~~~~~~~ include/asm-generic/io.h:971:20: note: in expansion of macro 'iowrite32_rep' 971 | static inline void iowrite32_rep(volatile void __iomem *addr, | ^~~~~~~~~~~~~ include/asm-generic/iomap.h:88:13: note: previous declaration of 'iowrite32_rep' with type 'void(void *, const void *, long unsigned int)' 88 | extern void iowrite32_rep(void __iomem *port, const void *buf, unsigned long count); | ^~~~~~~~~~~~~ include/asm-generic/io.h: In function 'iowrite32_rep': include/asm-generic/io.h:975:17: warning: passing argument 1 of '__raw_writesl' discards 'volatile' qualifier from pointer target type [-Wdiscarded-qualifiers] 975 | writesl(addr, buffer, count); | ^~~~ arch/sh/include/asm/io.h:65:47: note: in definition of macro 'writesl' 65 | #define writesl(p,d,l) __raw_writesl(p,d,l) | ^ arch/sh/include/asm/io.h:117:34: note: expected 'void *' but argument is of type 'volatile void *' 117 | void __raw_writesl(void __iomem *addr, const void *data, int longlen); | ~~~~~~~~~~~~~~^~~~ include/asm-generic/io.h: At top level: include/asm-generic/io.h:1177:19: error: conflicting types for 'memset_io'; have 'void(volatile void *, int, size_t)' {aka 'void(volatile void *, int, unsigned int)'} 1177 | #define memset_io memset_io | ^~~~~~~~~ include/asm-generic/io.h:1186:20: note: in expansion of macro 'memset_io' 1186 | static inline void memset_io(volatile void __iomem *addr, int value, | ^~~~~~~~~ arch/sh/include/asm/io.h:230:6: note: previous declaration of 'memset_io' with type 'void(volatile void *, int, long unsigned int)' 230 | void memset_io(volatile void __iomem *, int, unsigned long); | ^~~~~~~~~ include/asm-generic/io.h:1194:23: error: conflicting types for 'memcpy_fromio'; have 'void(void *, const volatile void *, size_t)' {aka 'void(void *, const volatile void *, unsigned int)'} 1194 | #define memcpy_fromio memcpy_fromio | ^~~~~~~~~~~~~ include/asm-generic/io.h:1203:20: note: in expansion of macro 'memcpy_fromio' 1203 | static inline void memcpy_fromio(void *buffer, | ^~~~~~~~~~~~~ arch/sh/include/asm/io.h:228:6: note: previous declaration of 'memcpy_fromio' with type 'void(void *, const volatile void *, long unsigned int)' 228 | void memcpy_fromio(void *, const volatile void __iomem *, unsigned long); | ^~~~~~~~~~~~~ include/asm-generic/io.h:1212:21: error: conflicting types for 'memcpy_toio'; have 'void(volatile void *, const void *, size_t)' {aka 'void(volatile void *, const void *, unsigned int)'} 1212 | #define memcpy_toio memcpy_toio vim +689 include/asm-generic/io.h 9216efafc52ff9 Thierry Reding 2014-10-01 682 9ab3a7a0d2b417 Thierry Reding 2014-07-04 683 /* 9ab3a7a0d2b417 Thierry Reding 2014-07-04 684 * {in,out}s{b,w,l}{,_p}() are variants of the above that repeatedly access a 9ab3a7a0d2b417 Thierry Reding 2014-07-04 685 * single I/O port multiple times. 9ab3a7a0d2b417 Thierry Reding 2014-07-04 686 */ 9ab3a7a0d2b417 Thierry Reding 2014-07-04 687 9ab3a7a0d2b417 Thierry Reding 2014-07-04 688 #ifndef insb 9ab3a7a0d2b417 Thierry Reding 2014-07-04 @689 #define insb insb 9ab3a7a0d2b417 Thierry Reding 2014-07-04 690 static inline void insb(unsigned long addr, void *buffer, unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 691 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 692 readsb(PCI_IOBASE + addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 693 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 694 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 695 9ab3a7a0d2b417 Thierry Reding 2014-07-04 696 #ifndef insw 9ab3a7a0d2b417 Thierry Reding 2014-07-04 @697 #define insw insw 9ab3a7a0d2b417 Thierry Reding 2014-07-04 698 static inline void insw(unsigned long addr, void *buffer, unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 699 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 700 readsw(PCI_IOBASE + addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 701 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 702 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 703 9ab3a7a0d2b417 Thierry Reding 2014-07-04 704 #ifndef insl 9ab3a7a0d2b417 Thierry Reding 2014-07-04 @705 #define insl insl 9ab3a7a0d2b417 Thierry Reding 2014-07-04 706 static inline void insl(unsigned long addr, void *buffer, unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 707 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 708 readsl(PCI_IOBASE + addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 709 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 710 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 711 9ab3a7a0d2b417 Thierry Reding 2014-07-04 712 #ifndef outsb 9ab3a7a0d2b417 Thierry Reding 2014-07-04 @713 #define outsb outsb 9ab3a7a0d2b417 Thierry Reding 2014-07-04 714 static inline void outsb(unsigned long addr, const void *buffer, 9ab3a7a0d2b417 Thierry Reding 2014-07-04 715 unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 716 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 717 writesb(PCI_IOBASE + addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 718 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 719 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 720 9ab3a7a0d2b417 Thierry Reding 2014-07-04 721 #ifndef outsw 9ab3a7a0d2b417 Thierry Reding 2014-07-04 @722 #define outsw outsw 9ab3a7a0d2b417 Thierry Reding 2014-07-04 723 static inline void outsw(unsigned long addr, const void *buffer, 9ab3a7a0d2b417 Thierry Reding 2014-07-04 724 unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 725 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 726 writesw(PCI_IOBASE + addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 727 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 728 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 729 9ab3a7a0d2b417 Thierry Reding 2014-07-04 730 #ifndef outsl 9ab3a7a0d2b417 Thierry Reding 2014-07-04 @731 #define outsl outsl 9ab3a7a0d2b417 Thierry Reding 2014-07-04 732 static inline void outsl(unsigned long addr, const void *buffer, 9ab3a7a0d2b417 Thierry Reding 2014-07-04 733 unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 734 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 735 writesl(PCI_IOBASE + addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 736 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 737 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 738 9ab3a7a0d2b417 Thierry Reding 2014-07-04 739 #ifndef insb_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 740 #define insb_p insb_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 741 static inline void insb_p(unsigned long addr, void *buffer, unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 742 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 743 insb(addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 744 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 745 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 746 9ab3a7a0d2b417 Thierry Reding 2014-07-04 747 #ifndef insw_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 748 #define insw_p insw_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 749 static inline void insw_p(unsigned long addr, void *buffer, unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 750 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 751 insw(addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 752 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 753 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 754 9ab3a7a0d2b417 Thierry Reding 2014-07-04 755 #ifndef insl_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 756 #define insl_p insl_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 757 static inline void insl_p(unsigned long addr, void *buffer, unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 758 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 759 insl(addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 760 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 761 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 762 9ab3a7a0d2b417 Thierry Reding 2014-07-04 763 #ifndef outsb_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 764 #define outsb_p outsb_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 765 static inline void outsb_p(unsigned long addr, const void *buffer, 9ab3a7a0d2b417 Thierry Reding 2014-07-04 766 unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 767 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 768 outsb(addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 769 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 770 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 771 9ab3a7a0d2b417 Thierry Reding 2014-07-04 772 #ifndef outsw_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 773 #define outsw_p outsw_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 774 static inline void outsw_p(unsigned long addr, const void *buffer, 9ab3a7a0d2b417 Thierry Reding 2014-07-04 775 unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 776 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 777 outsw(addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 778 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 779 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 780 9ab3a7a0d2b417 Thierry Reding 2014-07-04 781 #ifndef outsl_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 782 #define outsl_p outsl_p 9ab3a7a0d2b417 Thierry Reding 2014-07-04 783 static inline void outsl_p(unsigned long addr, const void *buffer, 9ab3a7a0d2b417 Thierry Reding 2014-07-04 784 unsigned int count) 9ab3a7a0d2b417 Thierry Reding 2014-07-04 785 { 9ab3a7a0d2b417 Thierry Reding 2014-07-04 786 outsl(addr, buffer, count); 9ab3a7a0d2b417 Thierry Reding 2014-07-04 787 } 9ab3a7a0d2b417 Thierry Reding 2014-07-04 788 #endif 9ab3a7a0d2b417 Thierry Reding 2014-07-04 789 9216efafc52ff9 Thierry Reding 2014-10-01 790 #ifndef CONFIG_GENERIC_IOMAP 9216efafc52ff9 Thierry Reding 2014-10-01 791 #ifndef ioread8 9216efafc52ff9 Thierry Reding 2014-10-01 @792 #define ioread8 ioread8 9216efafc52ff9 Thierry Reding 2014-10-01 793 static inline u8 ioread8(const volatile void __iomem *addr) 9216efafc52ff9 Thierry Reding 2014-10-01 794 { 9216efafc52ff9 Thierry Reding 2014-10-01 795 return readb(addr); 9216efafc52ff9 Thierry Reding 2014-10-01 796 } 9216efafc52ff9 Thierry Reding 2014-10-01 797 #endif 9216efafc52ff9 Thierry Reding 2014-10-01 798 9216efafc52ff9 Thierry Reding 2014-10-01 799 #ifndef ioread16 9216efafc52ff9 Thierry Reding 2014-10-01 @800 #define ioread16 ioread16 9216efafc52ff9 Thierry Reding 2014-10-01 801 static inline u16 ioread16(const volatile void __iomem *addr) 9216efafc52ff9 Thierry Reding 2014-10-01 802 { 9216efafc52ff9 Thierry Reding 2014-10-01 803 return readw(addr); 9216efafc52ff9 Thierry Reding 2014-10-01 804 } 9216efafc52ff9 Thierry Reding 2014-10-01 805 #endif 9216efafc52ff9 Thierry Reding 2014-10-01 806 9216efafc52ff9 Thierry Reding 2014-10-01 807 #ifndef ioread32 9216efafc52ff9 Thierry Reding 2014-10-01 @808 #define ioread32 ioread32 9216efafc52ff9 Thierry Reding 2014-10-01 809 static inline u32 ioread32(const volatile void __iomem *addr) 9216efafc52ff9 Thierry Reding 2014-10-01 810 { 9216efafc52ff9 Thierry Reding 2014-10-01 811 return readl(addr); 9216efafc52ff9 Thierry Reding 2014-10-01 812 } 9216efafc52ff9 Thierry Reding 2014-10-01 813 #endif 9216efafc52ff9 Thierry Reding 2014-10-01 814 9e44fb1816dba8 Horia Geantă 2016-05-19 815 #ifdef CONFIG_64BIT 9e44fb1816dba8 Horia Geantă 2016-05-19 816 #ifndef ioread64 9e44fb1816dba8 Horia Geantă 2016-05-19 817 #define ioread64 ioread64 9e44fb1816dba8 Horia Geantă 2016-05-19 818 static inline u64 ioread64(const volatile void __iomem *addr) 9e44fb1816dba8 Horia Geantă 2016-05-19 819 { 9e44fb1816dba8 Horia Geantă 2016-05-19 820 return readq(addr); 9e44fb1816dba8 Horia Geantă 2016-05-19 821 } 9e44fb1816dba8 Horia Geantă 2016-05-19 822 #endif 9e44fb1816dba8 Horia Geantă 2016-05-19 823 #endif /* CONFIG_64BIT */ 9e44fb1816dba8 Horia Geantă 2016-05-19 824 9216efafc52ff9 Thierry Reding 2014-10-01 825 #ifndef iowrite8 9216efafc52ff9 Thierry Reding 2014-10-01 @826 #define iowrite8 iowrite8 9216efafc52ff9 Thierry Reding 2014-10-01 827 static inline void iowrite8(u8 value, volatile void __iomem *addr) 9216efafc52ff9 Thierry Reding 2014-10-01 828 { 9216efafc52ff9 Thierry Reding 2014-10-01 829 writeb(value, addr); 9216efafc52ff9 Thierry Reding 2014-10-01 830 } 9216efafc52ff9 Thierry Reding 2014-10-01 831 #endif 9216efafc52ff9 Thierry Reding 2014-10-01 832 9216efafc52ff9 Thierry Reding 2014-10-01 833 #ifndef iowrite16 9216efafc52ff9 Thierry Reding 2014-10-01 @834 #define iowrite16 iowrite16 9216efafc52ff9 Thierry Reding 2014-10-01 835 static inline void iowrite16(u16 value, volatile void __iomem *addr) 9216efafc52ff9 Thierry Reding 2014-10-01 836 { 9216efafc52ff9 Thierry Reding 2014-10-01 837 writew(value, addr); 9216efafc52ff9 Thierry Reding 2014-10-01 838 } 9216efafc52ff9 Thierry Reding 2014-10-01 839 #endif 9216efafc52ff9 Thierry Reding 2014-10-01 840 9216efafc52ff9 Thierry Reding 2014-10-01 841 #ifndef iowrite32 9216efafc52ff9 Thierry Reding 2014-10-01 @842 #define iowrite32 iowrite32 9216efafc52ff9 Thierry Reding 2014-10-01 843 static inline void iowrite32(u32 value, volatile void __iomem *addr) 9216efafc52ff9 Thierry Reding 2014-10-01 844 { 9216efafc52ff9 Thierry Reding 2014-10-01 845 writel(value, addr); 9216efafc52ff9 Thierry Reding 2014-10-01 846 } 9216efafc52ff9 Thierry Reding 2014-10-01 847 #endif 9216efafc52ff9 Thierry Reding 2014-10-01 848 9e44fb1816dba8 Horia Geantă 2016-05-19 849 #ifdef CONFIG_64BIT 9e44fb1816dba8 Horia Geantă 2016-05-19 850 #ifndef iowrite64 9e44fb1816dba8 Horia Geantă 2016-05-19 851 #define iowrite64 iowrite64 9e44fb1816dba8 Horia Geantă 2016-05-19 852 static inline void iowrite64(u64 value, volatile void __iomem *addr) 9e44fb1816dba8 Horia Geantă 2016-05-19 853 { 9e44fb1816dba8 Horia Geantă 2016-05-19 854 writeq(value, addr); 9e44fb1816dba8 Horia Geantă 2016-05-19 855 } 9e44fb1816dba8 Horia Geantă 2016-05-19 856 #endif 9e44fb1816dba8 Horia Geantă 2016-05-19 857 #endif /* CONFIG_64BIT */ 9e44fb1816dba8 Horia Geantă 2016-05-19 858 9216efafc52ff9 Thierry Reding 2014-10-01 859 #ifndef ioread16be 9216efafc52ff9 Thierry Reding 2014-10-01 @860 #define ioread16be ioread16be 9216efafc52ff9 Thierry Reding 2014-10-01 861 static inline u16 ioread16be(const volatile void __iomem *addr) 9216efafc52ff9 Thierry Reding 2014-10-01 862 { 7a1aedba706194 Horia Geantă 2016-05-19 863 return swab16(readw(addr)); 9216efafc52ff9 Thierry Reding 2014-10-01 864 } 9216efafc52ff9 Thierry Reding 2014-10-01 865 #endif 9216efafc52ff9 Thierry Reding 2014-10-01 866 9216efafc52ff9 Thierry Reding 2014-10-01 867 #ifndef ioread32be 9216efafc52ff9 Thierry Reding 2014-10-01 @868 #define ioread32be ioread32be 9216efafc52ff9 Thierry Reding 2014-10-01 869 static inline u32 ioread32be(const volatile void __iomem *addr) 9216efafc52ff9 Thierry Reding 2014-10-01 870 { 7a1aedba706194 Horia Geantă 2016-05-19 871 return swab32(readl(addr)); 9216efafc52ff9 Thierry Reding 2014-10-01 872 } 9216efafc52ff9 Thierry Reding 2014-10-01 873 #endif 9216efafc52ff9 Thierry Reding 2014-10-01 874 9e44fb1816dba8 Horia Geantă 2016-05-19 875 #ifdef CONFIG_64BIT 9e44fb1816dba8 Horia Geantă 2016-05-19 876 #ifndef ioread64be 9e44fb1816dba8 Horia Geantă 2016-05-19 877 #define ioread64be ioread64be 9e44fb1816dba8 Horia Geantă 2016-05-19 878 static inline u64 ioread64be(const volatile void __iomem *addr) 9e44fb1816dba8 Horia Geantă 2016-05-19 879 { 9e44fb1816dba8 Horia Geantă 2016-05-19 880 return swab64(readq(addr)); 9e44fb1816dba8 Horia Geantă 2016-05-19 881 } 9e44fb1816dba8 Horia Geantă 2016-05-19 882 #endif 9e44fb1816dba8 Horia Geantă 2016-05-19 883 #endif /* CONFIG_64BIT */ 9e44fb1816dba8 Horia Geantă 2016-05-19 884 9216efafc52ff9 Thierry Reding 2014-10-01 885 #ifndef iowrite16be 9216efafc52ff9 Thierry Reding 2014-10-01 @886 #define iowrite16be iowrite16be 9216efafc52ff9 Thierry Reding 2014-10-01 887 static inline void iowrite16be(u16 value, void volatile __iomem *addr) 9216efafc52ff9 Thierry Reding 2014-10-01 888 { 7a1aedba706194 Horia Geantă 2016-05-19 889 writew(swab16(value), addr); 9216efafc52ff9 Thierry Reding 2014-10-01 890 } 9216efafc52ff9 Thierry Reding 2014-10-01 891 #endif 9216efafc52ff9 Thierry Reding 2014-10-01 892 -- 0-DAY CI Kernel Test Service https://01.org/lkp