at v5.3 87 lines 2.2 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _KMAP_H 3#define _KMAP_H 4 5#ifdef CONFIG_MMU 6 7#define ARCH_HAS_IOREMAP_WT 8 9/* Values for nocacheflag and cmode */ 10#define IOMAP_FULL_CACHING 0 11#define IOMAP_NOCACHE_SER 1 12#define IOMAP_NOCACHE_NONSER 2 13#define IOMAP_WRITETHROUGH 3 14 15/* 16 * These functions exported by arch/m68k/mm/kmap.c. 17 * Only needed on MMU enabled systems. 18 */ 19extern void __iomem *__ioremap(unsigned long physaddr, unsigned long size, 20 int cacheflag); 21#define iounmap iounmap 22extern void iounmap(void __iomem *addr); 23extern void __iounmap(void *addr, unsigned long size); 24 25#define ioremap ioremap 26static inline void __iomem *ioremap(unsigned long physaddr, unsigned long size) 27{ 28 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER); 29} 30 31#define ioremap_nocache ioremap_nocache 32static inline void __iomem *ioremap_nocache(unsigned long physaddr, 33 unsigned long size) 34{ 35 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER); 36} 37 38#define ioremap_uc ioremap_nocache 39#define ioremap_wt ioremap_wt 40static inline void __iomem *ioremap_wt(unsigned long physaddr, 41 unsigned long size) 42{ 43 return __ioremap(physaddr, size, IOMAP_WRITETHROUGH); 44} 45 46#define ioremap_fullcache ioremap_fullcache 47static inline void __iomem *ioremap_fullcache(unsigned long physaddr, 48 unsigned long size) 49{ 50 return __ioremap(physaddr, size, IOMAP_FULL_CACHING); 51} 52 53#define memset_io memset_io 54static inline void memset_io(volatile void __iomem *addr, unsigned char val, 55 int count) 56{ 57 __builtin_memset((void __force *) addr, val, count); 58} 59 60#define memcpy_fromio memcpy_fromio 61static inline void memcpy_fromio(void *dst, const volatile void __iomem *src, 62 int count) 63{ 64 __builtin_memcpy(dst, (void __force *) src, count); 65} 66 67#define memcpy_toio memcpy_toio 68static inline void memcpy_toio(volatile void __iomem *dst, const void *src, 69 int count) 70{ 71 __builtin_memcpy((void __force *) dst, src, count); 72} 73 74#endif /* CONFIG_MMU */ 75 76#define ioport_map ioport_map 77static inline void __iomem *ioport_map(unsigned long port, unsigned int nr) 78{ 79 return (void __iomem *) port; 80} 81 82#define ioport_unmap ioport_unmap 83static inline void ioport_unmap(void __iomem *p) 84{ 85} 86 87#endif /* _KMAP_H */