Commit faf9b2e7 authored by Russell King's avatar Russell King

ARM: l2c: simplify l2x0 unlocking code

The l2x0 unlocking code is only called from l2x0_enable() now, so move
the logic entirely into that function and simplify it.
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 09a5d180
...@@ -352,30 +352,21 @@ static void l2x0_disable(void) ...@@ -352,30 +352,21 @@ static void l2x0_disable(void)
raw_spin_unlock_irqrestore(&l2x0_lock, flags); raw_spin_unlock_irqrestore(&l2x0_lock, flags);
} }
static void l2x0_unlock(u32 cache_id) static void l2x0_enable(void __iomem *base, u32 aux, unsigned num_lock)
{ {
int lockregs; unsigned id;
switch (cache_id & L2X0_CACHE_ID_PART_MASK) { id = readl_relaxed(base + L2X0_CACHE_ID) & L2X0_CACHE_ID_PART_MASK;
case L2X0_CACHE_ID_PART_L310: if (id == L2X0_CACHE_ID_PART_L310)
lockregs = 8; num_lock = 8;
break; else
default: num_lock = 1;
/* L210 and unknown types */
lockregs = 1;
break;
}
l2c_unlock(l2x0_base, lockregs);
}
static void l2x0_enable(void __iomem *base, u32 aux, unsigned num_lock)
{
/* l2x0 controller is disabled */ /* l2x0 controller is disabled */
writel_relaxed(aux, base + L2X0_AUX_CTRL); writel_relaxed(aux, base + L2X0_AUX_CTRL);
/* Make sure that I&D is not locked down when starting */ /* Make sure that I&D is not locked down when starting */
l2x0_unlock(readl_relaxed(base + L2X0_CACHE_ID)); l2c_unlock(base, num_lock);
l2x0_inv_all(); l2x0_inv_all();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment