Message ID | 1434456785-23696-3-git-send-email-thomas.petazzoni@free-electrons.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Thomas, On 16/06/2015 14:12, Thomas Petazzoni wrote: > From: Nadav Haklai <nadavh@marvell.com> > > This patch prepares the set_cpu_coherent() function in coherency.c to > be extended to support other SoCs than Armada XP. It will be needed on > Armada 38x to re-enable the coherency after exiting from suspend to > RAM. > > This preparation simply moves the function further down in coherency.c > so that it can use coherency_type(), and uses that function to only do > the Armada XP specific work if we are on Armada XP. > > Signed-off-by: Nadav Haklai <nadavh@marvell.com> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Thanks, Gregory > --- > arch/arm/mach-mvebu/coherency.c | 29 +++++++++++++++++------------ > 1 file changed, 17 insertions(+), 12 deletions(-) > > diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c > index e46e9ea..44eedf3 100644 > --- a/arch/arm/mach-mvebu/coherency.c > +++ b/arch/arm/mach-mvebu/coherency.c > @@ -65,18 +65,6 @@ static const struct of_device_id of_coherency_table[] = { > int ll_enable_coherency(void); > void ll_add_cpu_to_smp_group(void); > > -int set_cpu_coherent(void) > -{ > - if (!coherency_base) { > - pr_warn("Can't make current CPU cache coherent.\n"); > - pr_warn("Coherency fabric is not initialized\n"); > - return 1; > - } > - > - ll_add_cpu_to_smp_group(); > - return ll_enable_coherency(); > -} > - > static int mvebu_hwcc_notifier(struct notifier_block *nb, > unsigned long event, void *__dev) > { > @@ -206,6 +194,23 @@ static int coherency_type(void) > return type; > } > > +int set_cpu_coherent(void) > +{ > + int type = coherency_type(); > + > + if (type == COHERENCY_FABRIC_TYPE_ARMADA_370_XP) { > + if (!coherency_base) { > + pr_warn("Can't make current CPU cache coherent.\n"); > + pr_warn("Coherency fabric is not initialized\n"); > + return 1; > + } > + ll_add_cpu_to_smp_group(); > + return ll_enable_coherency(); > + } > + > + return 0; > +} > + > int coherency_available(void) > { > return coherency_type() != COHERENCY_FABRIC_TYPE_NONE; >
diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c index e46e9ea..44eedf3 100644 --- a/arch/arm/mach-mvebu/coherency.c +++ b/arch/arm/mach-mvebu/coherency.c @@ -65,18 +65,6 @@ static const struct of_device_id of_coherency_table[] = { int ll_enable_coherency(void); void ll_add_cpu_to_smp_group(void); -int set_cpu_coherent(void) -{ - if (!coherency_base) { - pr_warn("Can't make current CPU cache coherent.\n"); - pr_warn("Coherency fabric is not initialized\n"); - return 1; - } - - ll_add_cpu_to_smp_group(); - return ll_enable_coherency(); -} - static int mvebu_hwcc_notifier(struct notifier_block *nb, unsigned long event, void *__dev) { @@ -206,6 +194,23 @@ static int coherency_type(void) return type; } +int set_cpu_coherent(void) +{ + int type = coherency_type(); + + if (type == COHERENCY_FABRIC_TYPE_ARMADA_370_XP) { + if (!coherency_base) { + pr_warn("Can't make current CPU cache coherent.\n"); + pr_warn("Coherency fabric is not initialized\n"); + return 1; + } + ll_add_cpu_to_smp_group(); + return ll_enable_coherency(); + } + + return 0; +} + int coherency_available(void) { return coherency_type() != COHERENCY_FABRIC_TYPE_NONE;