aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-arm/system.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-04 16:15:48 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-04 16:15:48 -0500
commit42270035c6550101f7dc742a630c2590dd2d3ae0 (patch)
tree7b3d198f01b5c4c6b64f4cedf747f729438b7247 /include/asm-arm/system.h
parent2c89a8d09f03bc569d3237d97e2293d67c36d75d (diff)
parent8d91cbad8e6fd5b37bf584740f134508709ba035 (diff)
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: (30 commits) [ARM] Acorn: move the i2c bus driver into drivers/i2c [ARM] ARM SCSI: Don't try to dma_map_sg too many scatterlist entries [ARM] ARM FAS216: don't modify scsi_cmnd request_bufflen [ARM] rtc-pcf8583: Final fixes for this RTC on RiscPC [ARM] rtc-pcf8583: correct month and year offsets [ARM] rtc-pcf8583: don't use BCD_TO_BIN/BIN_TO_BCD [ARM] EBSA110: Work around build errors [ARM] 4241/1: Define mb() as compiler barrier on a uniprocessor system [ARM] 4239/1: S3C24XX: Update kconfig entries for PM [ARM] 4238/1: S3C24XX: docs: update suspend and resume [ARM] 4237/2: oprofile: Always allow backtraces on ARM [ARM] Yet more asm/apm-emulation.h stuff ARM: OMAP: Add missing get_irqnr_preamble and arch_ret_to_user for omap2 ARM: OMAP: Use linux/delay.h not asm/delay.h ARM: OMAP: Remove obsolete alsa typedefs ARM: OMAP: omap1510->15xx conversions needed for sx1 ARM: OMAP: Add missing includes to board-nokia770 ARM: OMAP: Workqueue changes for board-h4.c ARM: OMAP: dmtimer.c omap1 register fix ARM: OMAP: board-nokia770: correct lcd name ...
Diffstat (limited to 'include/asm-arm/system.h')
-rw-r--r--include/asm-arm/system.h40
1 files changed, 19 insertions, 21 deletions
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h
index f4386906b200..f06d8a43fdee 100644
--- a/include/asm-arm/system.h
+++ b/include/asm-arm/system.h
@@ -167,11 +167,25 @@ extern unsigned int user_debug;
167 : : "r" (0) : "memory") 167 : : "r" (0) : "memory")
168#define dmb() __asm__ __volatile__ ("" : : : "memory") 168#define dmb() __asm__ __volatile__ ("" : : : "memory")
169#endif 169#endif
170#define mb() dmb() 170
171#define rmb() mb() 171#define mb() barrier()
172#define wmb() mb() 172#define rmb() barrier()
173#define read_barrier_depends() do { } while(0) 173#define wmb() barrier()
174#define set_mb(var, value) do { var = value; mb(); } while (0) 174#define read_barrier_depends() do { } while(0)
175
176#ifdef CONFIG_SMP
177#define smp_mb() dmb()
178#define smp_rmb() dmb()
179#define smp_wmb() dmb()
180#define smp_read_barrier_depends() read_barrier_depends()
181#else
182#define smp_mb() barrier()
183#define smp_rmb() barrier()
184#define smp_wmb() barrier()
185#define smp_read_barrier_depends() read_barrier_depends()
186#endif /* CONFIG_SMP */
187
188#define set_mb(var, value) do { var = value; smp_mb(); } while (0)
175#define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t"); 189#define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t");
176 190
177extern unsigned long cr_no_alignment; /* defined in entry-armv.S */ 191extern unsigned long cr_no_alignment; /* defined in entry-armv.S */
@@ -243,22 +257,6 @@ static inline void sched_cacheflush(void)
243{ 257{
244} 258}
245 259
246#ifdef CONFIG_SMP
247
248#define smp_mb() mb()
249#define smp_rmb() rmb()
250#define smp_wmb() wmb()
251#define smp_read_barrier_depends() read_barrier_depends()
252
253#else
254
255#define smp_mb() barrier()
256#define smp_rmb() barrier()
257#define smp_wmb() barrier()
258#define smp_read_barrier_depends() do { } while(0)
259
260#endif /* CONFIG_SMP */
261
262#if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110) 260#if defined(CONFIG_CPU_SA1100) || defined(CONFIG_CPU_SA110)
263/* 261/*
264 * On the StrongARM, "swp" is terminally broken since it bypasses the 262 * On the StrongARM, "swp" is terminally broken since it bypasses the