diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-28 16:52:50 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-28 16:52:50 -0500 |
commit | e189f3495c4e30fc84fc9241096edf3932e23439 (patch) | |
tree | 5916c89ace81537a02ae01869386ba6caafdab9c /include/asm-sh/atomic.h | |
parent | f4798748dee00c807a63f5518f08b3df161e0f6d (diff) | |
parent | 6582d7b7376aa587d74b08c74457dc28abc1a9fa (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (197 commits)
sh: add spi header and r2d platform data V3
sh: update r7780rp interrupt code
sh: remove consistent alloc stuff from the machine vector
sh: use declared coherent memory for dreamcast pci ethernet adapter
sh: declared coherent memory support V2
sh: Add support for SDK7780 board.
sh: constify function pointer tables
sh: Kill off -traditional for linker script.
cdrom: Add support for Sega Dreamcast GD-ROM.
sh: Kill off hs7751rvoip reference from arch/sh/Kconfig.
sh: Drop r7780rp_defconfig, use r7780mp_defconfig as kbuild default.
sh: Kill off dead HS771RVoIP board support.
sh: r7785rp: Fix up DECLARE_INTC_DESC() arg mismatch.
sh: r7785rp: Hook up the rest of the HL7785 FPGA IRQ vectors.
sh: r2d - enable sm501 usb host function
sh: remove voyagergx
sh: r2d - add lcd planel timings to sm501 platform data
sh: Add OHCI and UDC platform devices for SH7720.
sh: intc - remove default interrupt priority tables
sh: Correct pte size mismatch for X2 TLB.
...
Diffstat (limited to 'include/asm-sh/atomic.h')
-rw-r--r-- | include/asm-sh/atomic.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/asm-sh/atomic.h b/include/asm-sh/atomic.h index e12570b9339d..c043ef003028 100644 --- a/include/asm-sh/atomic.h +++ b/include/asm-sh/atomic.h | |||
@@ -17,7 +17,9 @@ typedef struct { volatile int counter; } atomic_t; | |||
17 | #include <linux/compiler.h> | 17 | #include <linux/compiler.h> |
18 | #include <asm/system.h> | 18 | #include <asm/system.h> |
19 | 19 | ||
20 | #ifdef CONFIG_CPU_SH4A | 20 | #if defined(CONFIG_GUSA_RB) |
21 | #include <asm/atomic-grb.h> | ||
22 | #elif defined(CONFIG_CPU_SH4A) | ||
21 | #include <asm/atomic-llsc.h> | 23 | #include <asm/atomic-llsc.h> |
22 | #else | 24 | #else |
23 | #include <asm/atomic-irq.h> | 25 | #include <asm/atomic-irq.h> |
@@ -44,6 +46,7 @@ typedef struct { volatile int counter; } atomic_t; | |||
44 | #define atomic_inc(v) atomic_add(1,(v)) | 46 | #define atomic_inc(v) atomic_add(1,(v)) |
45 | #define atomic_dec(v) atomic_sub(1,(v)) | 47 | #define atomic_dec(v) atomic_sub(1,(v)) |
46 | 48 | ||
49 | #ifndef CONFIG_GUSA_RB | ||
47 | static inline int atomic_cmpxchg(atomic_t *v, int old, int new) | 50 | static inline int atomic_cmpxchg(atomic_t *v, int old, int new) |
48 | { | 51 | { |
49 | int ret; | 52 | int ret; |
@@ -58,8 +61,6 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new) | |||
58 | return ret; | 61 | return ret; |
59 | } | 62 | } |
60 | 63 | ||
61 | #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) | ||
62 | |||
63 | static inline int atomic_add_unless(atomic_t *v, int a, int u) | 64 | static inline int atomic_add_unless(atomic_t *v, int a, int u) |
64 | { | 65 | { |
65 | int ret; | 66 | int ret; |
@@ -73,6 +74,9 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u) | |||
73 | 74 | ||
74 | return ret != u; | 75 | return ret != u; |
75 | } | 76 | } |
77 | #endif | ||
78 | |||
79 | #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) | ||
76 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | 80 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) |
77 | 81 | ||
78 | /* Atomic operations are already serializing on SH */ | 82 | /* Atomic operations are already serializing on SH */ |