Linux Audio

Check our new training course

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