linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Guan Xuetao <epip@hera.kernel.org>
To: arnd@arndb.de
Cc: GuanXuetao <gxt@mprc.pku.edu.cn>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	greg@kroah.com
Subject: [PATCH 17/17] unicore32: replace unicore32-specific iomap functions with generic lib implementation
Date: Sun, 27 Feb 2011 15:59:45 +0000	[thread overview]
Message-ID: <80a44ac4ac769b464094511bb66732d0d1e7d6d9.1298821856.git.epip@hera.kernel.org> (raw)
In-Reply-To: <cover.1298821856.git.epip@hera.kernel.org>
In-Reply-To: <cover.1298821856.git.epip@hera.kernel.org>

From: GuanXuetao <gxt@mprc.pku.edu.cn>

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>
---
 arch/unicore32/Kconfig          |    3 ++
 arch/unicore32/include/asm/io.h |    9 ++++--
 arch/unicore32/mm/Makefile      |    2 +-
 arch/unicore32/mm/iomap.c       |   56 ---------------------------------------
 4 files changed, 10 insertions(+), 60 deletions(-)
 delete mode 100644 arch/unicore32/mm/iomap.c

diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig
index 7f65018..4a36db4 100644
--- a/arch/unicore32/Kconfig
+++ b/arch/unicore32/Kconfig
@@ -30,6 +30,9 @@ config GENERIC_CLOCKEVENTS
 config GENERIC_CSUM
 	def_bool y
 
+config GENERIC_IOMAP
+	def_bool y
+
 config NO_IOPORT
 	bool
 
diff --git a/arch/unicore32/include/asm/io.h b/arch/unicore32/include/asm/io.h
index d73457c..2483fcb 100644
--- a/arch/unicore32/include/asm/io.h
+++ b/arch/unicore32/include/asm/io.h
@@ -18,6 +18,7 @@
 #include <asm/memory.h>
 #include <asm/system.h>
 
+#define PCI_IOBASE	io_p2v(PKUNITY_PCILIO_BASE)
 #include <asm-generic/io.h>
 
 /*
@@ -38,9 +39,6 @@ extern void __uc32_iounmap(volatile void __iomem *addr);
 #define ioremap_cached(cookie, size)	__uc32_ioremap_cached(cookie, size)
 #define iounmap(cookie)			__uc32_iounmap(cookie)
 
-extern void __iomem *ioport_map(unsigned long port, unsigned int nr);
-extern void ioport_unmap(void __iomem *addr);
-
 /*
  * Convert a physical pointer to a virtual kernel pointer for /dev/mem
  * access
@@ -48,5 +46,10 @@ extern void ioport_unmap(void __iomem *addr);
 #undef xlate_dev_mem_ptr
 #define xlate_dev_mem_ptr(p)	__va(p)
 
+#define HAVE_ARCH_PIO_SIZE
+#define PIO_OFFSET		(unsigned int)(PCI_IOBASE)
+#define PIO_MASK		(unsigned int)(IO_SPACE_LIMIT)
+#define PIO_RESERVED		(PIO_OFFSET + PIO_MASK + 1)
+
 #endif	/* __KERNEL__ */
 #endif	/* __UNICORE_IO_H__ */
diff --git a/arch/unicore32/mm/Makefile b/arch/unicore32/mm/Makefile
index f3ff410..46c1666 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 a7e1a3d..0000000
--- 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
-- 
1.7.4.1

  parent reply	other threads:[~2011-02-27 16:02 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-27 15:59 [PATCH 00/17] unicore32: resend patches after machine related files Guan Xuetao
2011-02-27 15:59 ` [PATCH 01/17] unicore32 machine related files: core files Guan Xuetao
2011-02-28 15:14   ` Arnd Bergmann
2011-02-28 15:14     ` Arnd Bergmann
2011-02-27 15:59 ` [PATCH 02/17] unicore32 machine related files: hardware registers Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 03/17] unicore32 machine related files: pci bus handling Guan Xuetao
2011-02-27 15:59 ` [PATCH 04/17] unicore32 machine related files: ps2 driver Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 05/17] unicore32: ADD MAINTAINER for unicore32 architecture Guan Xuetao
2011-02-27 15:59 ` [PATCH 06/17] unicore32 time.c: change calculate method for clock_event_device Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 07/17] unicore32: remove unused lines in arch/unicore32/include/asm/irq.h Guan Xuetao
2011-02-27 15:59 ` [PATCH 08/17] unicore32: modify function names and parameters for irq_chips Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 09/17] unicore32: rename PKUNITY_IOSPACE_BASE to PKUNITY_MMIO_BASE Guan Xuetao
2011-02-27 15:59 ` [PATCH 10/17] unicore32 i8042: adjust io funcs of i8042-unicore32io.h Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 11/17] unicore32 upgrade to v2.6.38-rc5: add one more paramter for pte_alloc_map call Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 12/17] unicore32 i8042 upgrade and bugfix: adjust resource request region type Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 13/17] unicore32 io: redefine __REG(x) and re-use readl/writel funcs Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-28 15:17   ` Arnd Bergmann
2011-03-04  8:00     ` Guan Xuetao
2011-03-04  9:49       ` Arnd Bergmann
2011-02-27 15:59 ` [PATCH 14/17] unicore32 machine related files: add i2c bus drivers for pkunity-v3 soc Guan Xuetao
2011-02-28 15:21   ` Arnd Bergmann
2011-02-27 15:59 ` [PATCH 15/17] unicore32 machine related: add frame buffer driver " Guan Xuetao
2011-02-28 15:18   ` Arnd Bergmann
2011-02-28 15:18     ` Arnd Bergmann
2011-02-27 15:59 ` [PATCH 16/17] unicore32: add (void __iomem *) to io_p2v macro Guan Xuetao
2011-02-28 15:35   ` Arnd Bergmann
2011-03-04 10:12     ` Guan Xuetao
2011-03-04 11:52       ` Arnd Bergmann
2011-02-27 15:59 ` Guan Xuetao [this message]
2011-02-28 15:20   ` [PATCH 17/17] unicore32: replace unicore32-specific iomap functions with generic lib implementation Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=80a44ac4ac769b464094511bb66732d0d1e7d6d9.1298821856.git.epip@hera.kernel.org \
    --to=epip@hera.kernel.org \
    --cc=arnd@arndb.de \
    --cc=greg@kroah.com \
    --cc=gxt@mprc.pku.edu.cn \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).