97 lines
3.4 KiB
Diff
97 lines
3.4 KiB
Diff
From 722ffe56a78344821877496f5bb28ca95b4cb67c Mon Sep 17 00:00:00 2001
|
|
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
Date: Wed, 15 May 2013 15:36:55 +0200
|
|
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>
|
|
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
|
|
---
|
|
arch/arm/mach-kirkwood/common.c | 24 ------------------------
|
|
arch/arm/mach-kirkwood/pcie.c | 22 ++++++++++++++++++++++
|
|
2 files changed, 22 insertions(+), 24 deletions(-)
|
|
|
|
--- 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,
|
|
--- 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 ind
|
|
|
|
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)
|