summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/mach/pci.h
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2012-03-01 04:10:58 +0400
committerRob Herring <rob.herring@calxeda.com>2012-07-25 18:26:42 +0400
commitc2794437091a4fda72c4a4f3567dd728dcc0c3c9 (patch)
tree56e4d414f5b78bdf35822b38af5be021711a0970 /arch/arm/include/asm/mach/pci.h
parent701eb2647d7986b42fa973990649a83b3e15e8eb (diff)
downloadlinux-c2794437091a4fda72c4a4f3567dd728dcc0c3c9.tar.xz
ARM: Add fixed PCI i/o mapping
This adds a fixed virtual mapping for PCI i/o addresses. The mapping is located at the last 2MB of vmalloc region (0xfee00000-0xff000000). 2MB is used to align with PMD size, but IO_SPACE_LIMIT is 1MB. The space is reserved after .map_io and can be mapped at any time later with pci_ioremap_io. Platforms which need early i/o mapping (e.g. for vga console) can call pci_map_io_early in their .map_io function. This has changed completely from the 1st implementation which only supported creating the static mapping at .map_io. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Cc: Russell King <linux@arm.linux.org.uk> Acked-by: Nicolas Pitre <nico@linaro.org>
Diffstat (limited to 'arch/arm/include/asm/mach/pci.h')
-rw-r--r--arch/arm/include/asm/mach/pci.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/include/asm/mach/pci.h b/arch/arm/include/asm/mach/pci.h
index 26c511fddf8f..df818876fa31 100644
--- a/arch/arm/include/asm/mach/pci.h
+++ b/arch/arm/include/asm/mach/pci.h
@@ -11,6 +11,7 @@
#ifndef __ASM_MACH_PCI_H
#define __ASM_MACH_PCI_H
+
struct pci_sys_data;
struct pci_ops;
struct pci_bus;
@@ -55,6 +56,15 @@ struct pci_sys_data {
void pci_common_init(struct hw_pci *);
/*
+ * Setup early fixed I/O mapping.
+ */
+#if defined(CONFIG_PCI)
+extern void pci_map_io_early(unsigned long pfn);
+#else
+static inline void pci_map_io_early(unsigned long pfn) {}
+#endif
+
+/*
* PCI controllers
*/
extern struct pci_ops iop3xx_ops;