summaryrefslogtreecommitdiff
path: root/target/linux/kirkwood/patches-3.10/0010-arm-kirkwood-move-PCIe-window-init-to-legacy-driver.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/kirkwood/patches-3.10/0010-arm-kirkwood-move-PCIe-window-init-to-legacy-driver.patch')
-rw-r--r--target/linux/kirkwood/patches-3.10/0010-arm-kirkwood-move-PCIe-window-init-to-legacy-driver.patch102
1 files changed, 102 insertions, 0 deletions
diff --git a/target/linux/kirkwood/patches-3.10/0010-arm-kirkwood-move-PCIe-window-init-to-legacy-driver.patch b/target/linux/kirkwood/patches-3.10/0010-arm-kirkwood-move-PCIe-window-init-to-legacy-driver.patch
new file mode 100644
index 0000000000..096ee6f847
--- /dev/null
+++ b/target/linux/kirkwood/patches-3.10/0010-arm-kirkwood-move-PCIe-window-init-to-legacy-driver.patch
@@ -0,0 +1,102 @@
+From 080dc44291ff143d84b63e5ff9fda963d46a7dce Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 27 Mar 2013 18:51:25 +0100
+Subject: [PATCH 10/29] arm: kirkwood: move PCIe window init to legacy driver
+
+Since we are going to enable the usage of the mvebu PCIe driver on
+Kirkwood, we don't want the PCIe windows to be unconditionally created
+by kirkwood_setup_wins(). Therefore, we move the PCIe window
+initialization into the legacy PCIe driver
+(arch/arm/mach-kirkwood/pcie.c).
+
+The platforms using the legacy driver will see their windows
+statically allocated by
+arch/arm/mach-kirkwood/pcie.c:kirkwood_pcie_init(). The platforms
+using the new driver in drivers/pci/ will see their windows
+dynamically allocated directly by the driver.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Tested-by: Andrew Lunn <andrew@lunn.ch>
+---
+ arch/arm/mach-kirkwood/common.c | 24 ------------------------
+ arch/arm/mach-kirkwood/pcie.c | 22 ++++++++++++++++++++++
+ 2 files changed, 22 insertions(+), 24 deletions(-)
+
+diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
+index f389228..41ea98d 100644
+--- a/arch/arm/mach-kirkwood/common.c
++++ b/arch/arm/mach-kirkwood/common.c
+@@ -648,30 +648,6 @@ char * __init kirkwood_id(void)
+
+ void __init kirkwood_setup_wins(void)
+ {
+- /*
+- * The PCIe windows will no longer be statically allocated
+- * here once Kirkwood is migrated to the pci-mvebu driver.
+- */
+- mvebu_mbus_add_window_remap_flags("pcie0.0",
+- KIRKWOOD_PCIE_IO_PHYS_BASE,
+- KIRKWOOD_PCIE_IO_SIZE,
+- KIRKWOOD_PCIE_IO_BUS_BASE,
+- MVEBU_MBUS_PCI_IO);
+- mvebu_mbus_add_window_remap_flags("pcie0.0",
+- KIRKWOOD_PCIE_MEM_PHYS_BASE,
+- KIRKWOOD_PCIE_MEM_SIZE,
+- MVEBU_MBUS_NO_REMAP,
+- MVEBU_MBUS_PCI_MEM);
+- mvebu_mbus_add_window_remap_flags("pcie1.0",
+- KIRKWOOD_PCIE1_IO_PHYS_BASE,
+- KIRKWOOD_PCIE1_IO_SIZE,
+- KIRKWOOD_PCIE1_IO_BUS_BASE,
+- MVEBU_MBUS_PCI_IO);
+- mvebu_mbus_add_window_remap_flags("pcie1.0",
+- KIRKWOOD_PCIE1_MEM_PHYS_BASE,
+- KIRKWOOD_PCIE1_MEM_SIZE,
+- MVEBU_MBUS_NO_REMAP,
+- MVEBU_MBUS_PCI_MEM);
+ mvebu_mbus_add_window("nand", KIRKWOOD_NAND_MEM_PHYS_BASE,
+ KIRKWOOD_NAND_MEM_SIZE);
+ mvebu_mbus_add_window("sram", KIRKWOOD_SRAM_PHYS_BASE,
+diff --git a/arch/arm/mach-kirkwood/pcie.c b/arch/arm/mach-kirkwood/pcie.c
+index 7f43e6c..ddcb09f 100644
+--- a/arch/arm/mach-kirkwood/pcie.c
++++ b/arch/arm/mach-kirkwood/pcie.c
+@@ -12,6 +12,7 @@
+ #include <linux/pci.h>
+ #include <linux/slab.h>
+ #include <linux/clk.h>
++#include <linux/mbus.h>
+ #include <video/vga.h>
+ #include <asm/irq.h>
+ #include <asm/mach/pci.h>
+@@ -253,6 +254,27 @@ static void __init add_pcie_port(int index, void __iomem *base)
+
+ void __init kirkwood_pcie_init(unsigned int portmask)
+ {
++ mvebu_mbus_add_window_remap_flags("pcie0.0",
++ KIRKWOOD_PCIE_IO_PHYS_BASE,
++ KIRKWOOD_PCIE_IO_SIZE,
++ KIRKWOOD_PCIE_IO_BUS_BASE,
++ MVEBU_MBUS_PCI_IO);
++ mvebu_mbus_add_window_remap_flags("pcie0.0",
++ KIRKWOOD_PCIE_MEM_PHYS_BASE,
++ KIRKWOOD_PCIE_MEM_SIZE,
++ MVEBU_MBUS_NO_REMAP,
++ MVEBU_MBUS_PCI_MEM);
++ mvebu_mbus_add_window_remap_flags("pcie1.0",
++ KIRKWOOD_PCIE1_IO_PHYS_BASE,
++ KIRKWOOD_PCIE1_IO_SIZE,
++ KIRKWOOD_PCIE1_IO_BUS_BASE,
++ MVEBU_MBUS_PCI_IO);
++ mvebu_mbus_add_window_remap_flags("pcie1.0",
++ KIRKWOOD_PCIE1_MEM_PHYS_BASE,
++ KIRKWOOD_PCIE1_MEM_SIZE,
++ MVEBU_MBUS_NO_REMAP,
++ MVEBU_MBUS_PCI_MEM);
++
+ vga_base = KIRKWOOD_PCIE_MEM_PHYS_BASE;
+
+ if (portmask & KW_PCIE0)
+--
+1.8.4.rc1
+