diff options
author | Linus Torvalds | 2007-05-31 09:15:42 -0700 |
---|---|---|
committer | Linus Torvalds | 2007-05-31 09:15:42 -0700 |
commit | 5983b125740553d08a67d0c57e8c1021f5a06e31 (patch) | |
tree | 7c8cb1427ea5ca8260b4ee6689c947c62fa3bbcf /include | |
parent | 8ac1c101ec73e60635257ed9af1c6ab423c535b4 (diff) | |
parent | 4e1c20842044da32f771631049b7082dad63a9c5 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6:
sh: support older gcc's
sh: trivial build cleanups.
sh: Fix vsyscall build failure.
sh: Trivial fix for dma-api compile failure.
sh: Fix pcrel too far for in_nmi label.
sh: section mismatch fixes for system timer.
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-sh/cpu-sh4/freq.h | 3 | ||||
-rw-r--r-- | include/asm-sh/dma.h | 1 | ||||
-rw-r--r-- | include/asm-sh/io.h | 6 | ||||
-rw-r--r-- | include/asm-sh/smp.h | 2 | ||||
-rw-r--r-- | include/asm-sh/spinlock.h | 8 | ||||
-rw-r--r-- | include/asm-sh/spinlock_types.h | 4 |
6 files changed, 18 insertions, 6 deletions
diff --git a/include/asm-sh/cpu-sh4/freq.h b/include/asm-sh/cpu-sh4/freq.h index 86564e7a26ae..39f41fcd509d 100644 --- a/include/asm-sh/cpu-sh4/freq.h +++ b/include/asm-sh/cpu-sh4/freq.h @@ -24,6 +24,9 @@ #define FRQMR1 0xffc80014 #else #define FRQCR 0xffc00000 +#define FRQCR_PSTBY 0x0200 +#define FRQCR_PLLEN 0x0400 +#define FRQCR_CKOEN 0x0800 #endif #define MIN_DIVISOR_NR 0 #define MAX_DIVISOR_NR 3 diff --git a/include/asm-sh/dma.h b/include/asm-sh/dma.h index faf3051cd429..6034d4a29e73 100644 --- a/include/asm-sh/dma.h +++ b/include/asm-sh/dma.h @@ -13,6 +13,7 @@ #include <linux/spinlock.h> #include <linux/wait.h> +#include <linux/sched.h> #include <linux/sysdev.h> #include <asm/cpu/dma.h> diff --git a/include/asm-sh/io.h b/include/asm-sh/io.h index a0e55b09e4fd..aa80930ce8e4 100644 --- a/include/asm-sh/io.h +++ b/include/asm-sh/io.h @@ -116,13 +116,13 @@ void __raw_readsl(unsigned long addr, void *data, int longlen); * redefined by userlevel programs. */ #ifdef __readb -# define readb(a) ({ unsigned long r_ = __raw_readb(a); mb(); r_; }) +# define readb(a) ({ unsigned int r_ = __raw_readb(a); mb(); r_; }) #endif #ifdef __raw_readw -# define readw(a) ({ unsigned long r_ = __raw_readw(a); mb(); r_; }) +# define readw(a) ({ unsigned int r_ = __raw_readw(a); mb(); r_; }) #endif #ifdef __raw_readl -# define readl(a) ({ unsigned long r_ = __raw_readl(a); mb(); r_; }) +# define readl(a) ({ unsigned int r_ = __raw_readl(a); mb(); r_; }) #endif #ifdef __raw_writeb diff --git a/include/asm-sh/smp.h b/include/asm-sh/smp.h index 71ecddf70db3..caa7b93f1bce 100644 --- a/include/asm-sh/smp.h +++ b/include/asm-sh/smp.h @@ -15,7 +15,7 @@ #ifdef CONFIG_SMP -#include <asm/spinlock.h> +#include <linux/spinlock.h> #include <asm/atomic.h> #include <asm/current.h> diff --git a/include/asm-sh/spinlock.h b/include/asm-sh/spinlock.h index 2586eef07d57..92f6e2008b2e 100644 --- a/include/asm-sh/spinlock.h +++ b/include/asm-sh/spinlock.h @@ -11,6 +11,7 @@ #define __ASM_SH_SPINLOCK_H #include <asm/atomic.h> +#include <asm/spinlock_types.h> /* * Your basic SMP spinlocks, allowing only a single CPU anywhere @@ -42,7 +43,7 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock) static inline void __raw_spin_unlock(raw_spinlock_t *lock) { - assert_spin_locked(lock); + //assert_spin_locked(lock); lock->lock = 0; } @@ -88,6 +89,11 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw) __raw_spin_unlock(&rw->lock); } +static inline int __raw_write_can_lock(raw_rwlock_t *rw) +{ + return (atomic_read(&rw->counter) == RW_LOCK_BIAS); +} + static inline int __raw_read_trylock(raw_rwlock_t *lock) { atomic_t *count = (atomic_t*)lock; diff --git a/include/asm-sh/spinlock_types.h b/include/asm-sh/spinlock_types.h index 8c41b6c3aac8..5c58134f2c4e 100644 --- a/include/asm-sh/spinlock_types.h +++ b/include/asm-sh/spinlock_types.h @@ -9,7 +9,9 @@ typedef struct { volatile unsigned long lock; } raw_spinlock_t; -#define __SPIN_LOCK_UNLOCKED { 0 } +#define __RAW_SPIN_LOCK_UNLOCKED { 1 } + +#include <asm/atomic.h> typedef struct { raw_spinlock_t lock; |