5686a1e5aa
Until now, the mvebu-mbus was guessing by itself whether hardware I/O coherency was available or not by poking into the Device Tree to see if the coherency fabric Device Tree node was present or not. However, on some upcoming SoCs, the presence or absence of the coherency fabric DT node isn't sufficient: in CONFIG_SMP, the coherency can be enabled, but not in !CONFIG_SMP. In order to clean this up, the mvebu_mbus_dt_init() function is extended to get a boolean argument telling whether coherency is enabled or not. Therefore, the logic to decide whether coherency is available or not now belongs to the core SoC code instead of the mvebu-mbus driver itself, which is much better. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Link: https://lkml.kernel.org/r/1397483228-25625-4-git-send-email-thomas.petazzoni@free-electrons.com Signed-off-by: Jason Cooper <jason@lakedaemon.net>
40 lines
914 B
C
40 lines
914 B
C
/*
|
|
* arch/arm/mach-mvebu/dove.c
|
|
*
|
|
* Marvell Dove 88AP510 System On Chip FDT Board
|
|
*
|
|
* This file is licensed under the terms of the GNU General Public
|
|
* License version 2. This program is licensed "as is" without any
|
|
* warranty of any kind, whether express or implied.
|
|
*/
|
|
|
|
#include <linux/init.h>
|
|
#include <linux/mbus.h>
|
|
#include <linux/of.h>
|
|
#include <linux/of_platform.h>
|
|
#include <asm/hardware/cache-tauros2.h>
|
|
#include <asm/mach/arch.h>
|
|
#include "common.h"
|
|
|
|
static void __init dove_init(void)
|
|
{
|
|
pr_info("Dove 88AP510 SoC\n");
|
|
|
|
#ifdef CONFIG_CACHE_TAUROS2
|
|
tauros2_init(0);
|
|
#endif
|
|
BUG_ON(mvebu_mbus_dt_init(false));
|
|
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
|
|
}
|
|
|
|
static const char * const dove_dt_compat[] = {
|
|
"marvell,dove",
|
|
NULL
|
|
};
|
|
|
|
DT_MACHINE_START(DOVE_DT, "Marvell Dove")
|
|
.init_machine = dove_init,
|
|
.restart = mvebu_restart,
|
|
.dt_compat = dove_dt_compat,
|
|
MACHINE_END
|