]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ARM: mvebu: make the coherency_ll.S functions work with no coherency fabric
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 13 Nov 2014 09:38:56 +0000 (10:38 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Jan 2015 18:27:47 +0000 (10:27 -0800)
commitb8f90d301eff2fcae726aa6b28fd56814de7cf3b
treeeb53e732ea3b8a62e746cd62298e3e36f4149b6d
parentffb2f7e95eea245e725d93f6d1d00d9a508083a3
ARM: mvebu: make the coherency_ll.S functions work with no coherency fabric

commit 30cdef97107370a7f63ab5d80fd2de30540750c8 upstream.

The ll_add_cpu_to_smp_group(), ll_enable_coherency() and
ll_disable_coherency() are used on Armada XP to control the coherency
fabric. However, they make the assumption that the coherency fabric is
always available, which is currently a correct assumption but will no
longer be true with a followup commit that disables the usage of the
coherency fabric when the conditions are not met to use it.

Therefore, this commit modifies those functions so that they check the
return value of ll_get_coherency_base(), and if the return value is 0,
they simply return without configuring anything in the coherency
fabric.

The ll_get_coherency_base() function is also modified to properly
return 0 when the function is called with the MMU disabled. In this
case, it normally returns the physical address of the coherency
fabric, but we now check if the virtual address is 0, and if that's
case, return a physical address of 0 to indicate that the coherency
fabric is not enabled.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Link: https://lkml.kernel.org/r/1415871540-20302-2-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm/mach-mvebu/coherency_ll.S