diff options
author | Arnd Bergmann <arnd@arndb.de> | 2015-11-25 17:32:18 +0100 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2015-12-15 09:41:34 +0100 |
commit | 2b749cb3a5153fc4c312e405ecca8a925e6632c8 (patch) | |
tree | fceffba126b41908a4a95ffeeb75c5d56b3afa00 /arch/arm/mach-realview/realview_eb.c | |
parent | ARM: no longer force unbuffered DMA for realview (diff) | |
download | linux-2b749cb3a5153fc4c312e405ecca8a925e6632c8.tar.xz linux-2b749cb3a5153fc4c312e405ecca8a925e6632c8.zip |
ARM: realview: remove private barrier implementation
The realview barrier implementation tries to avoid calling outer_sync in order
to not lock up as a result of a bug in the l220 cache controller.
This gets in the way of the multiplatform support, but we can still remove
it if we make sure that the outer_sync function never gets called, by replacing
the function pointer with NULL, right after initialization.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[Fixed up header inclusions]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch/arm/mach-realview/realview_eb.c')
-rw-r--r-- | arch/arm/mach-realview/realview_eb.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index b3869cbbcc68..1a2a89708fb7 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c @@ -38,6 +38,7 @@ #include <asm/hardware/cache-l2x0.h> #include <asm/smp_twd.h> #include <asm/system_info.h> +#include <asm/outercache.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> @@ -450,6 +451,12 @@ static void __init realview_eb_init(void) * Bits: .... ...0 0111 1001 0000 .... .... .... */ l2x0_init(__io_address(REALVIEW_EB11MP_L220_BASE), 0x00790000, 0xfe000fff); + + /* + * due to a bug in the l220 cache controller, we must not call + * the sync function. stub it out here instead! + */ + outer_cache.sync = NULL; #endif pmu_device.name = core_tile_a9mp() ? "armv7-pmu" : "armv6-pmu"; platform_device_register(&pmu_device); |