ARM: l2c: only write the auxiliary control register if required
Avoid unnecessary writes to the auxiliary control register if the
register already contains the required value. This allows us to
avoid invoking the platforms secure monitor code unnecessarily.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
index fc60955..1c947b4c 100644
--- a/arch/arm/mm/cache-l2x0.c
+++ b/arch/arm/mm/cache-l2x0.c
@@ -92,7 +92,9 @@
{
unsigned long flags;
- writel_relaxed(aux, base + L2X0_AUX_CTRL);
+ /* Only write the aux register if it needs changing */
+ if (readl_relaxed(base + L2X0_AUX_CTRL) != aux)
+ writel_relaxed(aux, base + L2X0_AUX_CTRL);
l2c_unlock(base, num_lock);