git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
imxfb: fast read flag and nonstandard field configurable
[safe/jmp/linux-2.6]
/
include
/
asm-arm
/
atomic.h
diff --git
a/include/asm-arm/atomic.h
b/include/asm-arm/atomic.h
index
3d7283d
..
3b59f94
100644
(file)
--- a/
include/asm-arm/atomic.h
+++ b/
include/asm-arm/atomic.h
@@
-11,8
+11,8
@@
#ifndef __ASM_ARM_ATOMIC_H
#define __ASM_ARM_ATOMIC_H
#ifndef __ASM_ARM_ATOMIC_H
#define __ASM_ARM_ATOMIC_H
-#include <linux/config.h>
#include <linux/compiler.h>
#include <linux/compiler.h>
+#include <asm/system.h>
typedef struct { volatile int counter; } atomic_t;
typedef struct { volatile int counter; } atomic_t;
@@
-104,9
+104,9
@@
static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
unsigned long tmp, tmp2;
__asm__ __volatile__("@ atomic_clear_mask\n"
unsigned long tmp, tmp2;
__asm__ __volatile__("@ atomic_clear_mask\n"
-"1: ldrex %0,
%2
\n"
+"1: ldrex %0,
[%2]
\n"
" bic %0, %0, %3\n"
" bic %0, %0, %3\n"
-" strex %1, %0,
%2
\n"
+" strex %1, %0,
[%2]
\n"
" teq %1, #0\n"
" bne 1b"
: "=&r" (tmp), "=&r" (tmp2)
" teq %1, #0\n"
" bne 1b"
: "=&r" (tmp), "=&r" (tmp2)
@@
-129,10
+129,10
@@
static inline int atomic_add_return(int i, atomic_t *v)
unsigned long flags;
int val;
unsigned long flags;
int val;
- local_irq_save(flags);
+
raw_
local_irq_save(flags);
val = v->counter;
v->counter = val += i;
val = v->counter;
v->counter = val += i;
- local_irq_restore(flags);
+
raw_
local_irq_restore(flags);
return val;
}
return val;
}
@@
-142,10
+142,10
@@
static inline int atomic_sub_return(int i, atomic_t *v)
unsigned long flags;
int val;
unsigned long flags;
int val;
- local_irq_save(flags);
+
raw_
local_irq_save(flags);
val = v->counter;
v->counter = val -= i;
val = v->counter;
v->counter = val -= i;
- local_irq_restore(flags);
+
raw_
local_irq_restore(flags);
return val;
}
return val;
}
@@
-155,11
+155,11
@@
static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
int ret;
unsigned long flags;
int ret;
unsigned long flags;
- local_irq_save(flags);
+
raw_
local_irq_save(flags);
ret = v->counter;
if (likely(ret == old))
v->counter = new;
ret = v->counter;
if (likely(ret == old))
v->counter = new;
- local_irq_restore(flags);
+
raw_
local_irq_restore(flags);
return ret;
}
return ret;
}
@@
-168,9
+168,9
@@
static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
{
unsigned long flags;
{
unsigned long flags;
- local_irq_save(flags);
+
raw_
local_irq_save(flags);
*addr &= ~mask;
*addr &= ~mask;
- local_irq_restore(flags);
+
raw_
local_irq_restore(flags);
}
#endif /* __LINUX_ARM_ARCH__ */
}
#endif /* __LINUX_ARM_ARCH__ */