Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[linux/fpc-iii.git] / arch / arm64 / kernel / io.c
blob7d37ead4d1994fa877dcf798148875775b25ded9
1 /*
2 * Based on arch/arm/kernel/io.c
4 * Copyright (C) 2012 ARM Ltd.
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #include <linux/export.h>
20 #include <linux/types.h>
21 #include <linux/io.h>
24 * Copy data from IO memory space to "real" memory space.
26 void __memcpy_fromio(void *to, const volatile void __iomem *from, size_t count)
28 unsigned char *t = to;
29 while (count) {
30 count--;
31 *t = readb(from);
32 t++;
33 from++;
36 EXPORT_SYMBOL(__memcpy_fromio);
39 * Copy data from "real" memory space to IO memory space.
41 void __memcpy_toio(volatile void __iomem *to, const void *from, size_t count)
43 const unsigned char *f = from;
44 while (count) {
45 count--;
46 writeb(*f, to);
47 f++;
48 to++;
51 EXPORT_SYMBOL(__memcpy_toio);
54 * "memset" on IO memory space.
56 void __memset_io(volatile void __iomem *dst, int c, size_t count)
58 while (count) {
59 count--;
60 writeb(c, dst);
61 dst++;
64 EXPORT_SYMBOL(__memset_io);