diff options
author | GuanXuetao <gxt@mprc.pku.edu.cn> | 2011-02-26 23:46:06 -0500 |
---|---|---|
committer | GuanXuetao <gxt@mprc.pku.edu.cn> | 2011-03-16 21:19:21 -0400 |
commit | 4fde87cb13a29c06e0b4c2cba86445492098fbc2 (patch) | |
tree | cbd99cd229d7258e846f91c3b7efe00897c5eab6 /arch/unicore32/mm | |
parent | ce443ab5fd536941da1d529ba3963324f941fc29 (diff) |
unicore32: replace unicore32-specific iomap functions with generic lib implementation
1. define and enable CONFIG_GENERIC_IOMAP
2. define unicore32-specific PCI_IOBASE for asm-generic/io.h
3. define HAVE_ARCH_PIO_SIZE and unicore32-specific PIO_* macros
4. remove all unicore32-specific iomap functions
Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
Reviewed-and-Acked-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/unicore32/mm')
-rw-r--r-- | arch/unicore32/mm/Makefile | 2 | ||||
-rw-r--r-- | arch/unicore32/mm/iomap.c | 56 |
2 files changed, 1 insertions, 57 deletions
diff --git a/arch/unicore32/mm/Makefile b/arch/unicore32/mm/Makefile index f3ff41039f5..46c16669931 100644 --- a/arch/unicore32/mm/Makefile +++ b/arch/unicore32/mm/Makefile | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := extable.o fault.o init.o pgd.o mmu.o | 5 | obj-y := extable.o fault.o init.o pgd.o mmu.o |
6 | obj-y += iomap.o flush.o ioremap.o | 6 | obj-y += flush.o ioremap.o |
7 | 7 | ||
8 | obj-$(CONFIG_SWIOTLB) += dma-swiotlb.o | 8 | obj-$(CONFIG_SWIOTLB) += dma-swiotlb.o |
9 | 9 | ||
diff --git a/arch/unicore32/mm/iomap.c b/arch/unicore32/mm/iomap.c deleted file mode 100644 index a7e1a3d2e06..00000000000 --- a/arch/unicore32/mm/iomap.c +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/unicore32/mm/iomap.c | ||
3 | * | ||
4 | * Code specific to PKUnity SoC and UniCore ISA | ||
5 | * | ||
6 | * Copyright (C) 2001-2010 GUAN Xue-tao | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | * | ||
12 | * Map IO port and PCI memory spaces so that {read,write}[bwl] can | ||
13 | * be used to access this memory. | ||
14 | */ | ||
15 | #include <linux/module.h> | ||
16 | #include <linux/pci.h> | ||
17 | #include <linux/ioport.h> | ||
18 | #include <linux/io.h> | ||
19 | |||
20 | #ifdef __io | ||
21 | void __iomem *ioport_map(unsigned long port, unsigned int nr) | ||
22 | { | ||
23 | /* we map PC lagcy 64K IO port to PCI IO space 0x80030000 */ | ||
24 | return (void __iomem *) (unsigned long) | ||
25 | io_p2v((port & 0xffff) + PKUNITY_PCILIO_BASE); | ||
26 | } | ||
27 | EXPORT_SYMBOL(ioport_map); | ||
28 | |||
29 | void ioport_unmap(void __iomem *addr) | ||
30 | { | ||
31 | } | ||
32 | EXPORT_SYMBOL(ioport_unmap); | ||
33 | #endif | ||
34 | |||
35 | #ifdef CONFIG_PCI | ||
36 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) | ||
37 | { | ||
38 | resource_size_t start = pci_resource_start(dev, bar); | ||
39 | resource_size_t len = pci_resource_len(dev, bar); | ||
40 | unsigned long flags = pci_resource_flags(dev, bar); | ||
41 | |||
42 | if (!len || !start) | ||
43 | return NULL; | ||
44 | if (maxlen && len > maxlen) | ||
45 | len = maxlen; | ||
46 | if (flags & IORESOURCE_IO) | ||
47 | return ioport_map(start, len); | ||
48 | if (flags & IORESOURCE_MEM) { | ||
49 | if (flags & IORESOURCE_CACHEABLE) | ||
50 | return ioremap(start, len); | ||
51 | return ioremap_nocache(start, len); | ||
52 | } | ||
53 | return NULL; | ||
54 | } | ||
55 | EXPORT_SYMBOL(pci_iomap); | ||
56 | #endif | ||