[PATCH v3 30/30] ARM: orion5x: use fixed PCI i/o mapping
From: nico@fluxnic.net (Nicolas Pitre)
Date: 2012-03-05 20:13:53
On Thu, 1 Mar 2012, Rob Herring wrote:
From: Rob Herring <redacted> orion5x i/o handling must have been broken as it had no __io() translation. It may actually work now. Signed-off-by: Rob Herring <redacted> Cc: Lennert Buytenhek <kernel@wantstofly.org> Cc: Nicolas Pitre <nico@fluxnic.net>
Acked-by: Nicolas Pitre <redacted>
quoted hunk ↗ jump to hunk
--- arch/arm/mach-orion5x/common.c | 16 ++++++---------- 1 files changed, 6 insertions(+), 10 deletions(-)diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index 0e28bae..9bab4cb 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c@@ -24,6 +24,7 @@ #include <asm/timex.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> +#include <asm/mach/pci.h> #include <asm/mach/time.h> #include <mach/bridge-regs.h> #include <mach/hardware.h>@@ -44,16 +45,6 @@ static struct map_desc orion5x_io_desc[] __initdata = { .length = ORION5X_REGS_SIZE, .type = MT_DEVICE, }, { - .virtual = ORION5X_PCIE_IO_VIRT_BASE, - .pfn = __phys_to_pfn(ORION5X_PCIE_IO_PHYS_BASE), - .length = ORION5X_PCIE_IO_SIZE, - .type = MT_DEVICE, - }, { - .virtual = ORION5X_PCI_IO_VIRT_BASE, - .pfn = __phys_to_pfn(ORION5X_PCI_IO_PHYS_BASE), - .length = ORION5X_PCI_IO_SIZE, - .type = MT_DEVICE, - }, { .virtual = ORION5X_PCIE_WA_VIRT_BASE, .pfn = __phys_to_pfn(ORION5X_PCIE_WA_PHYS_BASE), .length = ORION5X_PCIE_WA_SIZE,@@ -63,6 +54,11 @@ static struct map_desc orion5x_io_desc[] __initdata = { void __init orion5x_map_io(void) { + unsigned long pci_io_pfn[] = { + __phys_to_pfn(ORION5X_PCI_IO_PHYS_BASE), + __phys_to_pfn(ORION5X_PCIE_IO_PHYS_BASE), + }; + pci_map_io_pfn(pci_io_pfn, ARRAY_SIZE(pci_io_pfn)); iotable_init(orion5x_io_desc, ARRAY_SIZE(orion5x_io_desc)); }-- 1.7.5.4