Root/
1 | #include <linux/module.h> |
2 | #include <linux/types.h> |
3 | |
4 | #include <asm/io.h> |
5 | |
6 | /* |
7 | * Copy data from IO memory space to "real" memory space. |
8 | * This needs to be optimized. |
9 | */ |
10 | void memcpy_fromio(void *to, const volatile void __iomem *from, long count) |
11 | { |
12 | char *dst = to; |
13 | |
14 | while (count) { |
15 | count--; |
16 | *dst++ = readb(from++); |
17 | } |
18 | } |
19 | EXPORT_SYMBOL(memcpy_fromio); |
20 | |
21 | /* |
22 | * Copy data from "real" memory space to IO memory space. |
23 | * This needs to be optimized. |
24 | */ |
25 | void memcpy_toio(volatile void __iomem *to, const void *from, long count) |
26 | { |
27 | const char *src = from; |
28 | |
29 | while (count) { |
30 | count--; |
31 | writeb(*src++, to++); |
32 | } |
33 | } |
34 | EXPORT_SYMBOL(memcpy_toio); |
35 | |
36 | /* |
37 | * "memset" on IO memory space. |
38 | * This needs to be optimized. |
39 | */ |
40 | void memset_io(volatile void __iomem *dst, int c, long count) |
41 | { |
42 | unsigned char ch = (char)(c & 0xff); |
43 | |
44 | while (count) { |
45 | count--; |
46 | writeb(ch, dst); |
47 | dst++; |
48 | } |
49 | } |
50 | EXPORT_SYMBOL(memset_io); |
51 | |
52 | #ifdef CONFIG_IA64_GENERIC |
53 | |
54 | #undef __ia64_inb |
55 | #undef __ia64_inw |
56 | #undef __ia64_inl |
57 | #undef __ia64_outb |
58 | #undef __ia64_outw |
59 | #undef __ia64_outl |
60 | #undef __ia64_readb |
61 | #undef __ia64_readw |
62 | #undef __ia64_readl |
63 | #undef __ia64_readq |
64 | #undef __ia64_readb_relaxed |
65 | #undef __ia64_readw_relaxed |
66 | #undef __ia64_readl_relaxed |
67 | #undef __ia64_readq_relaxed |
68 | #undef __ia64_writeb |
69 | #undef __ia64_writew |
70 | #undef __ia64_writel |
71 | #undef __ia64_writeq |
72 | #undef __ia64_mmiowb |
73 | |
74 | unsigned int |
75 | __ia64_inb (unsigned long port) |
76 | { |
77 | return ___ia64_inb(port); |
78 | } |
79 | |
80 | unsigned int |
81 | __ia64_inw (unsigned long port) |
82 | { |
83 | return ___ia64_inw(port); |
84 | } |
85 | |
86 | unsigned int |
87 | __ia64_inl (unsigned long port) |
88 | { |
89 | return ___ia64_inl(port); |
90 | } |
91 | |
92 | void |
93 | __ia64_outb (unsigned char val, unsigned long port) |
94 | { |
95 | ___ia64_outb(val, port); |
96 | } |
97 | |
98 | void |
99 | __ia64_outw (unsigned short val, unsigned long port) |
100 | { |
101 | ___ia64_outw(val, port); |
102 | } |
103 | |
104 | void |
105 | __ia64_outl (unsigned int val, unsigned long port) |
106 | { |
107 | ___ia64_outl(val, port); |
108 | } |
109 | |
110 | unsigned char |
111 | __ia64_readb (void __iomem *addr) |
112 | { |
113 | return ___ia64_readb (addr); |
114 | } |
115 | |
116 | unsigned short |
117 | __ia64_readw (void __iomem *addr) |
118 | { |
119 | return ___ia64_readw (addr); |
120 | } |
121 | |
122 | unsigned int |
123 | __ia64_readl (void __iomem *addr) |
124 | { |
125 | return ___ia64_readl (addr); |
126 | } |
127 | |
128 | unsigned long |
129 | __ia64_readq (void __iomem *addr) |
130 | { |
131 | return ___ia64_readq (addr); |
132 | } |
133 | |
134 | unsigned char |
135 | __ia64_readb_relaxed (void __iomem *addr) |
136 | { |
137 | return ___ia64_readb (addr); |
138 | } |
139 | |
140 | unsigned short |
141 | __ia64_readw_relaxed (void __iomem *addr) |
142 | { |
143 | return ___ia64_readw (addr); |
144 | } |
145 | |
146 | unsigned int |
147 | __ia64_readl_relaxed (void __iomem *addr) |
148 | { |
149 | return ___ia64_readl (addr); |
150 | } |
151 | |
152 | unsigned long |
153 | __ia64_readq_relaxed (void __iomem *addr) |
154 | { |
155 | return ___ia64_readq (addr); |
156 | } |
157 | |
158 | void |
159 | __ia64_mmiowb(void) |
160 | { |
161 | ___ia64_mmiowb(); |
162 | } |
163 | |
164 | #endif /* CONFIG_IA64_GENERIC */ |
165 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9