Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37abcdb9 authored by Russell King's avatar Russell King
Browse files

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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 2b2a87a1
Loading
Loading
Loading
Loading
+16 −7
Original line number Diff line number Diff line
@@ -50,6 +50,9 @@ struct l2x0_regs l2x0_saved_regs;

static bool of_init = false;

/*
 * Common code for all cache controllers.
 */
static inline void cache_wait_way(void __iomem *reg, unsigned long mask)
{
	/* 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);
}

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
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)
{
	int lockregs;
	int i;

	switch (cache_id & L2X0_CACHE_ID_PART_MASK) {
	case L2X0_CACHE_ID_PART_L310:
@@ -323,12 +337,7 @@ static void l2x0_unlock(u32 cache_id)
		break;
	}

	for (i = 0; i < lockregs; i++) {
		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);
	}
	l2c_unlock(l2x0_base, lockregs);
}

void __init l2x0_init(void __iomem *base, u32 aux_val, u32 aux_mask)