Commit 1919bff0 authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by Jason Cooper

arm: mvebu: fix coherency_late_init() for multiplatform

As noticed by Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org>, commit
865e0527 ('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 865e0527 ('arm: mvebu: avoid hardcoded
virtual address in coherency code').
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reported-by: default avatarArnaud Patard (Rtp) <arnaud.patard@rtp-net.org>
Acked-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
parent 5fb2038d
......@@ -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;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment