ARM: 8482/1: l2x0: make it possible to disable outer sync from DT
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 15 Dec 2015 14:56:47 +0000 (15:56 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 22 Dec 2015 12:15:53 +0000 (12:15 +0000)
commit36f46d6d5cdef2308027261d633e96807d64d098
tree26d739960f1b31e1055e88510ac36a49c61c2963
parente7273ff49acf58a5ca9c656f3f0a5dd713390853
ARM: 8482/1: l2x0: make it possible to disable outer sync from DT

According to commit 2503a5ecd86c002506001eba432c524ea009fe7f
"ARM: 6201/1: RealView: Do not use outer_sync() on ARM11MPCore
boards with L220" Some PB11MPCore RealView core tiles have broken
outer_sync.

We got rid of the custom barriers from the machine by disabling
outer sync, but that was just for the boardfile case. We have
to be able to do the same in the device tree case.

Since __l2c_init() is cloning and copying the L2C vtable,
we pass an argument to this function to optionally numb
the outer sync operation if desired, before initializing
the cache.

After this we can set up the cache correctly on the RealView
PB11MPCore. This was tested on a PB11MPCore known to have the
issue. Before this, spurious crashes would occur if we try to
set up the cache properly, after this it boots rock solid.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: devicetree@vger.kernel.org
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Documentation/devicetree/bindings/arm/l2cc.txt
arch/arm/mm/cache-l2x0.c