diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2014-05-05 17:05:26 +0200 |
---|---|---|
committer | Jason Cooper <jason@lakedaemon.net> | 2014-05-08 18:40:17 +0200 |
commit | 39438567179536c9f32e85d19586a11aebe1f860 (patch) | |
tree | 6c347bae9dcc0ec447551df0acddc107bdb28fbc | |
parent | ARM: mvebu: conditionalize Armada 375 SMP workaround (diff) | |
download | linux-39438567179536c9f32e85d19586a11aebe1f860.tar.xz linux-39438567179536c9f32e85d19586a11aebe1f860.zip |
ARM: mvebu: conditionalize Armada 375 coherency workaround
The Armada 375 coherency workaround only needs to be applied to the Z1
revision of the SoC. The A0 and later revisions have been fixed, and
no longer need this workaround.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Link: https://lkml.kernel.org/r/1399302326-6917-6-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
-rw-r--r-- | arch/arm/mach-mvebu/coherency.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c index 9d5ccd372712..d5a975b6a590 100644 --- a/arch/arm/mach-mvebu/coherency.c +++ b/arch/arm/mach-mvebu/coherency.c @@ -33,6 +33,7 @@ #include <asm/cacheflush.h> #include "armada-370-xp.h" #include "coherency.h" +#include "mvebu-soc-id.h" unsigned long coherency_phys_base; void __iomem *coherency_base; @@ -365,8 +366,13 @@ static int __init coherency_late_init(void) if (type == COHERENCY_FABRIC_TYPE_NONE) return 0; - if (type == COHERENCY_FABRIC_TYPE_ARMADA_375) - armada_375_coherency_init_wa(); + if (type == COHERENCY_FABRIC_TYPE_ARMADA_375) { + u32 dev, rev; + + if (mvebu_get_soc_id(&dev, &rev) == 0 && + rev == ARMADA_375_Z1_REV) + armada_375_coherency_init_wa(); + } bus_register_notifier(&platform_bus_type, &mvebu_hwcc_platform_nb); |