hc
2023-12-09 958e46acc8e900e8569dd467c1af9b8d2d019394
kernel/include/asm-generic/iomap.h
....@@ -26,14 +26,25 @@
2626 * in the low address range. Architectures for which this is not
2727 * true can't use this generic implementation.
2828 */
29
-extern unsigned int ioread8(void __iomem *);
30
-extern unsigned int ioread16(void __iomem *);
31
-extern unsigned int ioread16be(void __iomem *);
32
-extern unsigned int ioread32(void __iomem *);
33
-extern unsigned int ioread32be(void __iomem *);
29
+extern unsigned int ioread8(const void __iomem *);
30
+extern unsigned int ioread16(const void __iomem *);
31
+extern unsigned int ioread16be(const void __iomem *);
32
+extern unsigned int ioread32(const void __iomem *);
33
+extern unsigned int ioread32be(const void __iomem *);
3434 #ifdef CONFIG_64BIT
35
-extern u64 ioread64(void __iomem *);
36
-extern u64 ioread64be(void __iomem *);
35
+extern u64 ioread64(const void __iomem *);
36
+extern u64 ioread64be(const void __iomem *);
37
+#endif
38
+
39
+#ifdef readq
40
+#define ioread64_lo_hi ioread64_lo_hi
41
+#define ioread64_hi_lo ioread64_hi_lo
42
+#define ioread64be_lo_hi ioread64be_lo_hi
43
+#define ioread64be_hi_lo ioread64be_hi_lo
44
+extern u64 ioread64_lo_hi(const void __iomem *addr);
45
+extern u64 ioread64_hi_lo(const void __iomem *addr);
46
+extern u64 ioread64be_lo_hi(const void __iomem *addr);
47
+extern u64 ioread64be_hi_lo(const void __iomem *addr);
3748 #endif
3849
3950 extern void iowrite8(u8, void __iomem *);
....@@ -44,6 +55,17 @@
4455 #ifdef CONFIG_64BIT
4556 extern void iowrite64(u64, void __iomem *);
4657 extern void iowrite64be(u64, void __iomem *);
58
+#endif
59
+
60
+#ifdef writeq
61
+#define iowrite64_lo_hi iowrite64_lo_hi
62
+#define iowrite64_hi_lo iowrite64_hi_lo
63
+#define iowrite64be_lo_hi iowrite64be_lo_hi
64
+#define iowrite64be_hi_lo iowrite64be_hi_lo
65
+extern void iowrite64_lo_hi(u64 val, void __iomem *addr);
66
+extern void iowrite64_hi_lo(u64 val, void __iomem *addr);
67
+extern void iowrite64be_lo_hi(u64 val, void __iomem *addr);
68
+extern void iowrite64be_hi_lo(u64 val, void __iomem *addr);
4769 #endif
4870
4971 /*
....@@ -57,9 +79,9 @@
5779 * memory across multiple ports, use "memcpy_toio()"
5880 * and friends.
5981 */
60
-extern void ioread8_rep(void __iomem *port, void *buf, unsigned long count);
61
-extern void ioread16_rep(void __iomem *port, void *buf, unsigned long count);
62
-extern void ioread32_rep(void __iomem *port, void *buf, unsigned long count);
82
+extern void ioread8_rep(const void __iomem *port, void *buf, unsigned long count);
83
+extern void ioread16_rep(const void __iomem *port, void *buf, unsigned long count);
84
+extern void ioread32_rep(const void __iomem *port, void *buf, unsigned long count);
6385
6486 extern void iowrite8_rep(void __iomem *port, const void *buf, unsigned long count);
6587 extern void iowrite16_rep(void __iomem *port, const void *buf, unsigned long count);
....@@ -72,11 +94,11 @@
7294 #endif
7395
7496 #ifndef ARCH_HAS_IOREMAP_WC
75
-#define ioremap_wc ioremap_nocache
97
+#define ioremap_wc ioremap
7698 #endif
7799
78100 #ifndef ARCH_HAS_IOREMAP_WT
79
-#define ioremap_wt ioremap_nocache
101
+#define ioremap_wt ioremap
80102 #endif
81103
82104 #ifdef CONFIG_PCI