diff options
-rw-r--r-- | arch/arm/mach-kirkwood/board-dt.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-mvebu/board-v7.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-mvebu/dove.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-mvebu/kirkwood.c | 2 | ||||
-rw-r--r-- | drivers/bus/mvebu-mbus.c | 11 | ||||
-rw-r--r-- | include/linux/mbus.h | 2 |
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 | ||
885 | int __init mvebu_mbus_dt_init(void) | 878 | int __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); | |||
73 | int mvebu_mbus_init(const char *soc, phys_addr_t mbus_phys_base, | 73 | int 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); |
76 | int mvebu_mbus_dt_init(void); | 76 | int mvebu_mbus_dt_init(bool is_coherent); |
77 | 77 | ||
78 | #endif /* __LINUX_MBUS_H */ | 78 | #endif /* __LINUX_MBUS_H */ |