diff options
Diffstat (limited to 'include/asm-m32r')
-rw-r--r-- | include/asm-m32r/assembler.h | 10 | ||||
-rw-r--r-- | include/asm-m32r/atomic.h | 2 | ||||
-rw-r--r-- | include/asm-m32r/bitops.h | 1 | ||||
-rw-r--r-- | include/asm-m32r/cache.h | 2 | ||||
-rw-r--r-- | include/asm-m32r/cacheflush.h | 2 | ||||
-rw-r--r-- | include/asm-m32r/futex.h | 49 | ||||
-rw-r--r-- | include/asm-m32r/ioctl.h | 79 | ||||
-rw-r--r-- | include/asm-m32r/irq.h | 16 | ||||
-rw-r--r-- | include/asm-m32r/m32102.h | 38 | ||||
-rw-r--r-- | include/asm-m32r/m32104ut/m32104ut_pld.h | 163 | ||||
-rw-r--r-- | include/asm-m32r/m32r.h | 8 | ||||
-rw-r--r-- | include/asm-m32r/mman.h | 1 | ||||
-rw-r--r-- | include/asm-m32r/mutex.h | 9 | ||||
-rw-r--r-- | include/asm-m32r/ptrace.h | 3 | ||||
-rw-r--r-- | include/asm-m32r/system.h | 22 | ||||
-rw-r--r-- | include/asm-m32r/thread_info.h | 2 | ||||
-rw-r--r-- | include/asm-m32r/unistd.h | 12 |
17 files changed, 259 insertions, 160 deletions
diff --git a/include/asm-m32r/assembler.h b/include/asm-m32r/assembler.h index e1dff9d6baad..b7f4d8aaeb46 100644 --- a/include/asm-m32r/assembler.h +++ b/include/asm-m32r/assembler.h | |||
@@ -52,7 +52,7 @@ | |||
52 | or3 \reg, \reg, #low(\x) | 52 | or3 \reg, \reg, #low(\x) |
53 | .endm | 53 | .endm |
54 | 54 | ||
55 | #if !defined(CONFIG_CHIP_M32102) | 55 | #if !(defined(CONFIG_CHIP_M32102) || defined(CONFIG_CHIP_M32104)) |
56 | #define STI(reg) STI_M reg | 56 | #define STI(reg) STI_M reg |
57 | .macro STI_M reg | 57 | .macro STI_M reg |
58 | setpsw #0x40 -> nop | 58 | setpsw #0x40 -> nop |
@@ -64,7 +64,7 @@ | |||
64 | clrpsw #0x40 -> nop | 64 | clrpsw #0x40 -> nop |
65 | ; WORKAROUND: "-> nop" is a workaround for the M32700(TS1). | 65 | ; WORKAROUND: "-> nop" is a workaround for the M32700(TS1). |
66 | .endm | 66 | .endm |
67 | #else /* CONFIG_CHIP_M32102 */ | 67 | #else /* CONFIG_CHIP_M32102 || CONFIG_CHIP_M32104 */ |
68 | #define STI(reg) STI_M reg | 68 | #define STI(reg) STI_M reg |
69 | .macro STI_M reg | 69 | .macro STI_M reg |
70 | mvfc \reg, psw | 70 | mvfc \reg, psw |
@@ -191,12 +191,12 @@ | |||
191 | and \reg, sp | 191 | and \reg, sp |
192 | .endm | 192 | .endm |
193 | 193 | ||
194 | #if !defined(CONFIG_CHIP_M32102) | 194 | #if !(defined(CONFIG_CHIP_M32102) || defined(CONFIG_CHIP_M32104)) |
195 | .macro SWITCH_TO_KERNEL_STACK | 195 | .macro SWITCH_TO_KERNEL_STACK |
196 | ; switch to kernel stack (spi) | 196 | ; switch to kernel stack (spi) |
197 | clrpsw #0x80 -> nop | 197 | clrpsw #0x80 -> nop |
198 | .endm | 198 | .endm |
199 | #else /* CONFIG_CHIP_M32102 */ | 199 | #else /* CONFIG_CHIP_M32102 || CONFIG_CHIP_M32104 */ |
200 | .macro SWITCH_TO_KERNEL_STACK | 200 | .macro SWITCH_TO_KERNEL_STACK |
201 | push r0 ; save r0 for working | 201 | push r0 ; save r0 for working |
202 | mvfc r0, psw | 202 | mvfc r0, psw |
@@ -218,7 +218,7 @@ | |||
218 | .fillinsn | 218 | .fillinsn |
219 | 2: | 219 | 2: |
220 | .endm | 220 | .endm |
221 | #endif /* CONFIG_CHIP_M32102 */ | 221 | #endif /* CONFIG_CHIP_M32102 || CONFIG_CHIP_M32104 */ |
222 | 222 | ||
223 | #endif /* __ASSEMBLY__ */ | 223 | #endif /* __ASSEMBLY__ */ |
224 | 224 | ||
diff --git a/include/asm-m32r/atomic.h b/include/asm-m32r/atomic.h index ef1fb8ea4726..3122fe106f05 100644 --- a/include/asm-m32r/atomic.h +++ b/include/asm-m32r/atomic.h | |||
@@ -243,6 +243,7 @@ static __inline__ int atomic_dec_return(atomic_t *v) | |||
243 | #define atomic_add_negative(i,v) (atomic_add_return((i), (v)) < 0) | 243 | #define atomic_add_negative(i,v) (atomic_add_return((i), (v)) < 0) |
244 | 244 | ||
245 | #define atomic_cmpxchg(v, o, n) ((int)cmpxchg(&((v)->counter), (o), (n))) | 245 | #define atomic_cmpxchg(v, o, n) ((int)cmpxchg(&((v)->counter), (o), (n))) |
246 | #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) | ||
246 | 247 | ||
247 | /** | 248 | /** |
248 | * atomic_add_unless - add unless the number is a given value | 249 | * atomic_add_unless - add unless the number is a given value |
@@ -313,4 +314,5 @@ static __inline__ void atomic_set_mask(unsigned long mask, atomic_t *addr) | |||
313 | #define smp_mb__before_atomic_inc() barrier() | 314 | #define smp_mb__before_atomic_inc() barrier() |
314 | #define smp_mb__after_atomic_inc() barrier() | 315 | #define smp_mb__after_atomic_inc() barrier() |
315 | 316 | ||
317 | #include <asm-generic/atomic.h> | ||
316 | #endif /* _ASM_M32R_ATOMIC_H */ | 318 | #endif /* _ASM_M32R_ATOMIC_H */ |
diff --git a/include/asm-m32r/bitops.h b/include/asm-m32r/bitops.h index e78443981349..abea2fdd8689 100644 --- a/include/asm-m32r/bitops.h +++ b/include/asm-m32r/bitops.h | |||
@@ -465,6 +465,7 @@ static __inline__ unsigned long __ffs(unsigned long word) | |||
465 | * fls: find last bit set. | 465 | * fls: find last bit set. |
466 | */ | 466 | */ |
467 | #define fls(x) generic_fls(x) | 467 | #define fls(x) generic_fls(x) |
468 | #define fls64(x) generic_fls64(x) | ||
468 | 469 | ||
469 | #ifdef __KERNEL__ | 470 | #ifdef __KERNEL__ |
470 | 471 | ||
diff --git a/include/asm-m32r/cache.h b/include/asm-m32r/cache.h index 724820596980..9c2b2d9998bc 100644 --- a/include/asm-m32r/cache.h +++ b/include/asm-m32r/cache.h | |||
@@ -7,6 +7,4 @@ | |||
7 | #define L1_CACHE_SHIFT 4 | 7 | #define L1_CACHE_SHIFT 4 |
8 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) | 8 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) |
9 | 9 | ||
10 | #define L1_CACHE_SHIFT_MAX 4 | ||
11 | |||
12 | #endif /* _ASM_M32R_CACHE_H */ | 10 | #endif /* _ASM_M32R_CACHE_H */ |
diff --git a/include/asm-m32r/cacheflush.h b/include/asm-m32r/cacheflush.h index 46fc4c325108..e57427b6e249 100644 --- a/include/asm-m32r/cacheflush.h +++ b/include/asm-m32r/cacheflush.h | |||
@@ -7,7 +7,7 @@ | |||
7 | extern void _flush_cache_all(void); | 7 | extern void _flush_cache_all(void); |
8 | extern void _flush_cache_copyback_all(void); | 8 | extern void _flush_cache_copyback_all(void); |
9 | 9 | ||
10 | #if defined(CONFIG_CHIP_M32700) || defined(CONFIG_CHIP_OPSP) | 10 | #if defined(CONFIG_CHIP_M32700) || defined(CONFIG_CHIP_OPSP) || defined(CONFIG_CHIP_M32104) |
11 | #define flush_cache_all() do { } while (0) | 11 | #define flush_cache_all() do { } while (0) |
12 | #define flush_cache_mm(mm) do { } while (0) | 12 | #define flush_cache_mm(mm) do { } while (0) |
13 | #define flush_cache_range(vma, start, end) do { } while (0) | 13 | #define flush_cache_range(vma, start, end) do { } while (0) |
diff --git a/include/asm-m32r/futex.h b/include/asm-m32r/futex.h index 9feff4ce1424..6a332a9f099c 100644 --- a/include/asm-m32r/futex.h +++ b/include/asm-m32r/futex.h | |||
@@ -1,53 +1,6 @@ | |||
1 | #ifndef _ASM_FUTEX_H | 1 | #ifndef _ASM_FUTEX_H |
2 | #define _ASM_FUTEX_H | 2 | #define _ASM_FUTEX_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | 4 | #include <asm-generic/futex.h> |
5 | 5 | ||
6 | #include <linux/futex.h> | ||
7 | #include <asm/errno.h> | ||
8 | #include <asm/uaccess.h> | ||
9 | |||
10 | static inline int | ||
11 | futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | ||
12 | { | ||
13 | int op = (encoded_op >> 28) & 7; | ||
14 | int cmp = (encoded_op >> 24) & 15; | ||
15 | int oparg = (encoded_op << 8) >> 20; | ||
16 | int cmparg = (encoded_op << 20) >> 20; | ||
17 | int oldval = 0, ret; | ||
18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | ||
19 | oparg = 1 << oparg; | ||
20 | |||
21 | if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) | ||
22 | return -EFAULT; | ||
23 | |||
24 | inc_preempt_count(); | ||
25 | |||
26 | switch (op) { | ||
27 | case FUTEX_OP_SET: | ||
28 | case FUTEX_OP_ADD: | ||
29 | case FUTEX_OP_OR: | ||
30 | case FUTEX_OP_ANDN: | ||
31 | case FUTEX_OP_XOR: | ||
32 | default: | ||
33 | ret = -ENOSYS; | ||
34 | } | ||
35 | |||
36 | dec_preempt_count(); | ||
37 | |||
38 | if (!ret) { | ||
39 | switch (cmp) { | ||
40 | case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; | ||
41 | case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; | ||
42 | case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; | ||
43 | case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; | ||
44 | case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; | ||
45 | case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; | ||
46 | default: ret = -ENOSYS; | ||
47 | } | ||
48 | } | ||
49 | return ret; | ||
50 | } | ||
51 | |||
52 | #endif | ||
53 | #endif | 6 | #endif |
diff --git a/include/asm-m32r/ioctl.h b/include/asm-m32r/ioctl.h index 87d8f7db6af1..b279fe06dfe5 100644 --- a/include/asm-m32r/ioctl.h +++ b/include/asm-m32r/ioctl.h | |||
@@ -1,78 +1 @@ | |||
1 | #ifndef _ASM_M32R_IOCTL_H | #include <asm-generic/ioctl.h> | |
2 | #define _ASM_M32R_IOCTL_H | ||
3 | |||
4 | /* $Id$ */ | ||
5 | |||
6 | /* orig : i386 2.4.18 */ | ||
7 | |||
8 | /* | ||
9 | * linux/ioctl.h for Linux by H.H. Bergman. | ||
10 | */ | ||
11 | |||
12 | /* ioctl command encoding: 32 bits total, command in lower 16 bits, | ||
13 | * size of the parameter structure in the lower 14 bits of the | ||
14 | * upper 16 bits. | ||
15 | * Encoding the size of the parameter structure in the ioctl request | ||
16 | * is useful for catching programs compiled with old versions | ||
17 | * and to avoid overwriting user space outside the user buffer area. | ||
18 | * The highest 2 bits are reserved for indicating the ``access mode''. | ||
19 | * NOTE: This limits the max parameter size to 16kB -1 ! | ||
20 | */ | ||
21 | |||
22 | /* | ||
23 | * The following is for compatibility across the various Linux | ||
24 | * platforms. The i386 ioctl numbering scheme doesn't really enforce | ||
25 | * a type field. De facto, however, the top 8 bits of the lower 16 | ||
26 | * bits are indeed used as a type field, so we might just as well make | ||
27 | * this explicit here. Please be sure to use the decoding macros | ||
28 | * below from now on. | ||
29 | */ | ||
30 | #define _IOC_NRBITS 8 | ||
31 | #define _IOC_TYPEBITS 8 | ||
32 | #define _IOC_SIZEBITS 14 | ||
33 | #define _IOC_DIRBITS 2 | ||
34 | |||
35 | #define _IOC_NRMASK ((1 << _IOC_NRBITS)-1) | ||
36 | #define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1) | ||
37 | #define _IOC_SIZEMASK ((1 << _IOC_SIZEBITS)-1) | ||
38 | #define _IOC_DIRMASK ((1 << _IOC_DIRBITS)-1) | ||
39 | |||
40 | #define _IOC_NRSHIFT 0 | ||
41 | #define _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS) | ||
42 | #define _IOC_SIZESHIFT (_IOC_TYPESHIFT+_IOC_TYPEBITS) | ||
43 | #define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS) | ||
44 | |||
45 | /* | ||
46 | * Direction bits. | ||
47 | */ | ||
48 | #define _IOC_NONE 0U | ||
49 | #define _IOC_WRITE 1U | ||
50 | #define _IOC_READ 2U | ||
51 | |||
52 | #define _IOC(dir,type,nr,size) \ | ||
53 | (((dir) << _IOC_DIRSHIFT) | \ | ||
54 | ((type) << _IOC_TYPESHIFT) | \ | ||
55 | ((nr) << _IOC_NRSHIFT) | \ | ||
56 | ((size) << _IOC_SIZESHIFT)) | ||
57 | |||
58 | /* used to create numbers */ | ||
59 | #define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0) | ||
60 | #define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size)) | ||
61 | #define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size)) | ||
62 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size)) | ||
63 | |||
64 | /* used to decode ioctl numbers.. */ | ||
65 | #define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) | ||
66 | #define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK) | ||
67 | #define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK) | ||
68 | #define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK) | ||
69 | |||
70 | /* ...and for the drivers/sound files... */ | ||
71 | |||
72 | #define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT) | ||
73 | #define IOC_OUT (_IOC_READ << _IOC_DIRSHIFT) | ||
74 | #define IOC_INOUT ((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT) | ||
75 | #define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT) | ||
76 | #define IOCSIZE_SHIFT (_IOC_SIZESHIFT) | ||
77 | |||
78 | #endif /* _ASM_M32R_IOCTL_H */ | ||
diff --git a/include/asm-m32r/irq.h b/include/asm-m32r/irq.h index 8ed77968ecb4..ca943954572a 100644 --- a/include/asm-m32r/irq.h +++ b/include/asm-m32r/irq.h | |||
@@ -65,6 +65,22 @@ | |||
65 | #define NR_IRQS \ | 65 | #define NR_IRQS \ |
66 | (OPSPUT_NUM_CPU_IRQ + OPSPUT_NUM_PLD_IRQ \ | 66 | (OPSPUT_NUM_CPU_IRQ + OPSPUT_NUM_PLD_IRQ \ |
67 | + OPSPUT_NUM_LCD_PLD_IRQ + OPSPUT_NUM_LAN_PLD_IRQ) | 67 | + OPSPUT_NUM_LCD_PLD_IRQ + OPSPUT_NUM_LAN_PLD_IRQ) |
68 | |||
69 | #elif defined(CONFIG_PLAT_M32104UT) | ||
70 | /* | ||
71 | * IRQ definitions for M32104UT | ||
72 | * M32104 Chip: 64 interrupts | ||
73 | * ICU of M32104UT-on-board PLD: 32 interrupts cascaded to INT1# chip pin | ||
74 | */ | ||
75 | #define M32104UT_NUM_CPU_IRQ (64) | ||
76 | #define M32104UT_NUM_PLD_IRQ (32) | ||
77 | #define M32104UT_IRQ_BASE 0 | ||
78 | #define M32104UT_CPU_IRQ_BASE M32104UT_IRQ_BASE | ||
79 | #define M32104UT_PLD_IRQ_BASE (M32104UT_CPU_IRQ_BASE + M32104UT_NUM_CPU_IRQ) | ||
80 | |||
81 | #define NR_IRQS \ | ||
82 | (M32104UT_NUM_CPU_IRQ + M32104UT_NUM_PLD_IRQ) | ||
83 | |||
68 | #else | 84 | #else |
69 | #define NR_IRQS 64 | 85 | #define NR_IRQS 64 |
70 | #endif | 86 | #endif |
diff --git a/include/asm-m32r/m32102.h b/include/asm-m32r/m32102.h index cb98101f4f6e..a1f0d1fe9eb8 100644 --- a/include/asm-m32r/m32102.h +++ b/include/asm-m32r/m32102.h | |||
@@ -11,7 +11,11 @@ | |||
11 | /*======================================================================* | 11 | /*======================================================================* |
12 | * Special Function Register | 12 | * Special Function Register |
13 | *======================================================================*/ | 13 | *======================================================================*/ |
14 | #if !defined(CONFIG_CHIP_M32104) | ||
14 | #define M32R_SFR_OFFSET (0x00E00000) /* 0x00E00000-0x00EFFFFF 1[MB] */ | 15 | #define M32R_SFR_OFFSET (0x00E00000) /* 0x00E00000-0x00EFFFFF 1[MB] */ |
16 | #else | ||
17 | #define M32R_SFR_OFFSET (0x00700000) /* 0x00700000-0x007FFFFF 1[MB] */ | ||
18 | #endif | ||
15 | 19 | ||
16 | /* | 20 | /* |
17 | * Clock and Power Management registers. | 21 | * Clock and Power Management registers. |
@@ -100,7 +104,7 @@ | |||
100 | #define M32R_MFT5RLD_PORTL (0x0C+M32R_MFT5_OFFSET) /* MFT4 reload */ | 104 | #define M32R_MFT5RLD_PORTL (0x0C+M32R_MFT5_OFFSET) /* MFT4 reload */ |
101 | #define M32R_MFT5CMPRLD_PORTL (0x10+M32R_MFT5_OFFSET) /* MFT4 compare reload */ | 105 | #define M32R_MFT5CMPRLD_PORTL (0x10+M32R_MFT5_OFFSET) /* MFT4 compare reload */ |
102 | 106 | ||
103 | #ifdef CONFIG_CHIP_M32700 | 107 | #if defined(CONFIG_CHIP_M32700) || defined(CONFIG_CHIP_M32104) |
104 | #define M32R_MFTCR_MFT0MSK (1UL<<31) /* b0 */ | 108 | #define M32R_MFTCR_MFT0MSK (1UL<<31) /* b0 */ |
105 | #define M32R_MFTCR_MFT1MSK (1UL<<30) /* b1 */ | 109 | #define M32R_MFTCR_MFT1MSK (1UL<<30) /* b1 */ |
106 | #define M32R_MFTCR_MFT2MSK (1UL<<29) /* b2 */ | 110 | #define M32R_MFTCR_MFT2MSK (1UL<<29) /* b2 */ |
@@ -113,7 +117,7 @@ | |||
113 | #define M32R_MFTCR_MFT3EN (1UL<<20) /* b11 */ | 117 | #define M32R_MFTCR_MFT3EN (1UL<<20) /* b11 */ |
114 | #define M32R_MFTCR_MFT4EN (1UL<<19) /* b12 */ | 118 | #define M32R_MFTCR_MFT4EN (1UL<<19) /* b12 */ |
115 | #define M32R_MFTCR_MFT5EN (1UL<<18) /* b13 */ | 119 | #define M32R_MFTCR_MFT5EN (1UL<<18) /* b13 */ |
116 | #else /* not CONFIG_CHIP_M32700 */ | 120 | #else /* not CONFIG_CHIP_M32700 && not CONFIG_CHIP_M32104 */ |
117 | #define M32R_MFTCR_MFT0MSK (1UL<<15) /* b16 */ | 121 | #define M32R_MFTCR_MFT0MSK (1UL<<15) /* b16 */ |
118 | #define M32R_MFTCR_MFT1MSK (1UL<<14) /* b17 */ | 122 | #define M32R_MFTCR_MFT1MSK (1UL<<14) /* b17 */ |
119 | #define M32R_MFTCR_MFT2MSK (1UL<<13) /* b18 */ | 123 | #define M32R_MFTCR_MFT2MSK (1UL<<13) /* b18 */ |
@@ -126,7 +130,7 @@ | |||
126 | #define M32R_MFTCR_MFT3EN (1UL<<4) /* b27 */ | 130 | #define M32R_MFTCR_MFT3EN (1UL<<4) /* b27 */ |
127 | #define M32R_MFTCR_MFT4EN (1UL<<3) /* b28 */ | 131 | #define M32R_MFTCR_MFT4EN (1UL<<3) /* b28 */ |
128 | #define M32R_MFTCR_MFT5EN (1UL<<2) /* b29 */ | 132 | #define M32R_MFTCR_MFT5EN (1UL<<2) /* b29 */ |
129 | #endif /* not CONFIG_CHIP_M32700 */ | 133 | #endif /* not CONFIG_CHIP_M32700 && not CONFIG_CHIP_M32104 */ |
130 | 134 | ||
131 | #define M32R_MFTMOD_CC_MASK (1UL<<15) /* b16 */ | 135 | #define M32R_MFTMOD_CC_MASK (1UL<<15) /* b16 */ |
132 | #define M32R_MFTMOD_TCCR (1UL<<13) /* b18 */ | 136 | #define M32R_MFTMOD_TCCR (1UL<<13) /* b18 */ |
@@ -241,8 +245,24 @@ | |||
241 | #define M32R_IRQ_MFT1 (17) /* MFT1 */ | 245 | #define M32R_IRQ_MFT1 (17) /* MFT1 */ |
242 | #define M32R_IRQ_MFT2 (18) /* MFT2 */ | 246 | #define M32R_IRQ_MFT2 (18) /* MFT2 */ |
243 | #define M32R_IRQ_MFT3 (19) /* MFT3 */ | 247 | #define M32R_IRQ_MFT3 (19) /* MFT3 */ |
244 | #define M32R_IRQ_MFT4 (20) /* MFT4 */ | 248 | #ifdef CONFIG_CHIP_M32104 |
245 | #define M32R_IRQ_MFT5 (21) /* MFT5 */ | 249 | #define M32R_IRQ_MFTX0 (24) /* MFTX0 */ |
250 | #define M32R_IRQ_MFTX1 (25) /* MFTX1 */ | ||
251 | #define M32R_IRQ_DMA0 (32) /* DMA0 */ | ||
252 | #define M32R_IRQ_DMA1 (33) /* DMA1 */ | ||
253 | #define M32R_IRQ_DMA2 (34) /* DMA2 */ | ||
254 | #define M32R_IRQ_DMA3 (35) /* DMA3 */ | ||
255 | #define M32R_IRQ_SIO0_R (40) /* SIO0 send */ | ||
256 | #define M32R_IRQ_SIO0_S (41) /* SIO0 receive */ | ||
257 | #define M32R_IRQ_SIO1_R (42) /* SIO1 send */ | ||
258 | #define M32R_IRQ_SIO1_S (43) /* SIO1 receive */ | ||
259 | #define M32R_IRQ_SIO2_R (44) /* SIO2 send */ | ||
260 | #define M32R_IRQ_SIO2_S (45) /* SIO2 receive */ | ||
261 | #define M32R_IRQ_SIO3_R (46) /* SIO3 send */ | ||
262 | #define M32R_IRQ_SIO3_S (47) /* SIO3 receive */ | ||
263 | #define M32R_IRQ_ADC (56) /* ADC */ | ||
264 | #define M32R_IRQ_PC (57) /* PC */ | ||
265 | #else /* ! M32104 */ | ||
246 | #define M32R_IRQ_DMA0 (32) /* DMA0 */ | 266 | #define M32R_IRQ_DMA0 (32) /* DMA0 */ |
247 | #define M32R_IRQ_DMA1 (33) /* DMA1 */ | 267 | #define M32R_IRQ_DMA1 (33) /* DMA1 */ |
248 | #define M32R_IRQ_SIO0_R (48) /* SIO0 send */ | 268 | #define M32R_IRQ_SIO0_R (48) /* SIO0 send */ |
@@ -255,6 +275,7 @@ | |||
255 | #define M32R_IRQ_SIO3_S (55) /* SIO3 receive */ | 275 | #define M32R_IRQ_SIO3_S (55) /* SIO3 receive */ |
256 | #define M32R_IRQ_SIO4_R (56) /* SIO4 send */ | 276 | #define M32R_IRQ_SIO4_R (56) /* SIO4 send */ |
257 | #define M32R_IRQ_SIO4_S (57) /* SIO4 receive */ | 277 | #define M32R_IRQ_SIO4_S (57) /* SIO4 receive */ |
278 | #endif /* ! M32104 */ | ||
258 | 279 | ||
259 | #ifdef CONFIG_SMP | 280 | #ifdef CONFIG_SMP |
260 | #define M32R_IRQ_IPI0 (56) | 281 | #define M32R_IRQ_IPI0 (56) |
@@ -281,15 +302,12 @@ | |||
281 | #define M32R_FPGA_VERSION0_PORTL (0x30+M32R_FPGA_TOP) | 302 | #define M32R_FPGA_VERSION0_PORTL (0x30+M32R_FPGA_TOP) |
282 | #define M32R_FPGA_VERSION1_PORTL (0x34+M32R_FPGA_TOP) | 303 | #define M32R_FPGA_VERSION1_PORTL (0x34+M32R_FPGA_TOP) |
283 | 304 | ||
305 | #endif /* CONFIG_SMP */ | ||
306 | |||
284 | #ifndef __ASSEMBLY__ | 307 | #ifndef __ASSEMBLY__ |
285 | /* For NETDEV WATCHDOG */ | ||
286 | typedef struct { | 308 | typedef struct { |
287 | unsigned long icucr; /* ICU Control Register */ | 309 | unsigned long icucr; /* ICU Control Register */ |
288 | } icu_data_t; | 310 | } icu_data_t; |
289 | |||
290 | extern icu_data_t icu_data[]; | ||
291 | #endif | 311 | #endif |
292 | 312 | ||
293 | #endif /* CONFIG_SMP */ | ||
294 | |||
295 | #endif /* _M32102_H_ */ | 313 | #endif /* _M32102_H_ */ |
diff --git a/include/asm-m32r/m32104ut/m32104ut_pld.h b/include/asm-m32r/m32104ut/m32104ut_pld.h new file mode 100644 index 000000000000..a4eac20553df --- /dev/null +++ b/include/asm-m32r/m32104ut/m32104ut_pld.h | |||
@@ -0,0 +1,163 @@ | |||
1 | /* | ||
2 | * include/asm/m32104ut/m32104ut_pld.h | ||
3 | * | ||
4 | * Definitions for Programable Logic Device(PLD) on M32104UT board. | ||
5 | * Based on m32700ut_pld.h | ||
6 | * | ||
7 | * Copyright (c) 2002 Takeo Takahashi | ||
8 | * Copyright (c) 2005 Naoto Sugai | ||
9 | * | ||
10 | * This file is subject to the terms and conditions of the GNU General | ||
11 | * Public License. See the file "COPYING" in the main directory of | ||
12 | * this archive for more details. | ||
13 | */ | ||
14 | |||
15 | #ifndef _M32104UT_M32104UT_PLD_H | ||
16 | #define _M32104UT_M32104UT_PLD_H | ||
17 | |||
18 | #include <linux/config.h> | ||
19 | |||
20 | #if defined(CONFIG_PLAT_M32104UT) | ||
21 | #define PLD_PLAT_BASE 0x02c00000 | ||
22 | #else | ||
23 | #error "no platform configuration" | ||
24 | #endif | ||
25 | |||
26 | #ifndef __ASSEMBLY__ | ||
27 | /* | ||
28 | * C functions use non-cache address. | ||
29 | */ | ||
30 | #define PLD_BASE (PLD_PLAT_BASE /* + NONCACHE_OFFSET */) | ||
31 | #define __reg8 (volatile unsigned char *) | ||
32 | #define __reg16 (volatile unsigned short *) | ||
33 | #define __reg32 (volatile unsigned int *) | ||
34 | #else | ||
35 | #define PLD_BASE (PLD_PLAT_BASE + NONCACHE_OFFSET) | ||
36 | #define __reg8 | ||
37 | #define __reg16 | ||
38 | #define __reg32 | ||
39 | #endif /* __ASSEMBLY__ */ | ||
40 | |||
41 | /* CFC */ | ||
42 | #define PLD_CFRSTCR __reg16(PLD_BASE + 0x0000) | ||
43 | #define PLD_CFSTS __reg16(PLD_BASE + 0x0002) | ||
44 | #define PLD_CFIMASK __reg16(PLD_BASE + 0x0004) | ||
45 | #define PLD_CFBUFCR __reg16(PLD_BASE + 0x0006) | ||
46 | |||
47 | /* MMC */ | ||
48 | #define PLD_MMCCR __reg16(PLD_BASE + 0x4000) | ||
49 | #define PLD_MMCMOD __reg16(PLD_BASE + 0x4002) | ||
50 | #define PLD_MMCSTS __reg16(PLD_BASE + 0x4006) | ||
51 | #define PLD_MMCBAUR __reg16(PLD_BASE + 0x400a) | ||
52 | #define PLD_MMCCMDBCUT __reg16(PLD_BASE + 0x400c) | ||
53 | #define PLD_MMCCDTBCUT __reg16(PLD_BASE + 0x400e) | ||
54 | #define PLD_MMCDET __reg16(PLD_BASE + 0x4010) | ||
55 | #define PLD_MMCWP __reg16(PLD_BASE + 0x4012) | ||
56 | #define PLD_MMCWDATA __reg16(PLD_BASE + 0x5000) | ||
57 | #define PLD_MMCRDATA __reg16(PLD_BASE + 0x6000) | ||
58 | #define PLD_MMCCMDDATA __reg16(PLD_BASE + 0x7000) | ||
59 | #define PLD_MMCRSPDATA __reg16(PLD_BASE + 0x7006) | ||
60 | |||
61 | /* ICU | ||
62 | * ICUISTS: status register | ||
63 | * ICUIREQ0: request register | ||
64 | * ICUIREQ1: request register | ||
65 | * ICUCR3: control register for CFIREQ# interrupt | ||
66 | * ICUCR4: control register for CFC Card insert interrupt | ||
67 | * ICUCR5: control register for CFC Card eject interrupt | ||
68 | * ICUCR6: control register for external interrupt | ||
69 | * ICUCR11: control register for MMC Card insert/eject interrupt | ||
70 | * ICUCR13: control register for SC error interrupt | ||
71 | * ICUCR14: control register for SC receive interrupt | ||
72 | * ICUCR15: control register for SC send interrupt | ||
73 | */ | ||
74 | |||
75 | #define PLD_IRQ_INT0 (M32104UT_PLD_IRQ_BASE + 0) /* None */ | ||
76 | #define PLD_IRQ_CFIREQ (M32104UT_PLD_IRQ_BASE + 3) /* CF IREQ */ | ||
77 | #define PLD_IRQ_CFC_INSERT (M32104UT_PLD_IRQ_BASE + 4) /* CF Insert */ | ||
78 | #define PLD_IRQ_CFC_EJECT (M32104UT_PLD_IRQ_BASE + 5) /* CF Eject */ | ||
79 | #define PLD_IRQ_EXINT (M32104UT_PLD_IRQ_BASE + 6) /* EXINT */ | ||
80 | #define PLD_IRQ_MMCCARD (M32104UT_PLD_IRQ_BASE + 11) /* MMC Insert/Eject */ | ||
81 | #define PLD_IRQ_SC_ERROR (M32104UT_PLD_IRQ_BASE + 13) /* SC error */ | ||
82 | #define PLD_IRQ_SC_RCV (M32104UT_PLD_IRQ_BASE + 14) /* SC receive */ | ||
83 | #define PLD_IRQ_SC_SND (M32104UT_PLD_IRQ_BASE + 15) /* SC send */ | ||
84 | |||
85 | #define PLD_ICUISTS __reg16(PLD_BASE + 0x8002) | ||
86 | #define PLD_ICUISTS_VECB_MASK (0xf000) | ||
87 | #define PLD_ICUISTS_VECB(x) ((x) & PLD_ICUISTS_VECB_MASK) | ||
88 | #define PLD_ICUISTS_ISN_MASK (0x07c0) | ||
89 | #define PLD_ICUISTS_ISN(x) ((x) & PLD_ICUISTS_ISN_MASK) | ||
90 | #define PLD_ICUCR3 __reg16(PLD_BASE + 0x8104) | ||
91 | #define PLD_ICUCR4 __reg16(PLD_BASE + 0x8106) | ||
92 | #define PLD_ICUCR5 __reg16(PLD_BASE + 0x8108) | ||
93 | #define PLD_ICUCR6 __reg16(PLD_BASE + 0x810a) | ||
94 | #define PLD_ICUCR11 __reg16(PLD_BASE + 0x8114) | ||
95 | #define PLD_ICUCR13 __reg16(PLD_BASE + 0x8118) | ||
96 | #define PLD_ICUCR14 __reg16(PLD_BASE + 0x811a) | ||
97 | #define PLD_ICUCR15 __reg16(PLD_BASE + 0x811c) | ||
98 | #define PLD_ICUCR_IEN (0x1000) | ||
99 | #define PLD_ICUCR_IREQ (0x0100) | ||
100 | #define PLD_ICUCR_ISMOD00 (0x0000) /* Low edge */ | ||
101 | #define PLD_ICUCR_ISMOD01 (0x0010) /* Low level */ | ||
102 | #define PLD_ICUCR_ISMOD02 (0x0020) /* High edge */ | ||
103 | #define PLD_ICUCR_ISMOD03 (0x0030) /* High level */ | ||
104 | #define PLD_ICUCR_ILEVEL0 (0x0000) | ||
105 | #define PLD_ICUCR_ILEVEL1 (0x0001) | ||
106 | #define PLD_ICUCR_ILEVEL2 (0x0002) | ||
107 | #define PLD_ICUCR_ILEVEL3 (0x0003) | ||
108 | #define PLD_ICUCR_ILEVEL4 (0x0004) | ||
109 | #define PLD_ICUCR_ILEVEL5 (0x0005) | ||
110 | #define PLD_ICUCR_ILEVEL6 (0x0006) | ||
111 | #define PLD_ICUCR_ILEVEL7 (0x0007) | ||
112 | |||
113 | /* Power Control of MMC and CF */ | ||
114 | #define PLD_CPCR __reg16(PLD_BASE + 0x14000) | ||
115 | #define PLD_CPCR_CDP 0x0001 | ||
116 | |||
117 | /* LED Control | ||
118 | * | ||
119 | * 1: DIP swich side | ||
120 | * 2: Reset switch side | ||
121 | */ | ||
122 | #define PLD_IOLEDCR __reg16(PLD_BASE + 0x14002) | ||
123 | #define PLD_IOLED_1_ON 0x001 | ||
124 | #define PLD_IOLED_1_OFF 0x000 | ||
125 | #define PLD_IOLED_2_ON 0x002 | ||
126 | #define PLD_IOLED_2_OFF 0x000 | ||
127 | |||
128 | /* DIP Switch | ||
129 | * 0: Write-protect of Flash Memory (0:protected, 1:non-protected) | ||
130 | * 1: - | ||
131 | * 2: - | ||
132 | * 3: - | ||
133 | */ | ||
134 | #define PLD_IOSWSTS __reg16(PLD_BASE + 0x14004) | ||
135 | #define PLD_IOSWSTS_IOSW2 0x0200 | ||
136 | #define PLD_IOSWSTS_IOSW1 0x0100 | ||
137 | #define PLD_IOSWSTS_IOWP0 0x0001 | ||
138 | |||
139 | /* CRC */ | ||
140 | #define PLD_CRC7DATA __reg16(PLD_BASE + 0x18000) | ||
141 | #define PLD_CRC7INDATA __reg16(PLD_BASE + 0x18002) | ||
142 | #define PLD_CRC16DATA __reg16(PLD_BASE + 0x18004) | ||
143 | #define PLD_CRC16INDATA __reg16(PLD_BASE + 0x18006) | ||
144 | #define PLD_CRC16ADATA __reg16(PLD_BASE + 0x18008) | ||
145 | #define PLD_CRC16AINDATA __reg16(PLD_BASE + 0x1800a) | ||
146 | |||
147 | /* RTC */ | ||
148 | #define PLD_RTCCR __reg16(PLD_BASE + 0x1c000) | ||
149 | #define PLD_RTCBAUR __reg16(PLD_BASE + 0x1c002) | ||
150 | #define PLD_RTCWRDATA __reg16(PLD_BASE + 0x1c004) | ||
151 | #define PLD_RTCRDDATA __reg16(PLD_BASE + 0x1c006) | ||
152 | #define PLD_RTCRSTODT __reg16(PLD_BASE + 0x1c008) | ||
153 | |||
154 | /* SIM Card */ | ||
155 | #define PLD_SCCR __reg16(PLD_BASE + 0x38000) | ||
156 | #define PLD_SCMOD __reg16(PLD_BASE + 0x38004) | ||
157 | #define PLD_SCSTS __reg16(PLD_BASE + 0x38006) | ||
158 | #define PLD_SCINTCR __reg16(PLD_BASE + 0x38008) | ||
159 | #define PLD_SCBAUR __reg16(PLD_BASE + 0x3800a) | ||
160 | #define PLD_SCTXB __reg16(PLD_BASE + 0x3800c) | ||
161 | #define PLD_SCRXB __reg16(PLD_BASE + 0x3800e) | ||
162 | |||
163 | #endif /* _M32104UT_M32104UT_PLD_H */ | ||
diff --git a/include/asm-m32r/m32r.h b/include/asm-m32r/m32r.h index ec142be00862..b133ca61acf1 100644 --- a/include/asm-m32r/m32r.h +++ b/include/asm-m32r/m32r.h | |||
@@ -14,7 +14,7 @@ | |||
14 | #include <asm/m32r_mp_fpga.h> | 14 | #include <asm/m32r_mp_fpga.h> |
15 | #elif defined(CONFIG_CHIP_VDEC2) || defined(CONFIG_CHIP_XNUX2) \ | 15 | #elif defined(CONFIG_CHIP_VDEC2) || defined(CONFIG_CHIP_XNUX2) \ |
16 | || defined(CONFIG_CHIP_M32700) || defined(CONFIG_CHIP_M32102) \ | 16 | || defined(CONFIG_CHIP_M32700) || defined(CONFIG_CHIP_M32102) \ |
17 | || defined(CONFIG_CHIP_OPSP) | 17 | || defined(CONFIG_CHIP_OPSP) || defined(CONFIG_CHIP_M32104) |
18 | #include <asm/m32102.h> | 18 | #include <asm/m32102.h> |
19 | #endif | 19 | #endif |
20 | 20 | ||
@@ -43,6 +43,10 @@ | |||
43 | #include <asm/m32700ut/m32700ut_pld.h> | 43 | #include <asm/m32700ut/m32700ut_pld.h> |
44 | #endif | 44 | #endif |
45 | 45 | ||
46 | #if defined(CONFIG_PLAT_M32104UT) | ||
47 | #include <asm/m32104ut/m32104ut_pld.h> | ||
48 | #endif /* CONFIG_PLAT_M32104 */ | ||
49 | |||
46 | /* | 50 | /* |
47 | * M32R Register | 51 | * M32R Register |
48 | */ | 52 | */ |
@@ -122,7 +126,7 @@ | |||
122 | 126 | ||
123 | #include <asm/page.h> | 127 | #include <asm/page.h> |
124 | #ifdef CONFIG_MMU | 128 | #ifdef CONFIG_MMU |
125 | #define NONCACHE_OFFSET __PAGE_OFFSET+0x20000000 | 129 | #define NONCACHE_OFFSET (__PAGE_OFFSET + 0x20000000) |
126 | #else | 130 | #else |
127 | #define NONCACHE_OFFSET __PAGE_OFFSET | 131 | #define NONCACHE_OFFSET __PAGE_OFFSET |
128 | #endif /* CONFIG_MMU */ | 132 | #endif /* CONFIG_MMU */ |
diff --git a/include/asm-m32r/mman.h b/include/asm-m32r/mman.h index 011f6d9ec5cc..12e29747bc84 100644 --- a/include/asm-m32r/mman.h +++ b/include/asm-m32r/mman.h | |||
@@ -37,6 +37,7 @@ | |||
37 | #define MADV_SEQUENTIAL 0x2 /* read-ahead aggressively */ | 37 | #define MADV_SEQUENTIAL 0x2 /* read-ahead aggressively */ |
38 | #define MADV_WILLNEED 0x3 /* pre-fault pages */ | 38 | #define MADV_WILLNEED 0x3 /* pre-fault pages */ |
39 | #define MADV_DONTNEED 0x4 /* discard these pages */ | 39 | #define MADV_DONTNEED 0x4 /* discard these pages */ |
40 | #define MADV_REMOVE 0x5 /* remove these pages & resources */ | ||
40 | 41 | ||
41 | /* compatibility flags */ | 42 | /* compatibility flags */ |
42 | #define MAP_ANON MAP_ANONYMOUS | 43 | #define MAP_ANON MAP_ANONYMOUS |
diff --git a/include/asm-m32r/mutex.h b/include/asm-m32r/mutex.h new file mode 100644 index 000000000000..458c1f7fbc18 --- /dev/null +++ b/include/asm-m32r/mutex.h | |||
@@ -0,0 +1,9 @@ | |||
1 | /* | ||
2 | * Pull in the generic implementation for the mutex fastpath. | ||
3 | * | ||
4 | * TODO: implement optimized primitives instead, or leave the generic | ||
5 | * implementation in place, or pick the atomic_xchg() based generic | ||
6 | * implementation. (see asm-generic/mutex-xchg.h for details) | ||
7 | */ | ||
8 | |||
9 | #include <asm-generic/mutex-dec.h> | ||
diff --git a/include/asm-m32r/ptrace.h b/include/asm-m32r/ptrace.h index 55cd7ecfde43..0d058b2d844e 100644 --- a/include/asm-m32r/ptrace.h +++ b/include/asm-m32r/ptrace.h | |||
@@ -163,6 +163,9 @@ extern void show_regs(struct pt_regs *); | |||
163 | 163 | ||
164 | extern void withdraw_debug_trap(struct pt_regs *regs); | 164 | extern void withdraw_debug_trap(struct pt_regs *regs); |
165 | 165 | ||
166 | #define task_pt_regs(task) \ | ||
167 | ((struct pt_regs *)(task_stack_page(task) + THREAD_SIZE) - 1) | ||
168 | |||
166 | #endif /* __KERNEL */ | 169 | #endif /* __KERNEL */ |
167 | 170 | ||
168 | #endif /* _ASM_M32R_PTRACE_H */ | 171 | #endif /* _ASM_M32R_PTRACE_H */ |
diff --git a/include/asm-m32r/system.h b/include/asm-m32r/system.h index 5eee832b73a0..06c12a037cba 100644 --- a/include/asm-m32r/system.h +++ b/include/asm-m32r/system.h | |||
@@ -68,13 +68,23 @@ | |||
68 | last = __last; \ | 68 | last = __last; \ |
69 | } while(0) | 69 | } while(0) |
70 | 70 | ||
71 | /* | ||
72 | * On SMP systems, when the scheduler does migration-cost autodetection, | ||
73 | * it needs a way to flush as much of the CPU's caches as possible. | ||
74 | * | ||
75 | * TODO: fill this in! | ||
76 | */ | ||
77 | static inline void sched_cacheflush(void) | ||
78 | { | ||
79 | } | ||
80 | |||
71 | /* Interrupt Control */ | 81 | /* Interrupt Control */ |
72 | #if !defined(CONFIG_CHIP_M32102) | 82 | #if !defined(CONFIG_CHIP_M32102) && !defined(CONFIG_CHIP_M32104) |
73 | #define local_irq_enable() \ | 83 | #define local_irq_enable() \ |
74 | __asm__ __volatile__ ("setpsw #0x40 -> nop": : :"memory") | 84 | __asm__ __volatile__ ("setpsw #0x40 -> nop": : :"memory") |
75 | #define local_irq_disable() \ | 85 | #define local_irq_disable() \ |
76 | __asm__ __volatile__ ("clrpsw #0x40 -> nop": : :"memory") | 86 | __asm__ __volatile__ ("clrpsw #0x40 -> nop": : :"memory") |
77 | #else /* CONFIG_CHIP_M32102 */ | 87 | #else /* CONFIG_CHIP_M32102 || CONFIG_CHIP_M32104 */ |
78 | static inline void local_irq_enable(void) | 88 | static inline void local_irq_enable(void) |
79 | { | 89 | { |
80 | unsigned long tmpreg; | 90 | unsigned long tmpreg; |
@@ -96,7 +106,7 @@ static inline void local_irq_disable(void) | |||
96 | "mvtc %0, psw \n\t" | 106 | "mvtc %0, psw \n\t" |
97 | : "=&r" (tmpreg0), "=&r" (tmpreg1) : : "cbit", "memory"); | 107 | : "=&r" (tmpreg0), "=&r" (tmpreg1) : : "cbit", "memory"); |
98 | } | 108 | } |
99 | #endif /* CONFIG_CHIP_M32102 */ | 109 | #endif /* CONFIG_CHIP_M32102 || CONFIG_CHIP_M32104 */ |
100 | 110 | ||
101 | #define local_save_flags(x) \ | 111 | #define local_save_flags(x) \ |
102 | __asm__ __volatile__("mvfc %0,psw" : "=r"(x) : /* no input */) | 112 | __asm__ __volatile__("mvfc %0,psw" : "=r"(x) : /* no input */) |
@@ -105,13 +115,13 @@ static inline void local_irq_disable(void) | |||
105 | __asm__ __volatile__("mvtc %0,psw" : /* no outputs */ \ | 115 | __asm__ __volatile__("mvtc %0,psw" : /* no outputs */ \ |
106 | : "r" (x) : "cbit", "memory") | 116 | : "r" (x) : "cbit", "memory") |
107 | 117 | ||
108 | #if !defined(CONFIG_CHIP_M32102) | 118 | #if !(defined(CONFIG_CHIP_M32102) || defined(CONFIG_CHIP_M32104)) |
109 | #define local_irq_save(x) \ | 119 | #define local_irq_save(x) \ |
110 | __asm__ __volatile__( \ | 120 | __asm__ __volatile__( \ |
111 | "mvfc %0, psw; \n\t" \ | 121 | "mvfc %0, psw; \n\t" \ |
112 | "clrpsw #0x40 -> nop; \n\t" \ | 122 | "clrpsw #0x40 -> nop; \n\t" \ |
113 | : "=r" (x) : /* no input */ : "memory") | 123 | : "=r" (x) : /* no input */ : "memory") |
114 | #else /* CONFIG_CHIP_M32102 */ | 124 | #else /* CONFIG_CHIP_M32102 || CONFIG_CHIP_M32104 */ |
115 | #define local_irq_save(x) \ | 125 | #define local_irq_save(x) \ |
116 | ({ \ | 126 | ({ \ |
117 | unsigned long tmpreg; \ | 127 | unsigned long tmpreg; \ |
@@ -124,7 +134,7 @@ static inline void local_irq_disable(void) | |||
124 | : "=r" (x), "=&r" (tmpreg) \ | 134 | : "=r" (x), "=&r" (tmpreg) \ |
125 | : : "cbit", "memory"); \ | 135 | : : "cbit", "memory"); \ |
126 | }) | 136 | }) |
127 | #endif /* CONFIG_CHIP_M32102 */ | 137 | #endif /* CONFIG_CHIP_M32102 || CONFIG_CHIP_M32104 */ |
128 | 138 | ||
129 | #define irqs_disabled() \ | 139 | #define irqs_disabled() \ |
130 | ({ \ | 140 | ({ \ |
diff --git a/include/asm-m32r/thread_info.h b/include/asm-m32r/thread_info.h index 0f589363f619..22aff3222d22 100644 --- a/include/asm-m32r/thread_info.h +++ b/include/asm-m32r/thread_info.h | |||
@@ -110,8 +110,6 @@ static inline struct thread_info *current_thread_info(void) | |||
110 | #endif | 110 | #endif |
111 | 111 | ||
112 | #define free_thread_info(info) kfree(info) | 112 | #define free_thread_info(info) kfree(info) |
113 | #define get_thread_info(ti) get_task_struct((ti)->task) | ||
114 | #define put_thread_info(ti) put_task_struct((ti)->task) | ||
115 | 113 | ||
116 | #define TI_FLAG_FAULT_CODE_SHIFT 28 | 114 | #define TI_FLAG_FAULT_CODE_SHIFT 28 |
117 | 115 | ||
diff --git a/include/asm-m32r/unistd.h b/include/asm-m32r/unistd.h index ac399e1f7bc0..39be87ca2a5a 100644 --- a/include/asm-m32r/unistd.h +++ b/include/asm-m32r/unistd.h | |||
@@ -319,7 +319,7 @@ type name(void) \ | |||
319 | register long __scno __asm__ ("r7") = __NR_##name; \ | 319 | register long __scno __asm__ ("r7") = __NR_##name; \ |
320 | register long __res __asm__("r0"); \ | 320 | register long __res __asm__("r0"); \ |
321 | __asm__ __volatile__ (\ | 321 | __asm__ __volatile__ (\ |
322 | "trap #" SYSCALL_VECTOR \ | 322 | "trap #" SYSCALL_VECTOR "|| nop"\ |
323 | : "=r" (__res) \ | 323 | : "=r" (__res) \ |
324 | : "r" (__scno) \ | 324 | : "r" (__scno) \ |
325 | : "memory"); \ | 325 | : "memory"); \ |
@@ -332,7 +332,7 @@ type name(type1 arg1) \ | |||
332 | register long __scno __asm__ ("r7") = __NR_##name; \ | 332 | register long __scno __asm__ ("r7") = __NR_##name; \ |
333 | register long __res __asm__ ("r0") = (long)(arg1); \ | 333 | register long __res __asm__ ("r0") = (long)(arg1); \ |
334 | __asm__ __volatile__ (\ | 334 | __asm__ __volatile__ (\ |
335 | "trap #" SYSCALL_VECTOR \ | 335 | "trap #" SYSCALL_VECTOR "|| nop"\ |
336 | : "=r" (__res) \ | 336 | : "=r" (__res) \ |
337 | : "r" (__scno), "0" (__res) \ | 337 | : "r" (__scno), "0" (__res) \ |
338 | : "memory"); \ | 338 | : "memory"); \ |
@@ -346,7 +346,7 @@ register long __scno __asm__ ("r7") = __NR_##name; \ | |||
346 | register long __arg2 __asm__ ("r1") = (long)(arg2); \ | 346 | register long __arg2 __asm__ ("r1") = (long)(arg2); \ |
347 | register long __res __asm__ ("r0") = (long)(arg1); \ | 347 | register long __res __asm__ ("r0") = (long)(arg1); \ |
348 | __asm__ __volatile__ (\ | 348 | __asm__ __volatile__ (\ |
349 | "trap #" SYSCALL_VECTOR \ | 349 | "trap #" SYSCALL_VECTOR "|| nop"\ |
350 | : "=r" (__res) \ | 350 | : "=r" (__res) \ |
351 | : "r" (__scno), "0" (__res), "r" (__arg2) \ | 351 | : "r" (__scno), "0" (__res), "r" (__arg2) \ |
352 | : "memory"); \ | 352 | : "memory"); \ |
@@ -361,7 +361,7 @@ register long __arg3 __asm__ ("r2") = (long)(arg3); \ | |||
361 | register long __arg2 __asm__ ("r1") = (long)(arg2); \ | 361 | register long __arg2 __asm__ ("r1") = (long)(arg2); \ |
362 | register long __res __asm__ ("r0") = (long)(arg1); \ | 362 | register long __res __asm__ ("r0") = (long)(arg1); \ |
363 | __asm__ __volatile__ (\ | 363 | __asm__ __volatile__ (\ |
364 | "trap #" SYSCALL_VECTOR \ | 364 | "trap #" SYSCALL_VECTOR "|| nop"\ |
365 | : "=r" (__res) \ | 365 | : "=r" (__res) \ |
366 | : "r" (__scno), "0" (__res), "r" (__arg2), \ | 366 | : "r" (__scno), "0" (__res), "r" (__arg2), \ |
367 | "r" (__arg3) \ | 367 | "r" (__arg3) \ |
@@ -378,7 +378,7 @@ register long __arg3 __asm__ ("r2") = (long)(arg3); \ | |||
378 | register long __arg2 __asm__ ("r1") = (long)(arg2); \ | 378 | register long __arg2 __asm__ ("r1") = (long)(arg2); \ |
379 | register long __res __asm__ ("r0") = (long)(arg1); \ | 379 | register long __res __asm__ ("r0") = (long)(arg1); \ |
380 | __asm__ __volatile__ (\ | 380 | __asm__ __volatile__ (\ |
381 | "trap #" SYSCALL_VECTOR \ | 381 | "trap #" SYSCALL_VECTOR "|| nop"\ |
382 | : "=r" (__res) \ | 382 | : "=r" (__res) \ |
383 | : "r" (__scno), "0" (__res), "r" (__arg2), \ | 383 | : "r" (__scno), "0" (__res), "r" (__arg2), \ |
384 | "r" (__arg3), "r" (__arg4) \ | 384 | "r" (__arg3), "r" (__arg4) \ |
@@ -397,7 +397,7 @@ register long __arg3 __asm__ ("r2") = (long)(arg3); \ | |||
397 | register long __arg2 __asm__ ("r1") = (long)(arg2); \ | 397 | register long __arg2 __asm__ ("r1") = (long)(arg2); \ |
398 | register long __res __asm__ ("r0") = (long)(arg1); \ | 398 | register long __res __asm__ ("r0") = (long)(arg1); \ |
399 | __asm__ __volatile__ (\ | 399 | __asm__ __volatile__ (\ |
400 | "trap #" SYSCALL_VECTOR \ | 400 | "trap #" SYSCALL_VECTOR "|| nop"\ |
401 | : "=r" (__res) \ | 401 | : "=r" (__res) \ |
402 | : "r" (__scno), "0" (__res), "r" (__arg2), \ | 402 | : "r" (__scno), "0" (__res), "r" (__arg2), \ |
403 | "r" (__arg3), "r" (__arg4), "r" (__arg5) \ | 403 | "r" (__arg3), "r" (__arg4), "r" (__arg5) \ |