aboutsummaryrefslogtreecommitdiffstats
path: root/arch/unicore32/mm
diff options
context:
space:
mode:
authorGuanXuetao <gxt@mprc.pku.edu.cn>2011-02-26 23:46:06 -0500
committerGuanXuetao <gxt@mprc.pku.edu.cn>2011-03-16 21:19:21 -0400
commit4fde87cb13a29c06e0b4c2cba86445492098fbc2 (patch)
treecbd99cd229d7258e846f91c3b7efe00897c5eab6 /arch/unicore32/mm
parentce443ab5fd536941da1d529ba3963324f941fc29 (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/Makefile2
-rw-r--r--arch/unicore32/mm/iomap.c56
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
5obj-y := extable.o fault.o init.o pgd.o mmu.o 5obj-y := extable.o fault.o init.o pgd.o mmu.o
6obj-y += iomap.o flush.o ioremap.o 6obj-y += flush.o ioremap.o
7 7
8obj-$(CONFIG_SWIOTLB) += dma-swiotlb.o 8obj-$(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
21void __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}
27EXPORT_SYMBOL(ioport_map);
28
29void ioport_unmap(void __iomem *addr)
30{
31}
32EXPORT_SYMBOL(ioport_unmap);
33#endif
34
35#ifdef CONFIG_PCI
36void __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}
55EXPORT_SYMBOL(pci_iomap);
56#endif