summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mvebu
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-05-05 17:05:26 +0200
committerJason Cooper <jason@lakedaemon.net>2014-05-08 18:40:17 +0200
commit39438567179536c9f32e85d19586a11aebe1f860 (patch)
tree6c347bae9dcc0ec447551df0acddc107bdb28fbc /arch/arm/mach-mvebu
parentARM: mvebu: conditionalize Armada 375 SMP workaround (diff)
downloadlinux-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>
Diffstat (limited to 'arch/arm/mach-mvebu')
-rw-r--r--arch/arm/mach-mvebu/coherency.c10
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);