diff options
author | Logan Gunthorpe <logang@deltatee.com> | 2018-03-27 19:08:29 -0400 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2018-04-05 00:59:26 -0400 |
commit | 07c3d9eaa4be3a000e2b9386cf678ee78f7f7abb (patch) | |
tree | f931219a200cca9e0448fb648b4ea57026d0b4c3 | |
parent | ef237039c5c86b6587ee1fd88857a24fa5978474 (diff) |
powerpc: iomap.c: introduce io{read|write}64_{lo_hi|hi_lo}
These functions will be introduced into the generic iomap.c so they
can deal with PIO accesses in hi-lo/lo-hi variants. Thus, the powerpc
version of iomap.c will need to provide the same functions even
though, in this arch, they are identical to the regular
io{read|write}64 functions.
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Tested-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r-- | arch/powerpc/kernel/iomap.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/iomap.c b/arch/powerpc/kernel/iomap.c index aab456ed2a00..5ac84efc6ede 100644 --- a/arch/powerpc/kernel/iomap.c +++ b/arch/powerpc/kernel/iomap.c | |||
@@ -45,12 +45,32 @@ u64 ioread64(void __iomem *addr) | |||
45 | { | 45 | { |
46 | return readq(addr); | 46 | return readq(addr); |
47 | } | 47 | } |
48 | u64 ioread64_lo_hi(void __iomem *addr) | ||
49 | { | ||
50 | return readq(addr); | ||
51 | } | ||
52 | u64 ioread64_hi_lo(void __iomem *addr) | ||
53 | { | ||
54 | return readq(addr); | ||
55 | } | ||
48 | u64 ioread64be(void __iomem *addr) | 56 | u64 ioread64be(void __iomem *addr) |
49 | { | 57 | { |
50 | return readq_be(addr); | 58 | return readq_be(addr); |
51 | } | 59 | } |
60 | u64 ioread64be_lo_hi(void __iomem *addr) | ||
61 | { | ||
62 | return readq_be(addr); | ||
63 | } | ||
64 | u64 ioread64be_hi_lo(void __iomem *addr) | ||
65 | { | ||
66 | return readq_be(addr); | ||
67 | } | ||
52 | EXPORT_SYMBOL(ioread64); | 68 | EXPORT_SYMBOL(ioread64); |
69 | EXPORT_SYMBOL(ioread64_lo_hi); | ||
70 | EXPORT_SYMBOL(ioread64_hi_lo); | ||
53 | EXPORT_SYMBOL(ioread64be); | 71 | EXPORT_SYMBOL(ioread64be); |
72 | EXPORT_SYMBOL(ioread64be_lo_hi); | ||
73 | EXPORT_SYMBOL(ioread64be_hi_lo); | ||
54 | #endif /* __powerpc64__ */ | 74 | #endif /* __powerpc64__ */ |
55 | 75 | ||
56 | void iowrite8(u8 val, void __iomem *addr) | 76 | void iowrite8(u8 val, void __iomem *addr) |
@@ -83,12 +103,32 @@ void iowrite64(u64 val, void __iomem *addr) | |||
83 | { | 103 | { |
84 | writeq(val, addr); | 104 | writeq(val, addr); |
85 | } | 105 | } |
106 | void iowrite64_lo_hi(u64 val, void __iomem *addr) | ||
107 | { | ||
108 | writeq(val, addr); | ||
109 | } | ||
110 | void iowrite64_hi_lo(u64 val, void __iomem *addr) | ||
111 | { | ||
112 | writeq(val, addr); | ||
113 | } | ||
86 | void iowrite64be(u64 val, void __iomem *addr) | 114 | void iowrite64be(u64 val, void __iomem *addr) |
87 | { | 115 | { |
88 | writeq_be(val, addr); | 116 | writeq_be(val, addr); |
89 | } | 117 | } |
118 | void iowrite64be_lo_hi(u64 val, void __iomem *addr) | ||
119 | { | ||
120 | writeq_be(val, addr); | ||
121 | } | ||
122 | void iowrite64be_hi_lo(u64 val, void __iomem *addr) | ||
123 | { | ||
124 | writeq_be(val, addr); | ||
125 | } | ||
90 | EXPORT_SYMBOL(iowrite64); | 126 | EXPORT_SYMBOL(iowrite64); |
127 | EXPORT_SYMBOL(iowrite64_lo_hi); | ||
128 | EXPORT_SYMBOL(iowrite64_hi_lo); | ||
91 | EXPORT_SYMBOL(iowrite64be); | 129 | EXPORT_SYMBOL(iowrite64be); |
130 | EXPORT_SYMBOL(iowrite64be_lo_hi); | ||
131 | EXPORT_SYMBOL(iowrite64be_hi_lo); | ||
92 | #endif /* __powerpc64__ */ | 132 | #endif /* __powerpc64__ */ |
93 | 133 | ||
94 | /* | 134 | /* |