Krait CPUs have a handful of L2 cache controller registers that
live behind a cp15 based indirection register. First you program
the indirection register (l2cpselr) to point the L2 'window'
register (l2cpdr) at what you want to read/write. Then you
read/write the 'window' register to do what you want. The
l2cpselr register is not banked per-cpu so we must lock around
accesses to it to prevent other CPUs from re-pointing l2cpdr
underneath us.
Cc: Mark Rutland
Cc: Russell King
Acked-by: Bjorn Andersson
Signed-off-by: Stephen Boyd
Signed-off-by: Sricharan R
Tested-by: Craig Tatlor
Signed-off-by: Stephen Boyd