From: Arnd Bergmann <arnd@arndb.de>
To: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>,
Russell King <rmk+kernel@arm.linux.org.uk>,
Liviu Dudau <liviu.dudau@arm.com>,
Sudeep Holla <sudeep.holla@arm.com>,
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH 05/10] ARM: realview: remove private barrier implementation
Date: Wed, 25 Nov 2015 17:32:18 +0100 [thread overview]
Message-ID: <1448469143-447355-6-git-send-email-arnd@arndb.de> (raw)
In-Reply-To: <1448469143-447355-1-git-send-email-arnd@arndb.de>
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>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/mach-realview/Kconfig | 2 --
arch/arm/mach-realview/include/mach/barriers.h | 8 --------
arch/arm/mach-realview/realview_eb.c | 6 ++++++
arch/arm/mach-realview/realview_pb11mp.c | 5 +++++
4 files changed, 11 insertions(+), 10 deletions(-)
delete mode 100644 arch/arm/mach-realview/include/mach/barriers.h
diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig
index 0fe63b543f5b..055e7355ec14 100644
--- a/arch/arm/mach-realview/Kconfig
+++ b/arch/arm/mach-realview/Kconfig
@@ -36,7 +36,6 @@ config REALVIEW_EB_A9MP
config REALVIEW_EB_ARM11MP
bool "Support ARM11MPCore Tile"
depends on MACH_REALVIEW_EB
- select ARCH_HAS_BARRIERS if SMP
select CPU_V6K
select HAVE_ARM_SCU if SMP
select HAVE_ARM_TWD if SMP
@@ -57,7 +56,6 @@ config REALVIEW_EB_ARM11MP_REVB
config MACH_REALVIEW_PB11MP
bool "Support RealView(R) Platform Baseboard for ARM11MPCore"
- select ARCH_HAS_BARRIERS if SMP
select ARM_GIC
select CPU_V6K
select HAVE_ARM_SCU if SMP
diff --git a/arch/arm/mach-realview/include/mach/barriers.h b/arch/arm/mach-realview/include/mach/barriers.h
deleted file mode 100644
index 9a732195aa1c..000000000000
--- a/arch/arm/mach-realview/include/mach/barriers.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Barriers redefined for RealView ARM11MPCore platforms with L220 cache
- * controller to work around hardware errata causing the outer_sync()
- * operation to deadlock the system.
- */
-#define mb() dsb()
-#define rmb() dsb()
-#define wmb() mb()
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c
index b3869cbbcc68..4d29535abeba 100644
--- a/arch/arm/mach-realview/realview_eb.c
+++ b/arch/arm/mach-realview/realview_eb.c
@@ -450,6 +450,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);
diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c
index 15c45e25095f..f9817bb5d8fa 100644
--- a/arch/arm/mach-realview/realview_pb11mp.c
+++ b/arch/arm/mach-realview/realview_pb11mp.c
@@ -345,6 +345,11 @@ static void __init realview_pb11mp_init(void)
* Bits: .... ...0 0111 1001 0000 .... .... ....
*/
l2x0_init(__io_address(REALVIEW_TC11MP_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
realview_flash_register(realview_pb11mp_flash_resource,
--
2.1.0.rc2
next prev parent reply other threads:[~2015-11-25 16:36 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-25 16:32 [PATCH 00/10] ARM: realview multiplatform Arnd Bergmann
2015-11-25 16:32 ` [PATCH 01/10] ARM: realview: remove sparsemem hack Arnd Bergmann
2015-11-25 16:32 ` [PATCH 02/10] ARM: realview: don't map undefined PCI registers Arnd Bergmann
2015-11-25 16:32 ` [PATCH 03/10] clk/realview: stop using machine headers Arnd Bergmann
2015-11-25 16:32 ` [PATCH 04/10] ARM: no longer force unbuffered DMA for realview Arnd Bergmann
2015-11-25 16:32 ` Arnd Bergmann [this message]
2015-12-10 9:09 ` [PATCH 05/10] ARM: realview: remove private barrier implementation Linus Walleij
2015-11-25 16:32 ` [PATCH 06/10] ARM: realview: enable multiplatform Arnd Bergmann
2015-12-10 10:04 ` Linus Walleij
2015-12-10 10:55 ` Arnd Bergmann
2015-11-25 16:32 ` [PATCH 07/10] ARM: integrator: use explicit core module options Arnd Bergmann
2015-11-25 16:32 ` [PATCH 08/10] ARM: no longer make CPU targets visible separately Arnd Bergmann
2015-11-25 16:32 ` [PATCH 09/10] ARM: realview: make all header files local Arnd Bergmann
2015-12-10 10:06 ` Linus Walleij
2015-11-25 16:32 ` [PATCH 10/10] ARM: realview: clean up header files Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1448469143-447355-6-git-send-email-arnd@arndb.de \
--to=arnd@arndb.de \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=liviu.dudau@arm.com \
--cc=lorenzo.pieralisi@arm.com \
--cc=rmk+kernel@arm.linux.org.uk \
--cc=sudeep.holla@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®