From: dwalker@codeaurora.org (Daniel Walker)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 06/18] arm: msm: implement proper dmb() for 7x27
Date: Mon, 11 Jan 2010 14:47:25 -0800 [thread overview]
Message-ID: <1263250057-26692-7-git-send-email-dwalker@codeaurora.org> (raw)
In-Reply-To: <1263250057-26692-1-git-send-email-dwalker@codeaurora.org>
From: Larry Bassel <lbassel@quicinc.com>
For 7x27 it is necessary to write to strongly
ordered memory after executing the coprocessor 15
instruction dmb instruction.
This is only for data barrier dmb().
Note that the test for 7x27 is done on all MSM platforms
(even ones such as 7201a whose kernel is distinct from
that of 7x25/7x27).
Acked-by: Willie Ruan <wruan@quicinc.com>
Signed-off-by: Larry Bassel <lbassel@quicinc.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
---
arch/arm/include/asm/system.h | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
index 058e7e9..55d942b 100644
--- a/arch/arm/include/asm/system.h
+++ b/arch/arm/include/asm/system.h
@@ -3,6 +3,8 @@
#ifdef __KERNEL__
+#include <asm/memory.h>
+
#define CPU_ARCH_UNKNOWN 0
#define CPU_ARCH_ARMv3 1
#define CPU_ARCH_ARMv4 2
@@ -114,6 +116,10 @@ extern unsigned int user_debug;
#define vectors_high() (0)
#endif
+#ifndef arch_barrier_extra
+#define arch_barrier_extra() do {} while (0)
+#endif
+
#if __LINUX_ARM_ARCH__ >= 7
#define isb() __asm__ __volatile__ ("isb" : : : "memory")
#define dsb() __asm__ __volatile__ ("dsb" : : : "memory")
@@ -123,8 +129,9 @@ extern unsigned int user_debug;
: : "r" (0) : "memory")
#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
: : "r" (0) : "memory")
-#define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
- : : "r" (0) : "memory")
+#define dmb() do { __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
+ : : "r" (0) : "memory"); \
+ arch_barrier_extra(); } while (0)
#elif defined(CONFIG_CPU_FA526)
#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
: : "r" (0) : "memory")
--
1.6.3.3
next prev parent reply other threads:[~2010-01-11 22:47 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-11 22:47 [RFC 00/18] generic arm needed for msm Daniel Walker
2010-01-11 22:47 ` [RFC 01/18] arm: msm: allow ARCH_MSM to have v7 cpus Daniel Walker
2010-01-11 22:47 ` [RFC 02/18] arm: msm: add oprofile pmu support Daniel Walker
2010-01-11 22:47 ` [RFC 03/18] arm: boot: remove old ARM ID for QSD Daniel Walker
2010-01-15 21:26 ` Russell King - ARM Linux
2010-01-11 22:47 ` [RFC 04/18] arm: cache-l2x0: add l2x0 suspend and resume functions Daniel Walker
2010-01-11 23:44 ` Russell King - ARM Linux
2010-01-12 0:52 ` Ruan, Willie
2010-01-11 22:47 ` [RFC 05/18] arm: msm: implement ioremap_strongly_ordered Daniel Walker
2010-01-11 23:37 ` Russell King - ARM Linux
2010-01-28 23:04 ` Larry Bassel
2010-02-03 14:59 ` Russell King - ARM Linux
2010-01-11 22:47 ` Daniel Walker [this message]
2010-01-11 23:39 ` [RFC 06/18] arm: msm: implement proper dmb() for 7x27 Russell King - ARM Linux
2010-01-11 23:45 ` Daniel Walker
2010-01-12 0:01 ` Russell King - ARM Linux
2010-01-19 17:28 ` Jamie Lokier
2010-01-19 18:04 ` Russell King - ARM Linux
2010-01-19 21:12 ` Jamie Lokier
2010-01-19 23:11 ` Russell King - ARM Linux
2010-01-19 17:16 ` Jamie Lokier
2010-01-11 22:47 ` [RFC 07/18] arm: mm: retry on QSD icache parity errors Daniel Walker
2010-01-18 18:42 ` Ashwin Chaugule
2010-01-19 16:16 ` Ashwin Chaugule
2010-01-11 22:47 ` [RFC 08/18] arm: msm: set L2CR1 to enable prefetch and burst on Scorpion Daniel Walker
2010-01-11 23:45 ` Russell King - ARM Linux
2010-01-12 10:51 ` [RFC 08/18] arm: msm: set L2CR1 to enable prefetch and burston Scorpion Catalin Marinas
2010-01-12 11:23 ` Shilimkar, Santosh
2010-01-12 11:44 ` Russell King - ARM Linux
2010-01-12 13:32 ` [RFC 08/18] arm: msm: set L2CR1 to enable prefetch and burstonScorpion Catalin Marinas
2010-01-12 13:58 ` Russell King - ARM Linux
2010-01-12 14:41 ` [RFC 08/18] arm: msm: set L2CR1 to enable prefetch andburstonScorpion Catalin Marinas
2010-01-12 18:23 ` Daniel Walker
2010-01-13 10:36 ` Catalin Marinas
2010-01-19 17:38 ` Jamie Lokier
2010-01-13 6:14 ` [RFC 08/18] arm: msm: set L2CR1 to enable prefetch and burstonScorpion Shilimkar, Santosh
2010-01-12 20:21 ` [RFC 08/18] arm: msm: set L2CR1 to enable prefetch and burston Scorpion Nicolas Pitre
2010-01-11 22:47 ` [RFC 09/18] arm: mm: support error reporting in L1/L2 caches on QSD Daniel Walker
2010-01-11 22:47 ` [RFC 10/18] arm: mm: enable L2X0 to use L2 cache on MSM7X27 Daniel Walker
2010-01-11 22:47 ` [RFC 11/18] arm: msm: add ARCH_MSM_SCORPION to CPU_V7 Daniel Walker
2010-01-11 23:13 ` Russell King - ARM Linux
2010-01-11 23:17 ` Daniel Walker
2010-01-11 22:47 ` [RFC 12/18] arm: msm: Enable frequency scaling Daniel Walker
2010-01-11 22:47 ` [RFC 13/18] arm: msm: define HAVE_CLK for ARCH_MSM Daniel Walker
2010-01-11 22:47 ` [RFC 14/18] arm: msm: add v7 support for compiler version-4.1.1 Daniel Walker
2010-01-11 23:07 ` Russell King - ARM Linux
2010-01-11 22:47 ` [RFC 15/18] arm: vfp: Add additional vfp interfaces Daniel Walker
2010-01-11 22:47 ` [RFC 16/18] arm: msm: add arch_has_speculative_dfetch() Daniel Walker
2010-01-11 23:33 ` Russell King - ARM Linux
2010-01-12 0:28 ` Daniel Walker
2010-01-12 8:59 ` Russell King - ARM Linux
2010-01-11 22:47 ` [RFC 17/18] arm: mm: Add SW emulation for ARM domain manager feature Daniel Walker
2010-01-25 16:40 ` Catalin Marinas
2010-01-25 17:04 ` Nicolas Pitre
2010-01-25 18:25 ` Daniel Walker
2010-03-22 18:11 ` Daniel Walker
2010-03-22 18:58 ` Nicolas Pitre
2010-03-22 20:01 ` Daniel Walker
2010-03-22 20:32 ` Nicolas Pitre
2010-03-23 10:04 ` Catalin Marinas
2010-01-11 22:47 ` [RFC 18/18] arm: mm: qsd8x50: Fix incorrect permission faults Daniel Walker
2010-01-11 23:11 ` Russell King - ARM Linux
2010-01-19 17:10 ` Jamie Lokier
2010-01-19 17:33 ` Daniel Walker
2010-01-19 17:43 ` Jamie Lokier
2010-01-19 17:49 ` Daniel Walker
2010-01-19 18:09 ` Russell King - ARM Linux
2010-02-04 0:09 ` David Brown
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=1263250057-26692-7-git-send-email-dwalker@codeaurora.org \
--to=dwalker@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.