aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-kirkwood/board-dt.c2
-rw-r--r--arch/arm/mach-mvebu/board-v7.c2
-rw-r--r--arch/arm/mach-mvebu/dove.c2
-rw-r--r--arch/arm/mach-mvebu/kirkwood.c2
-rw-r--r--drivers/bus/mvebu-mbus.c11
-rw-r--r--include/linux/mbus.h2
6 files changed, 8 insertions, 13 deletions
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c
index 2801da49e2a3..ff18ff20f71f 100644
--- a/arch/arm/mach-kirkwood/board-dt.c
+++ b/arch/arm/mach-kirkwood/board-dt.c
@@ -195,7 +195,7 @@ static void __init kirkwood_dt_init(void)
195{ 195{
196 kirkwood_disable_mbus_error_propagation(); 196 kirkwood_disable_mbus_error_propagation();
197 197
198 BUG_ON(mvebu_mbus_dt_init()); 198 BUG_ON(mvebu_mbus_dt_init(false));
199 199
200#ifdef CONFIG_CACHE_FEROCEON_L2 200#ifdef CONFIG_CACHE_FEROCEON_L2
201 feroceon_of_init(); 201 feroceon_of_init();
diff --git a/arch/arm/mach-mvebu/board-v7.c b/arch/arm/mach-mvebu/board-v7.c
index 333fca8fdc41..1730e0cdb6f6 100644
--- a/arch/arm/mach-mvebu/board-v7.c
+++ b/arch/arm/mach-mvebu/board-v7.c
@@ -58,7 +58,7 @@ static void __init mvebu_timer_and_clk_init(void)
58 of_clk_init(NULL); 58 of_clk_init(NULL);
59 clocksource_of_init(); 59 clocksource_of_init();
60 coherency_init(); 60 coherency_init();
61 BUG_ON(mvebu_mbus_dt_init()); 61 BUG_ON(mvebu_mbus_dt_init(coherency_available()));
62#ifdef CONFIG_CACHE_L2X0 62#ifdef CONFIG_CACHE_L2X0
63 l2x0_of_init(0, ~0UL); 63 l2x0_of_init(0, ~0UL);
64#endif 64#endif
diff --git a/arch/arm/mach-mvebu/dove.c b/arch/arm/mach-mvebu/dove.c
index 5e5a43624237..b50464ec1130 100644
--- a/arch/arm/mach-mvebu/dove.c
+++ b/arch/arm/mach-mvebu/dove.c
@@ -23,7 +23,7 @@ static void __init dove_init(void)
23#ifdef CONFIG_CACHE_TAUROS2 23#ifdef CONFIG_CACHE_TAUROS2
24 tauros2_init(0); 24 tauros2_init(0);
25#endif 25#endif
26 BUG_ON(mvebu_mbus_dt_init()); 26 BUG_ON(mvebu_mbus_dt_init(false));
27 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 27 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
28} 28}
29 29
diff --git a/arch/arm/mach-mvebu/kirkwood.c b/arch/arm/mach-mvebu/kirkwood.c
index 120207fc36f1..a77e0bae9c55 100644
--- a/arch/arm/mach-mvebu/kirkwood.c
+++ b/arch/arm/mach-mvebu/kirkwood.c
@@ -169,7 +169,7 @@ static void __init kirkwood_dt_init(void)
169{ 169{
170 kirkwood_disable_mbus_error_propagation(); 170 kirkwood_disable_mbus_error_propagation();
171 171
172 BUG_ON(mvebu_mbus_dt_init()); 172 BUG_ON(mvebu_mbus_dt_init(false));
173 173
174#ifdef CONFIG_CACHE_FEROCEON_L2 174#ifdef CONFIG_CACHE_FEROCEON_L2
175 feroceon_of_init(); 175 feroceon_of_init();
diff --git a/drivers/bus/mvebu-mbus.c b/drivers/bus/mvebu-mbus.c
index 293e2e0a0a87..ff02fc90fc21 100644
--- a/drivers/bus/mvebu-mbus.c
+++ b/drivers/bus/mvebu-mbus.c
@@ -694,7 +694,6 @@ static int __init mvebu_mbus_common_init(struct mvebu_mbus_state *mbus,
694 phys_addr_t sdramwins_phys_base, 694 phys_addr_t sdramwins_phys_base,
695 size_t sdramwins_size) 695 size_t sdramwins_size)
696{ 696{
697 struct device_node *np;
698 int win; 697 int win;
699 698
700 mbus->mbuswins_base = ioremap(mbuswins_phys_base, mbuswins_size); 699 mbus->mbuswins_base = ioremap(mbuswins_phys_base, mbuswins_size);
@@ -707,12 +706,6 @@ static int __init mvebu_mbus_common_init(struct mvebu_mbus_state *mbus,
707 return -ENOMEM; 706 return -ENOMEM;
708 } 707 }
709 708
710 np = of_find_compatible_node(NULL, NULL, "marvell,coherency-fabric");
711 if (np) {
712 mbus->hw_io_coherency = 1;
713 of_node_put(np);
714 }
715
716 for (win = 0; win < mbus->soc->num_wins; win++) 709 for (win = 0; win < mbus->soc->num_wins; win++)
717 mvebu_mbus_disable_window(mbus, win); 710 mvebu_mbus_disable_window(mbus, win);
718 711
@@ -882,7 +875,7 @@ static void __init mvebu_mbus_get_pcie_resources(struct device_node *np,
882 } 875 }
883} 876}
884 877
885int __init mvebu_mbus_dt_init(void) 878int __init mvebu_mbus_dt_init(bool is_coherent)
886{ 879{
887 struct resource mbuswins_res, sdramwins_res; 880 struct resource mbuswins_res, sdramwins_res;
888 struct device_node *np, *controller; 881 struct device_node *np, *controller;
@@ -920,6 +913,8 @@ int __init mvebu_mbus_dt_init(void)
920 return -EINVAL; 913 return -EINVAL;
921 } 914 }
922 915
916 mbus_state.hw_io_coherency = is_coherent;
917
923 /* Get optional pcie-{mem,io}-aperture properties */ 918 /* Get optional pcie-{mem,io}-aperture properties */
924 mvebu_mbus_get_pcie_resources(np, &mbus_state.pcie_mem_aperture, 919 mvebu_mbus_get_pcie_resources(np, &mbus_state.pcie_mem_aperture,
925 &mbus_state.pcie_io_aperture); 920 &mbus_state.pcie_io_aperture);
diff --git a/include/linux/mbus.h b/include/linux/mbus.h
index 345b8c53b897..550c88fb0267 100644
--- a/include/linux/mbus.h
+++ b/include/linux/mbus.h
@@ -73,6 +73,6 @@ int mvebu_mbus_del_window(phys_addr_t base, size_t size);
73int mvebu_mbus_init(const char *soc, phys_addr_t mbus_phys_base, 73int mvebu_mbus_init(const char *soc, phys_addr_t mbus_phys_base,
74 size_t mbus_size, phys_addr_t sdram_phys_base, 74 size_t mbus_size, phys_addr_t sdram_phys_base,
75 size_t sdram_size); 75 size_t sdram_size);
76int mvebu_mbus_dt_init(void); 76int mvebu_mbus_dt_init(bool is_coherent);
77 77
78#endif /* __LINUX_MBUS_H */ 78#endif /* __LINUX_MBUS_H */