diff options
author | Gregory CLEMENT <gregory.clement@free-electrons.com> | 2014-04-14 17:10:08 +0200 |
---|---|---|
committer | Jason Cooper <jason@lakedaemon.net> | 2014-05-08 16:18:54 +0000 |
commit | 2e8a5942f8751c03fdd50228a02909654d13f01d (patch) | |
tree | d69f5a3b881817c12064a52c11b9d39426d9f233 /arch/arm/mach-mvebu/coherency.c | |
parent | 952f4ca79b4ec7114291aa711add1b36c6ba7515 (diff) | |
download | linux-stable-2e8a5942f8751c03fdd50228a02909654d13f01d.tar.gz linux-stable-2e8a5942f8751c03fdd50228a02909654d13f01d.tar.bz2 linux-stable-2e8a5942f8751c03fdd50228a02909654d13f01d.zip |
ARM: mvebu: Split low level functions to manipulate HW coherency
Actually enabling coherency and adding a CPU on a SMP group are two
different operations which can be done separately. This patch splits
this in two functions.
Moreover as they use common pattern, this patch also creates local low
level functions (ll_get_coherency_base and ll_get_cpuid) to be used by
the exposed functions (ll_add_cpu_to_smp_group and
ll_enable_coherency)
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Link: https://lkml.kernel.org/r/1397488214-20685-6-git-send-email-gregory.clement@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Diffstat (limited to 'arch/arm/mach-mvebu/coherency.c')
-rw-r--r-- | arch/arm/mach-mvebu/coherency.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c index 944372a18ed6..9d5ccd372712 100644 --- a/arch/arm/mach-mvebu/coherency.c +++ b/arch/arm/mach-mvebu/coherency.c @@ -60,8 +60,9 @@ static struct of_device_id of_coherency_table[] = { { /* end of list */ }, }; -/* Function defined in coherency_ll.S */ -int ll_set_cpu_coherent(void); +/* Functions defined in coherency_ll.S */ +int ll_enable_coherency(void); +void ll_add_cpu_to_smp_group(void); int set_cpu_coherent(void) { @@ -71,7 +72,8 @@ int set_cpu_coherent(void) return 1; } - return ll_set_cpu_coherent(); + ll_add_cpu_to_smp_group(); + return ll_enable_coherency(); } /* |