ARM: 8032/1: bL_switcher: fix validation check before its activation
authorNicolas Pitre <nicolas.pitre@linaro.org>
Mon, 21 Apr 2014 23:25:35 +0000 (00:25 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 22 Apr 2014 21:23:59 +0000 (22:23 +0100)
commit4530e4b6a450af14973c2b0703edfb02d66cbd41
tree20ad0784be6feed9e2869a0961e468d82bfe333c
parent56b700fd6f1e49149880fb1b6ffee0dca5be45fb
ARM: 8032/1: bL_switcher: fix validation check before its activation

The switcher should not depend on MAX_CLUSTER to determine ifit should
be activated or not. In a multiplatform kernel binary it is possible to
have dual-cluster and quad-cluster platforms configured in. In that case
MAX_CLUSTER which is a build time limit should be 4 and that shouldn't
prevent the switcher from working if the kernel is booted on a b.L
dual-cluster system.

In bL_switcher_halve_cpus() we already have a runtime validation check
to make sure we're dealing with only two clusters, so booting on a quad
cluster system will be caught and switcher activation aborted.

However, the b.L switcher must ensure the MCPM layer is initialized on
the booted hardware before doing anything.  The mcpm_is_available()
function is added to that effect.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Tested-by: Abhilash Kesavan <kesavan.abhilash@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/common/bL_switcher.c
arch/arm/common/mcpm_entry.c
arch/arm/include/asm/mcpm.h