summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mvebu
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-05-05 15:05:26 (GMT)
committerJason Cooper <jason@lakedaemon.net>2014-05-08 16:40:17 (GMT)
commit39438567179536c9f32e85d19586a11aebe1f860 (patch)
tree6c347bae9dcc0ec447551df0acddc107bdb28fbc /arch/arm/mach-mvebu
parenta58d5af7d992a5e6dd8e55b3e618bd77f0368b57 (diff)
downloadlinux-39438567179536c9f32e85d19586a11aebe1f860.tar.xz
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 9d5ccd3..d5a975b 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);