diff options
author | GuanXuetao <gxt@mprc.pku.edu.cn> | 2011-02-27 07:46:06 +0300 |
---|---|---|
committer | GuanXuetao <gxt@mprc.pku.edu.cn> | 2011-03-17 04:19:21 +0300 |
commit | 4fde87cb13a29c06e0b4c2cba86445492098fbc2 (patch) | |
tree | cbd99cd229d7258e846f91c3b7efe00897c5eab6 /arch/unicore32/mm | |
parent | ce443ab5fd536941da1d529ba3963324f941fc29 (diff) | |
download | linux-4fde87cb13a29c06e0b4c2cba86445492098fbc2.tar.xz |
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 f3ff41039f51..46c166699319 100644 --- a/arch/unicore32/mm/Makefile +++ b/arch/unicore32/mm/Makefile @@ -3,7 +3,7 @@ # obj-y := extable.o fault.o init.o pgd.o mmu.o -obj-y += iomap.o flush.o ioremap.o +obj-y += flush.o ioremap.o obj-$(CONFIG_SWIOTLB) += dma-swiotlb.o diff --git a/arch/unicore32/mm/iomap.c b/arch/unicore32/mm/iomap.c deleted file mode 100644 index a7e1a3d2e069..000000000000 --- a/arch/unicore32/mm/iomap.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * linux/arch/unicore32/mm/iomap.c - * - * Code specific to PKUnity SoC and UniCore ISA - * - * Copyright (C) 2001-2010 GUAN Xue-tao - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Map IO port and PCI memory spaces so that {read,write}[bwl] can - * be used to access this memory. - */ -#include <linux/module.h> -#include <linux/pci.h> -#include <linux/ioport.h> -#include <linux/io.h> - -#ifdef __io -void __iomem *ioport_map(unsigned long port, unsigned int nr) -{ - /* we map PC lagcy 64K IO port to PCI IO space 0x80030000 */ - return (void __iomem *) (unsigned long) - io_p2v((port & 0xffff) + PKUNITY_PCILIO_BASE); -} -EXPORT_SYMBOL(ioport_map); - -void ioport_unmap(void __iomem *addr) -{ -} -EXPORT_SYMBOL(ioport_unmap); -#endif - -#ifdef CONFIG_PCI -void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) -{ - resource_size_t start = pci_resource_start(dev, bar); - resource_size_t len = pci_resource_len(dev, bar); - unsigned long flags = pci_resource_flags(dev, bar); - - if (!len || !start) - return NULL; - if (maxlen && len > maxlen) - len = maxlen; - if (flags & IORESOURCE_IO) - return ioport_map(start, len); - if (flags & IORESOURCE_MEM) { - if (flags & IORESOURCE_CACHEABLE) - return ioremap(start, len); - return ioremap_nocache(start, len); - } - return NULL; -} -EXPORT_SYMBOL(pci_iomap); -#endif |