ARM: l2c: split out cache unlock code
Split the cache unlock code out of l2x0_unlock(). We want to be able to re-use this functionality later. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
2b2a87a12d
commit
37abcdb919
|
@ -50,6 +50,9 @@ struct l2x0_regs l2x0_saved_regs;
|
||||||
|
|
||||||
static bool of_init = false;
|
static bool of_init = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Common code for all cache controllers.
|
||||||
|
*/
|
||||||
static inline void cache_wait_way(void __iomem *reg, unsigned long mask)
|
static inline void cache_wait_way(void __iomem *reg, unsigned long mask)
|
||||||
{
|
{
|
||||||
/* wait for cache operation by line or way to complete */
|
/* wait for cache operation by line or way to complete */
|
||||||
|
@ -67,6 +70,18 @@ static inline void l2c_set_debug(void __iomem *base, unsigned long val)
|
||||||
outer_cache.set_debug(val);
|
outer_cache.set_debug(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void l2c_unlock(void __iomem *base, unsigned num)
|
||||||
|
{
|
||||||
|
unsigned i;
|
||||||
|
|
||||||
|
for (i = 0; i < num; i++) {
|
||||||
|
writel_relaxed(0, base + L2X0_LOCKDOWN_WAY_D_BASE +
|
||||||
|
i * L2X0_LOCKDOWN_STRIDE);
|
||||||
|
writel_relaxed(0, base + L2X0_LOCKDOWN_WAY_I_BASE +
|
||||||
|
i * L2X0_LOCKDOWN_STRIDE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CACHE_PL310
|
#ifdef CONFIG_CACHE_PL310
|
||||||
static inline void cache_wait(void __iomem *reg, unsigned long mask)
|
static inline void cache_wait(void __iomem *reg, unsigned long mask)
|
||||||
{
|
{
|
||||||
|
@ -308,7 +323,6 @@ static void l2x0_disable(void)
|
||||||
static void l2x0_unlock(u32 cache_id)
|
static void l2x0_unlock(u32 cache_id)
|
||||||
{
|
{
|
||||||
int lockregs;
|
int lockregs;
|
||||||
int i;
|
|
||||||
|
|
||||||
switch (cache_id & L2X0_CACHE_ID_PART_MASK) {
|
switch (cache_id & L2X0_CACHE_ID_PART_MASK) {
|
||||||
case L2X0_CACHE_ID_PART_L310:
|
case L2X0_CACHE_ID_PART_L310:
|
||||||
|
@ -323,12 +337,7 @@ static void l2x0_unlock(u32 cache_id)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < lockregs; i++) {
|
l2c_unlock(l2x0_base, lockregs);
|
||||||
writel_relaxed(0x0, l2x0_base + L2X0_LOCKDOWN_WAY_D_BASE +
|
|
||||||
i * L2X0_LOCKDOWN_STRIDE);
|
|
||||||
writel_relaxed(0x0, l2x0_base + L2X0_LOCKDOWN_WAY_I_BASE +
|
|
||||||
i * L2X0_LOCKDOWN_STRIDE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
|
void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)
|
||||||
|
|
Loading…
Reference in New Issue