aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mvebu/coherency.c
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2013-06-20 09:45:26 +0200
committerJason Cooper <jason@lakedaemon.net>2013-06-20 12:12:48 +0000
commit1919bff0e25f5f7ce43474a3b972405f51023e99 (patch)
treeacdca5dc0f1c1fbb57276e98159b25597d1af55f /arch/arm/mach-mvebu/coherency.c
parentarm: mvebu: disable DEBUG_LL/EARLY_PRINTK in defconfig (diff)
downloadlinux-dev-1919bff0e25f5f7ce43474a3b972405f51023e99.tar.xz
linux-dev-1919bff0e25f5f7ce43474a3b972405f51023e99.zip
arm: mvebu: fix coherency_late_init() for multiplatform
As noticed by Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org>, commit 865e0527d2d7 ('arm: mvebu: avoid hardcoded virtual address in coherency code') added a postcore_initcall() to register the bus notifier that the mvebu code needs to apply correct DMA operations on its platform devices breaks the multiplatform boot on other platforms, because the bus notifier registration is unconditional. This commit fixes that by registering the bus notifier only if we have the mvebu coherency unit described in the Device Tree. The conditional used is exactly the same in which the bus_register_notifier() call was originally enclosed before 865e0527d2d7 ('arm: mvebu: avoid hardcoded virtual address in coherency code'). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reported-by: Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org> Acked-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Diffstat (limited to 'arch/arm/mach-mvebu/coherency.c')
-rw-r--r--arch/arm/mach-mvebu/coherency.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c
index 32fcf69f4202..be117591f7f2 100644
--- a/arch/arm/mach-mvebu/coherency.c
+++ b/arch/arm/mach-mvebu/coherency.c
@@ -147,8 +147,9 @@ int __init coherency_init(void)
static int __init coherency_late_init(void)
{
- bus_register_notifier(&platform_bus_type,
- &mvebu_hwcc_platform_nb);
+ if (of_find_matching_node(NULL, of_coherency_table))
+ bus_register_notifier(&platform_bus_type,
+ &mvebu_hwcc_platform_nb);
return 0;
}