diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-26 15:43:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-26 15:43:07 -0400 |
commit | 3b3dd79d6a8b3debd0291465fc8cd9caf765d545 (patch) | |
tree | f60ac6ac5524d1042881e002bf04246af5c623ad /arch | |
parent | c3ae1f33569e06984f0426a7834ff63251d44d84 (diff) | |
parent | 7832bb5d450aefa45b6dac3b3140eade66bb12ad (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin:
Blackfin: irq: remove IRQF_DISABLED
Blackfin: boards: clean up i2c_board_info
Blackfin: drop unused Kconfig symbol
Blackfin: bf537-stamp: register ASoC EVAL-ADAU1373 board driver
Blackfin: bf537-stamp: Register adav801 codec and ASoC machine driver
Blackfin: bf537-stamp: register adau1701 codec and asoc machine driver
Blackfin: merge asm/mutex.h into kbuild too
Blackfin: bf537-stamp: fix ad73311 codec config macro
Blackfin: bf537-stamp: fix ad1836 name
Blackfin: kgdb_test: rework code to avoid -O0 usage
Blackfin: fix sparse warnings in copy_to/from_user
Blackfin: bf548-ezkit: update defconfig
Blackfin: SMP: fix scheduling deadlock
Blackfin: H8606: fixup bogus ioresource init
Blackfin: SMP: convert to common asm-generic/atomic.h
Diffstat (limited to 'arch')
-rw-r--r-- | arch/blackfin/Kconfig | 4 | ||||
-rw-r--r-- | arch/blackfin/configs/BF548-EZKIT_defconfig | 13 | ||||
-rw-r--r-- | arch/blackfin/include/asm/Kbuild | 1 | ||||
-rw-r--r-- | arch/blackfin/include/asm/atomic.h | 104 | ||||
-rw-r--r-- | arch/blackfin/include/asm/mutex.h | 1 | ||||
-rw-r--r-- | arch/blackfin/include/asm/uaccess.h | 6 | ||||
-rw-r--r-- | arch/blackfin/kernel/Makefile | 2 | ||||
-rw-r--r-- | arch/blackfin/kernel/kgdb_test.c | 3 | ||||
-rw-r--r-- | arch/blackfin/kernel/time-ts.c | 6 | ||||
-rw-r--r-- | arch/blackfin/kernel/time.c | 1 | ||||
-rw-r--r-- | arch/blackfin/mach-bf533/boards/H8606.c | 3 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/cm_bf537e.c | 2 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/cm_bf537u.c | 2 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/stamp.c | 88 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/tcm_bf537.c | 2 | ||||
-rw-r--r-- | arch/blackfin/mach-bf561/boards/cm_bf561.c | 2 | ||||
-rw-r--r-- | arch/blackfin/mach-bf561/smp.c | 2 | ||||
-rw-r--r-- | arch/blackfin/mach-common/smp.c | 7 |
18 files changed, 85 insertions, 164 deletions
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index c7476295de80..abe5a9e85148 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -248,10 +248,6 @@ config HOTPLUG_CPU | |||
248 | depends on SMP && HOTPLUG | 248 | depends on SMP && HOTPLUG |
249 | default y | 249 | default y |
250 | 250 | ||
251 | config HAVE_LEGACY_PER_CPU_AREA | ||
252 | def_bool y | ||
253 | depends on SMP | ||
254 | |||
255 | config BF_REV_MIN | 251 | config BF_REV_MIN |
256 | int | 252 | int |
257 | default 0 if (BF51x || BF52x || (BF54x && !BF54xM)) | 253 | default 0 if (BF51x || BF52x || (BF54x && !BF54xM)) |
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig index 56151b5dbc44..0e6d841b5d01 100644 --- a/arch/blackfin/configs/BF548-EZKIT_defconfig +++ b/arch/blackfin/configs/BF548-EZKIT_defconfig | |||
@@ -4,7 +4,6 @@ CONFIG_IKCONFIG=y | |||
4 | CONFIG_IKCONFIG_PROC=y | 4 | CONFIG_IKCONFIG_PROC=y |
5 | CONFIG_LOG_BUF_SHIFT=14 | 5 | CONFIG_LOG_BUF_SHIFT=14 |
6 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
7 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
8 | CONFIG_EXPERT=y | 7 | CONFIG_EXPERT=y |
9 | # CONFIG_SYSCTL_SYSCALL is not set | 8 | # CONFIG_SYSCTL_SYSCALL is not set |
10 | # CONFIG_ELF_CORE is not set | 9 | # CONFIG_ELF_CORE is not set |
@@ -40,7 +39,6 @@ CONFIG_EBIU_MODEVAL=0x1 | |||
40 | CONFIG_EBIU_FCTLVAL=0x6 | 39 | CONFIG_EBIU_FCTLVAL=0x6 |
41 | CONFIG_BINFMT_FLAT=y | 40 | CONFIG_BINFMT_FLAT=y |
42 | CONFIG_BINFMT_ZFLAT=y | 41 | CONFIG_BINFMT_ZFLAT=y |
43 | CONFIG_PM=y | ||
44 | CONFIG_NET=y | 42 | CONFIG_NET=y |
45 | CONFIG_PACKET=y | 43 | CONFIG_PACKET=y |
46 | CONFIG_UNIX=y | 44 | CONFIG_UNIX=y |
@@ -55,7 +53,6 @@ CONFIG_IP_PNP=y | |||
55 | CONFIG_CAN=m | 53 | CONFIG_CAN=m |
56 | CONFIG_CAN_RAW=m | 54 | CONFIG_CAN_RAW=m |
57 | CONFIG_CAN_BCM=m | 55 | CONFIG_CAN_BCM=m |
58 | CONFIG_CAN_DEV=m | ||
59 | CONFIG_CAN_BFIN=m | 56 | CONFIG_CAN_BFIN=m |
60 | CONFIG_IRDA=m | 57 | CONFIG_IRDA=m |
61 | CONFIG_IRLAN=m | 58 | CONFIG_IRLAN=m |
@@ -67,7 +64,6 @@ CONFIG_BFIN_SIR3=y | |||
67 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 64 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
68 | CONFIG_FW_LOADER=m | 65 | CONFIG_FW_LOADER=m |
69 | CONFIG_MTD=y | 66 | CONFIG_MTD=y |
70 | CONFIG_MTD_PARTITIONS=y | ||
71 | CONFIG_MTD_CMDLINE_PARTS=y | 67 | CONFIG_MTD_CMDLINE_PARTS=y |
72 | CONFIG_MTD_CHAR=y | 68 | CONFIG_MTD_CHAR=y |
73 | CONFIG_MTD_BLOCK=y | 69 | CONFIG_MTD_BLOCK=y |
@@ -105,12 +101,12 @@ CONFIG_INPUT_TOUCHSCREEN=y | |||
105 | CONFIG_TOUCHSCREEN_AD7877=m | 101 | CONFIG_TOUCHSCREEN_AD7877=m |
106 | CONFIG_INPUT_MISC=y | 102 | CONFIG_INPUT_MISC=y |
107 | # CONFIG_SERIO is not set | 103 | # CONFIG_SERIO is not set |
108 | # CONFIG_DEVKMEM is not set | 104 | # CONFIG_LEGACY_PTYS is not set |
109 | CONFIG_BFIN_JTAG_COMM=m | 105 | CONFIG_BFIN_JTAG_COMM=m |
106 | # CONFIG_DEVKMEM is not set | ||
110 | CONFIG_SERIAL_BFIN=y | 107 | CONFIG_SERIAL_BFIN=y |
111 | CONFIG_SERIAL_BFIN_CONSOLE=y | 108 | CONFIG_SERIAL_BFIN_CONSOLE=y |
112 | CONFIG_SERIAL_BFIN_UART1=y | 109 | CONFIG_SERIAL_BFIN_UART1=y |
113 | # CONFIG_LEGACY_PTYS is not set | ||
114 | # CONFIG_HW_RANDOM is not set | 110 | # CONFIG_HW_RANDOM is not set |
115 | CONFIG_I2C=y | 111 | CONFIG_I2C=y |
116 | CONFIG_I2C_CHARDEV=y | 112 | CONFIG_I2C_CHARDEV=y |
@@ -163,6 +159,7 @@ CONFIG_USB_DEVICEFS=y | |||
163 | CONFIG_USB_OTG_BLACKLIST_HUB=y | 159 | CONFIG_USB_OTG_BLACKLIST_HUB=y |
164 | CONFIG_USB_MON=y | 160 | CONFIG_USB_MON=y |
165 | CONFIG_USB_MUSB_HDRC=y | 161 | CONFIG_USB_MUSB_HDRC=y |
162 | CONFIG_USB_MUSB_BLACKFIN=y | ||
166 | CONFIG_USB_STORAGE=y | 163 | CONFIG_USB_STORAGE=y |
167 | CONFIG_MMC=y | 164 | CONFIG_MMC=y |
168 | CONFIG_MMC_BLOCK=m | 165 | CONFIG_MMC_BLOCK=m |
@@ -185,8 +182,6 @@ CONFIG_NFS_FS=m | |||
185 | CONFIG_NFS_V3=y | 182 | CONFIG_NFS_V3=y |
186 | CONFIG_NFSD=m | 183 | CONFIG_NFSD=m |
187 | CONFIG_NFSD_V3=y | 184 | CONFIG_NFSD_V3=y |
188 | CONFIG_SMB_FS=m | ||
189 | CONFIG_SMB_NLS_DEFAULT=y | ||
190 | CONFIG_CIFS=y | 185 | CONFIG_CIFS=y |
191 | CONFIG_NLS_CODEPAGE_437=m | 186 | CONFIG_NLS_CODEPAGE_437=m |
192 | CONFIG_NLS_CODEPAGE_936=m | 187 | CONFIG_NLS_CODEPAGE_936=m |
@@ -196,7 +191,6 @@ CONFIG_DEBUG_KERNEL=y | |||
196 | CONFIG_DEBUG_SHIRQ=y | 191 | CONFIG_DEBUG_SHIRQ=y |
197 | CONFIG_DETECT_HUNG_TASK=y | 192 | CONFIG_DETECT_HUNG_TASK=y |
198 | CONFIG_DEBUG_INFO=y | 193 | CONFIG_DEBUG_INFO=y |
199 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
200 | # CONFIG_FTRACE is not set | 194 | # CONFIG_FTRACE is not set |
201 | CONFIG_DEBUG_MMRS=y | 195 | CONFIG_DEBUG_MMRS=y |
202 | CONFIG_DEBUG_HWERR=y | 196 | CONFIG_DEBUG_HWERR=y |
@@ -206,5 +200,4 @@ CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y | |||
206 | CONFIG_EARLY_PRINTK=y | 200 | CONFIG_EARLY_PRINTK=y |
207 | CONFIG_CPLB_INFO=y | 201 | CONFIG_CPLB_INFO=y |
208 | CONFIG_BFIN_PSEUDODBG_INSNS=y | 202 | CONFIG_BFIN_PSEUDODBG_INSNS=y |
209 | CONFIG_CRYPTO=y | ||
210 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 203 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
diff --git a/arch/blackfin/include/asm/Kbuild b/arch/blackfin/include/asm/Kbuild index 7a075eaf6041..5a0625aad6a0 100644 --- a/arch/blackfin/include/asm/Kbuild +++ b/arch/blackfin/include/asm/Kbuild | |||
@@ -21,6 +21,7 @@ generic-y += local64.h | |||
21 | generic-y += local.h | 21 | generic-y += local.h |
22 | generic-y += mman.h | 22 | generic-y += mman.h |
23 | generic-y += msgbuf.h | 23 | generic-y += msgbuf.h |
24 | generic-y += mutex.h | ||
24 | generic-y += param.h | 25 | generic-y += param.h |
25 | generic-y += percpu.h | 26 | generic-y += percpu.h |
26 | generic-y += pgalloc.h | 27 | generic-y += pgalloc.h |
diff --git a/arch/blackfin/include/asm/atomic.h b/arch/blackfin/include/asm/atomic.h index 135225696fd2..54c6e2887e9f 100644 --- a/arch/blackfin/include/asm/atomic.h +++ b/arch/blackfin/include/asm/atomic.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright 2004-2009 Analog Devices Inc. | 2 | * Copyright 2004-2011 Analog Devices Inc. |
3 | * | 3 | * |
4 | * Licensed under the GPL-2 or later. | 4 | * Licensed under the GPL-2 or later. |
5 | */ | 5 | */ |
@@ -7,111 +7,27 @@ | |||
7 | #ifndef __ARCH_BLACKFIN_ATOMIC__ | 7 | #ifndef __ARCH_BLACKFIN_ATOMIC__ |
8 | #define __ARCH_BLACKFIN_ATOMIC__ | 8 | #define __ARCH_BLACKFIN_ATOMIC__ |
9 | 9 | ||
10 | #ifndef CONFIG_SMP | 10 | #ifdef CONFIG_SMP |
11 | # include <asm-generic/atomic.h> | ||
12 | #else | ||
13 | 11 | ||
14 | #include <linux/types.h> | 12 | #include <linux/linkage.h> |
15 | #include <asm/system.h> /* local_irq_XXX() */ | ||
16 | |||
17 | /* | ||
18 | * Atomic operations that C can't guarantee us. Useful for | ||
19 | * resource counting etc.. | ||
20 | */ | ||
21 | |||
22 | #define ATOMIC_INIT(i) { (i) } | ||
23 | #define atomic_set(v, i) (((v)->counter) = i) | ||
24 | |||
25 | #define atomic_read(v) __raw_uncached_fetch_asm(&(v)->counter) | ||
26 | 13 | ||
27 | asmlinkage int __raw_uncached_fetch_asm(const volatile int *ptr); | 14 | asmlinkage int __raw_uncached_fetch_asm(const volatile int *ptr); |
28 | |||
29 | asmlinkage int __raw_atomic_update_asm(volatile int *ptr, int value); | 15 | asmlinkage int __raw_atomic_update_asm(volatile int *ptr, int value); |
30 | |||
31 | asmlinkage int __raw_atomic_clear_asm(volatile int *ptr, int value); | 16 | asmlinkage int __raw_atomic_clear_asm(volatile int *ptr, int value); |
32 | |||
33 | asmlinkage int __raw_atomic_set_asm(volatile int *ptr, int value); | 17 | asmlinkage int __raw_atomic_set_asm(volatile int *ptr, int value); |
34 | |||
35 | asmlinkage int __raw_atomic_xor_asm(volatile int *ptr, int value); | 18 | asmlinkage int __raw_atomic_xor_asm(volatile int *ptr, int value); |
36 | |||
37 | asmlinkage int __raw_atomic_test_asm(const volatile int *ptr, int value); | 19 | asmlinkage int __raw_atomic_test_asm(const volatile int *ptr, int value); |
38 | 20 | ||
39 | static inline void atomic_add(int i, atomic_t *v) | 21 | #define atomic_read(v) __raw_uncached_fetch_asm(&(v)->counter) |
40 | { | ||
41 | __raw_atomic_update_asm(&v->counter, i); | ||
42 | } | ||
43 | |||
44 | static inline void atomic_sub(int i, atomic_t *v) | ||
45 | { | ||
46 | __raw_atomic_update_asm(&v->counter, -i); | ||
47 | } | ||
48 | |||
49 | static inline int atomic_add_return(int i, atomic_t *v) | ||
50 | { | ||
51 | return __raw_atomic_update_asm(&v->counter, i); | ||
52 | } | ||
53 | |||
54 | static inline int atomic_sub_return(int i, atomic_t *v) | ||
55 | { | ||
56 | return __raw_atomic_update_asm(&v->counter, -i); | ||
57 | } | ||
58 | 22 | ||
59 | static inline void atomic_inc(volatile atomic_t *v) | 23 | #define atomic_add_return(i, v) __raw_atomic_update_asm(&(v)->counter, i) |
60 | { | 24 | #define atomic_sub_return(i, v) __raw_atomic_update_asm(&(v)->counter, -(i)) |
61 | __raw_atomic_update_asm(&v->counter, 1); | ||
62 | } | ||
63 | |||
64 | static inline void atomic_dec(volatile atomic_t *v) | ||
65 | { | ||
66 | __raw_atomic_update_asm(&v->counter, -1); | ||
67 | } | ||
68 | |||
69 | static inline void atomic_clear_mask(int mask, atomic_t *v) | ||
70 | { | ||
71 | __raw_atomic_clear_asm(&v->counter, mask); | ||
72 | } | ||
73 | |||
74 | static inline void atomic_set_mask(int mask, atomic_t *v) | ||
75 | { | ||
76 | __raw_atomic_set_asm(&v->counter, mask); | ||
77 | } | ||
78 | |||
79 | /* Atomic operations are already serializing */ | ||
80 | #define smp_mb__before_atomic_dec() barrier() | ||
81 | #define smp_mb__after_atomic_dec() barrier() | ||
82 | #define smp_mb__before_atomic_inc() barrier() | ||
83 | #define smp_mb__after_atomic_inc() barrier() | ||
84 | |||
85 | #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) | ||
86 | #define atomic_dec_return(v) atomic_sub_return(1,(v)) | ||
87 | #define atomic_inc_return(v) atomic_add_return(1,(v)) | ||
88 | |||
89 | #define atomic_cmpxchg(v, o, n) ((int)cmpxchg(&((v)->counter), (o), (n))) | ||
90 | #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) | ||
91 | |||
92 | #define __atomic_add_unless(v, a, u) \ | ||
93 | ({ \ | ||
94 | int c, old; \ | ||
95 | c = atomic_read(v); \ | ||
96 | while (c != (u) && (old = atomic_cmpxchg((v), c, c + (a))) != c) \ | ||
97 | c = old; \ | ||
98 | c; \ | ||
99 | }) | ||
100 | |||
101 | /* | ||
102 | * atomic_inc_and_test - increment and test | ||
103 | * @v: pointer of type atomic_t | ||
104 | * | ||
105 | * Atomically increments @v by 1 | ||
106 | * and returns true if the result is zero, or false for all | ||
107 | * other cases. | ||
108 | */ | ||
109 | #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0) | ||
110 | |||
111 | #define atomic_sub_and_test(i,v) (atomic_sub_return((i), (v)) == 0) | ||
112 | #define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) | ||
113 | 25 | ||
26 | #define atomic_clear_mask(m, v) __raw_atomic_clear_asm(&(v)->counter, m) | ||
27 | #define atomic_set_mask(m, v) __raw_atomic_set_asm(&(v)->counter, m) | ||
114 | 28 | ||
115 | #endif | 29 | #endif |
116 | 30 | ||
31 | #include <asm-generic/atomic.h> | ||
32 | |||
117 | #endif | 33 | #endif |
diff --git a/arch/blackfin/include/asm/mutex.h b/arch/blackfin/include/asm/mutex.h deleted file mode 100644 index ff6101aa2c71..000000000000 --- a/arch/blackfin/include/asm/mutex.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/mutex-dec.h> | ||
diff --git a/arch/blackfin/include/asm/uaccess.h b/arch/blackfin/include/asm/uaccess.h index 1c0d190adaef..5cc111502822 100644 --- a/arch/blackfin/include/asm/uaccess.h +++ b/arch/blackfin/include/asm/uaccess.h | |||
@@ -195,17 +195,17 @@ static inline unsigned long __must_check | |||
195 | copy_from_user(void *to, const void __user *from, unsigned long n) | 195 | copy_from_user(void *to, const void __user *from, unsigned long n) |
196 | { | 196 | { |
197 | if (access_ok(VERIFY_READ, from, n)) | 197 | if (access_ok(VERIFY_READ, from, n)) |
198 | memcpy(to, from, n); | 198 | memcpy(to, (const void __force *)from, n); |
199 | else | 199 | else |
200 | return n; | 200 | return n; |
201 | return 0; | 201 | return 0; |
202 | } | 202 | } |
203 | 203 | ||
204 | static inline unsigned long __must_check | 204 | static inline unsigned long __must_check |
205 | copy_to_user(void *to, const void __user *from, unsigned long n) | 205 | copy_to_user(void __user *to, const void *from, unsigned long n) |
206 | { | 206 | { |
207 | if (access_ok(VERIFY_WRITE, to, n)) | 207 | if (access_ok(VERIFY_WRITE, to, n)) |
208 | memcpy(to, from, n); | 208 | memcpy((void __force *)to, from, n); |
209 | else | 209 | else |
210 | return n; | 210 | return n; |
211 | return 0; | 211 | return 0; |
diff --git a/arch/blackfin/kernel/Makefile b/arch/blackfin/kernel/Makefile index b7bdc42fe1a3..1f88edd4572a 100644 --- a/arch/blackfin/kernel/Makefile +++ b/arch/blackfin/kernel/Makefile | |||
@@ -38,6 +38,6 @@ obj-$(CONFIG_PERF_EVENTS) += perf_event.o | |||
38 | 38 | ||
39 | # the kgdb test puts code into L2 and without linker | 39 | # the kgdb test puts code into L2 and without linker |
40 | # relaxation, we need to force long calls to/from it | 40 | # relaxation, we need to force long calls to/from it |
41 | CFLAGS_kgdb_test.o := -mlong-calls -O0 | 41 | CFLAGS_kgdb_test.o := -mlong-calls |
42 | 42 | ||
43 | obj-$(CONFIG_DEBUG_MMRS) += debug-mmrs.o | 43 | obj-$(CONFIG_DEBUG_MMRS) += debug-mmrs.o |
diff --git a/arch/blackfin/kernel/kgdb_test.c b/arch/blackfin/kernel/kgdb_test.c index 2a6e9dbb62a5..4a7dcfea98af 100644 --- a/arch/blackfin/kernel/kgdb_test.c +++ b/arch/blackfin/kernel/kgdb_test.c | |||
@@ -50,8 +50,7 @@ void kgdb_l2_test(void) | |||
50 | 50 | ||
51 | #endif | 51 | #endif |
52 | 52 | ||
53 | 53 | noinline int kgdb_test(char *name, int len, int count, int z) | |
54 | int kgdb_test(char *name, int len, int count, int z) | ||
55 | { | 54 | { |
56 | pr_alert("kgdb name(%d): %s, %d, %d\n", len, name, count, z); | 55 | pr_alert("kgdb name(%d): %s, %d, %d\n", len, name, count, z); |
57 | count = z; | 56 | count = z; |
diff --git a/arch/blackfin/kernel/time-ts.c b/arch/blackfin/kernel/time-ts.c index 9e9b60d969dc..1bcf3a3c57d8 100644 --- a/arch/blackfin/kernel/time-ts.c +++ b/arch/blackfin/kernel/time-ts.c | |||
@@ -188,8 +188,7 @@ irqreturn_t bfin_gptmr0_interrupt(int irq, void *dev_id) | |||
188 | 188 | ||
189 | static struct irqaction gptmr0_irq = { | 189 | static struct irqaction gptmr0_irq = { |
190 | .name = "Blackfin GPTimer0", | 190 | .name = "Blackfin GPTimer0", |
191 | .flags = IRQF_DISABLED | IRQF_TIMER | \ | 191 | .flags = IRQF_TIMER | IRQF_IRQPOLL | IRQF_PERCPU, |
192 | IRQF_IRQPOLL | IRQF_PERCPU, | ||
193 | .handler = bfin_gptmr0_interrupt, | 192 | .handler = bfin_gptmr0_interrupt, |
194 | }; | 193 | }; |
195 | 194 | ||
@@ -297,8 +296,7 @@ irqreturn_t bfin_coretmr_interrupt(int irq, void *dev_id) | |||
297 | 296 | ||
298 | static struct irqaction coretmr_irq = { | 297 | static struct irqaction coretmr_irq = { |
299 | .name = "Blackfin CoreTimer", | 298 | .name = "Blackfin CoreTimer", |
300 | .flags = IRQF_DISABLED | IRQF_TIMER | \ | 299 | .flags = IRQF_TIMER | IRQF_IRQPOLL | IRQF_PERCPU, |
301 | IRQF_IRQPOLL | IRQF_PERCPU, | ||
302 | .handler = bfin_coretmr_interrupt, | 300 | .handler = bfin_coretmr_interrupt, |
303 | }; | 301 | }; |
304 | 302 | ||
diff --git a/arch/blackfin/kernel/time.c b/arch/blackfin/kernel/time.c index ceb2bf63dfe2..2310b249675f 100644 --- a/arch/blackfin/kernel/time.c +++ b/arch/blackfin/kernel/time.c | |||
@@ -25,7 +25,6 @@ | |||
25 | 25 | ||
26 | static struct irqaction bfin_timer_irq = { | 26 | static struct irqaction bfin_timer_irq = { |
27 | .name = "Blackfin Timer Tick", | 27 | .name = "Blackfin Timer Tick", |
28 | .flags = IRQF_DISABLED | ||
29 | }; | 28 | }; |
30 | 29 | ||
31 | #if defined(CONFIG_IPIPE) | 30 | #if defined(CONFIG_IPIPE) |
diff --git a/arch/blackfin/mach-bf533/boards/H8606.c b/arch/blackfin/mach-bf533/boards/H8606.c index eb325ed6607e..5da5787fc4ef 100644 --- a/arch/blackfin/mach-bf533/boards/H8606.c +++ b/arch/blackfin/mach-bf533/boards/H8606.c | |||
@@ -54,7 +54,8 @@ static struct resource dm9000_resources[] = { | |||
54 | [2] = { | 54 | [2] = { |
55 | .start = IRQ_PF10, | 55 | .start = IRQ_PF10, |
56 | .end = IRQ_PF10, | 56 | .end = IRQ_PF10, |
57 | .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE | IRQF_SHARED | IRQF_TRIGGER_HIGH), | 57 | .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE | |
58 | IORESOURCE_IRQ_SHAREABLE), | ||
58 | }, | 59 | }, |
59 | }; | 60 | }; |
60 | 61 | ||
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537e.c b/arch/blackfin/mach-bf537/boards/cm_bf537e.c index 44fd8409db10..9fb20d6d8f91 100644 --- a/arch/blackfin/mach-bf537/boards/cm_bf537e.c +++ b/arch/blackfin/mach-bf537/boards/cm_bf537e.c | |||
@@ -605,7 +605,7 @@ static struct platform_device bfin_mac_device = { | |||
605 | 605 | ||
606 | static struct pata_platform_info bfin_pata_platform_data = { | 606 | static struct pata_platform_info bfin_pata_platform_data = { |
607 | .ioport_shift = 2, | 607 | .ioport_shift = 2, |
608 | .irq_type = IRQF_TRIGGER_HIGH | IRQF_DISABLED, | 608 | .irq_type = IRQF_TRIGGER_HIGH, |
609 | }; | 609 | }; |
610 | 610 | ||
611 | static struct resource bfin_pata_resources[] = { | 611 | static struct resource bfin_pata_resources[] = { |
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537u.c b/arch/blackfin/mach-bf537/boards/cm_bf537u.c index 1b4ac5c64aae..5ba389fc61ae 100644 --- a/arch/blackfin/mach-bf537/boards/cm_bf537u.c +++ b/arch/blackfin/mach-bf537/boards/cm_bf537u.c | |||
@@ -570,7 +570,7 @@ static struct platform_device bfin_mac_device = { | |||
570 | 570 | ||
571 | static struct pata_platform_info bfin_pata_platform_data = { | 571 | static struct pata_platform_info bfin_pata_platform_data = { |
572 | .ioport_shift = 2, | 572 | .ioport_shift = 2, |
573 | .irq_type = IRQF_TRIGGER_HIGH | IRQF_DISABLED, | 573 | .irq_type = IRQF_TRIGGER_HIGH, |
574 | }; | 574 | }; |
575 | 575 | ||
576 | static struct resource bfin_pata_resources[] = { | 576 | static struct resource bfin_pata_resources[] = { |
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index b52e6728f64f..6c916a67ef68 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c | |||
@@ -962,10 +962,10 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
962 | }, | 962 | }, |
963 | #endif | 963 | #endif |
964 | 964 | ||
965 | #if defined(CONFIG_SND_BF5XX_SOC_AD183X) \ | 965 | #if defined(CONFIG_SND_BF5XX_SOC_AD1836) \ |
966 | || defined(CONFIG_SND_BF5XX_SOC_AD183X_MODULE) | 966 | || defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE) |
967 | { | 967 | { |
968 | .modalias = "ad183x", | 968 | .modalias = "ad1836", |
969 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ | 969 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ |
970 | .bus_num = 0, | 970 | .bus_num = 0, |
971 | .chip_select = 4, | 971 | .chip_select = 4, |
@@ -984,9 +984,9 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
984 | }, | 984 | }, |
985 | #endif | 985 | #endif |
986 | 986 | ||
987 | #if defined(CONFIG_SND_BF5XX_SOC_ADAV80X) || defined(CONFIG_SND_BF5XX_SOC_ADAV80X_MODULE) | 987 | #if defined(CONFIG_SND_SOC_ADAV80X) || defined(CONFIG_SND_SOC_ADV80X_MODULE) |
988 | { | 988 | { |
989 | .modalias = "adav80x", | 989 | .modalias = "adav801", |
990 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ | 990 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ |
991 | .bus_num = 0, | 991 | .bus_num = 0, |
992 | .chip_select = 1, | 992 | .chip_select = 1, |
@@ -2101,7 +2101,7 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | |||
2101 | }, | 2101 | }, |
2102 | #endif | 2102 | #endif |
2103 | 2103 | ||
2104 | #if defined(CONFIG_SND_BF5XX_SOC_ADAV80X) || defined(CONFIG_SND_BF5XX_SOC_ADAV80X_MODULE) | 2104 | #if defined(CONFIG_SND_SOC_ADAV80X) || defined(CONFIG_SND_SOC_ADAV80X_MODULE) |
2105 | { | 2105 | { |
2106 | I2C_BOARD_INFO("adav803", 0x10), | 2106 | I2C_BOARD_INFO("adav803", 0x10), |
2107 | }, | 2107 | }, |
@@ -2134,23 +2134,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | |||
2134 | }, | 2134 | }, |
2135 | #endif | 2135 | #endif |
2136 | 2136 | ||
2137 | #if defined(CONFIG_AD7414) || defined(CONFIG_AD7414_MODULE) | ||
2138 | { | ||
2139 | I2C_BOARD_INFO("ad7414", 0x9), | ||
2140 | .irq = IRQ_PG5, | ||
2141 | .irq_flags = IRQF_TRIGGER_LOW, | ||
2142 | }, | ||
2143 | #endif | ||
2144 | |||
2145 | #if defined(CONFIG_AD7416) || defined(CONFIG_AD7416_MODULE) | ||
2146 | { | ||
2147 | I2C_BOARD_INFO("ad7417", 0xb), | ||
2148 | .irq = IRQ_PG5, | ||
2149 | .irq_flags = IRQF_TRIGGER_LOW, | ||
2150 | .platform_data = (void *)GPIO_PF4, | ||
2151 | }, | ||
2152 | #endif | ||
2153 | |||
2154 | #if defined(CONFIG_ADE7854_I2C) || defined(CONFIG_ADE7854_I2C_MODULE) | 2137 | #if defined(CONFIG_ADE7854_I2C) || defined(CONFIG_ADE7854_I2C_MODULE) |
2155 | { | 2138 | { |
2156 | I2C_BOARD_INFO("ade7854", 0x38), | 2139 | I2C_BOARD_INFO("ade7854", 0x38), |
@@ -2161,15 +2144,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | |||
2161 | { | 2144 | { |
2162 | I2C_BOARD_INFO("adt75", 0x9), | 2145 | I2C_BOARD_INFO("adt75", 0x9), |
2163 | .irq = IRQ_PG5, | 2146 | .irq = IRQ_PG5, |
2164 | .irq_flags = IRQF_TRIGGER_LOW, | ||
2165 | }, | ||
2166 | #endif | ||
2167 | |||
2168 | #if defined(CONFIG_ADT7408) || defined(CONFIG_ADT7408_MODULE) | ||
2169 | { | ||
2170 | I2C_BOARD_INFO("adt7408", 0x18), | ||
2171 | .irq = IRQ_PG5, | ||
2172 | .irq_flags = IRQF_TRIGGER_LOW, | ||
2173 | }, | 2147 | }, |
2174 | #endif | 2148 | #endif |
2175 | 2149 | ||
@@ -2178,7 +2152,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | |||
2178 | I2C_BOARD_INFO("adt7410", 0x48), | 2152 | I2C_BOARD_INFO("adt7410", 0x48), |
2179 | /* CT critical temperature event. line 0 */ | 2153 | /* CT critical temperature event. line 0 */ |
2180 | .irq = IRQ_PG5, | 2154 | .irq = IRQ_PG5, |
2181 | .irq_flags = IRQF_TRIGGER_LOW, | ||
2182 | .platform_data = (void *)&adt7410_platform_data, | 2155 | .platform_data = (void *)&adt7410_platform_data, |
2183 | }, | 2156 | }, |
2184 | #endif | 2157 | #endif |
@@ -2187,7 +2160,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | |||
2187 | { | 2160 | { |
2188 | I2C_BOARD_INFO("ad7291", 0x20), | 2161 | I2C_BOARD_INFO("ad7291", 0x20), |
2189 | .irq = IRQ_PG5, | 2162 | .irq = IRQ_PG5, |
2190 | .irq_flags = IRQF_TRIGGER_LOW, | ||
2191 | }, | 2163 | }, |
2192 | #endif | 2164 | #endif |
2193 | 2165 | ||
@@ -2275,6 +2247,11 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | |||
2275 | I2C_BOARD_INFO("adau1361", 0x38), | 2247 | I2C_BOARD_INFO("adau1361", 0x38), |
2276 | }, | 2248 | }, |
2277 | #endif | 2249 | #endif |
2250 | #if defined(CONFIG_SND_SOC_ADAU1701) || defined(CONFIG_SND_SOC_ADAU1701_MODULE) | ||
2251 | { | ||
2252 | I2C_BOARD_INFO("adau1701", 0x34), | ||
2253 | }, | ||
2254 | #endif | ||
2278 | #if defined(CONFIG_AD525X_DPOT) || defined(CONFIG_AD525X_DPOT_MODULE) | 2255 | #if defined(CONFIG_AD525X_DPOT) || defined(CONFIG_AD525X_DPOT_MODULE) |
2279 | { | 2256 | { |
2280 | I2C_BOARD_INFO("ad5258", 0x18), | 2257 | I2C_BOARD_INFO("ad5258", 0x18), |
@@ -2388,7 +2365,7 @@ static struct platform_device bfin_sport1_uart_device = { | |||
2388 | #define PATA_INT IRQ_PF5 | 2365 | #define PATA_INT IRQ_PF5 |
2389 | static struct pata_platform_info bfin_pata_platform_data = { | 2366 | static struct pata_platform_info bfin_pata_platform_data = { |
2390 | .ioport_shift = 1, | 2367 | .ioport_shift = 1, |
2391 | .irq_flags = IRQF_TRIGGER_HIGH | IRQF_DISABLED, | 2368 | .irq_flags = IRQF_TRIGGER_HIGH, |
2392 | }; | 2369 | }; |
2393 | 2370 | ||
2394 | static struct resource bfin_pata_resources[] = { | 2371 | static struct resource bfin_pata_resources[] = { |
@@ -2540,13 +2517,21 @@ static struct platform_device bfin_ac97_pcm = { | |||
2540 | }; | 2517 | }; |
2541 | #endif | 2518 | #endif |
2542 | 2519 | ||
2543 | #if defined(CONFIG_SND_BF5XX_SOC_AD73311) || defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE) | 2520 | #if defined(CONFIG_SND_SOC_AD73311) || defined(CONFIG_SND_SOC_AD73311_MODULE) |
2544 | static struct platform_device bfin_ad73311_codec_device = { | 2521 | static struct platform_device bfin_ad73311_codec_device = { |
2545 | .name = "ad73311", | 2522 | .name = "ad73311", |
2546 | .id = -1, | 2523 | .id = -1, |
2547 | }; | 2524 | }; |
2548 | #endif | 2525 | #endif |
2549 | 2526 | ||
2527 | #if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X) || \ | ||
2528 | defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X_MODULE) | ||
2529 | static struct platform_device bfin_eval_adav801_device = { | ||
2530 | .name = "bfin-eval-adav801", | ||
2531 | .id = -1, | ||
2532 | }; | ||
2533 | #endif | ||
2534 | |||
2550 | #if defined(CONFIG_SND_BF5XX_SOC_I2S) || defined(CONFIG_SND_BF5XX_SOC_I2S_MODULE) | 2535 | #if defined(CONFIG_SND_BF5XX_SOC_I2S) || defined(CONFIG_SND_BF5XX_SOC_I2S_MODULE) |
2551 | static struct platform_device bfin_i2s = { | 2536 | static struct platform_device bfin_i2s = { |
2552 | .name = "bfin-i2s", | 2537 | .name = "bfin-i2s", |
@@ -2661,6 +2646,20 @@ static struct platform_device iio_gpio_trigger = { | |||
2661 | }; | 2646 | }; |
2662 | #endif | 2647 | #endif |
2663 | 2648 | ||
2649 | #if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373) || \ | ||
2650 | defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373_MODULE) | ||
2651 | static struct platform_device bf5xx_adau1373_device = { | ||
2652 | .name = "bfin-eval-adau1373", | ||
2653 | }; | ||
2654 | #endif | ||
2655 | |||
2656 | #if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701) || \ | ||
2657 | defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE) | ||
2658 | static struct platform_device bf5xx_adau1701_device = { | ||
2659 | .name = "bfin-eval-adau1701", | ||
2660 | }; | ||
2661 | #endif | ||
2662 | |||
2664 | static struct platform_device *stamp_devices[] __initdata = { | 2663 | static struct platform_device *stamp_devices[] __initdata = { |
2665 | 2664 | ||
2666 | &bfin_dpmc, | 2665 | &bfin_dpmc, |
@@ -2782,7 +2781,7 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
2782 | &bfin_ac97_pcm, | 2781 | &bfin_ac97_pcm, |
2783 | #endif | 2782 | #endif |
2784 | 2783 | ||
2785 | #if defined(CONFIG_SND_BF5XX_SOC_AD73311) || defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE) | 2784 | #if defined(CONFIG_SND_SOC_AD73311) || defined(CONFIG_SND_SOC_AD73311_MODULE) |
2786 | &bfin_ad73311_codec_device, | 2785 | &bfin_ad73311_codec_device, |
2787 | #endif | 2786 | #endif |
2788 | 2787 | ||
@@ -2821,6 +2820,21 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
2821 | defined(CONFIG_IIO_GPIO_TRIGGER_MODULE) | 2820 | defined(CONFIG_IIO_GPIO_TRIGGER_MODULE) |
2822 | &iio_gpio_trigger, | 2821 | &iio_gpio_trigger, |
2823 | #endif | 2822 | #endif |
2823 | |||
2824 | #if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373) || \ | ||
2825 | defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373_MODULE) | ||
2826 | &bf5xx_adau1373_device, | ||
2827 | #endif | ||
2828 | |||
2829 | #if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701) || \ | ||
2830 | defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE) | ||
2831 | &bf5xx_adau1701_device, | ||
2832 | #endif | ||
2833 | |||
2834 | #if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X) || \ | ||
2835 | defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X_MODULE) | ||
2836 | &bfin_eval_adav801_device, | ||
2837 | #endif | ||
2824 | }; | 2838 | }; |
2825 | 2839 | ||
2826 | static int __init net2272_init(void) | 2840 | static int __init net2272_init(void) |
diff --git a/arch/blackfin/mach-bf537/boards/tcm_bf537.c b/arch/blackfin/mach-bf537/boards/tcm_bf537.c index 9b7287abdfa1..2da0316d890e 100644 --- a/arch/blackfin/mach-bf537/boards/tcm_bf537.c +++ b/arch/blackfin/mach-bf537/boards/tcm_bf537.c | |||
@@ -572,7 +572,7 @@ static struct platform_device bfin_mac_device = { | |||
572 | 572 | ||
573 | static struct pata_platform_info bfin_pata_platform_data = { | 573 | static struct pata_platform_info bfin_pata_platform_data = { |
574 | .ioport_shift = 2, | 574 | .ioport_shift = 2, |
575 | .irq_type = IRQF_TRIGGER_HIGH | IRQF_DISABLED, | 575 | .irq_type = IRQF_TRIGGER_HIGH, |
576 | }; | 576 | }; |
577 | 577 | ||
578 | static struct resource bfin_pata_resources[] = { | 578 | static struct resource bfin_pata_resources[] = { |
diff --git a/arch/blackfin/mach-bf561/boards/cm_bf561.c b/arch/blackfin/mach-bf561/boards/cm_bf561.c index e4f397d1d65b..c1b72f2d6354 100644 --- a/arch/blackfin/mach-bf561/boards/cm_bf561.c +++ b/arch/blackfin/mach-bf561/boards/cm_bf561.c | |||
@@ -348,7 +348,7 @@ static struct platform_device bfin_sir0_device = { | |||
348 | 348 | ||
349 | static struct pata_platform_info bfin_pata_platform_data = { | 349 | static struct pata_platform_info bfin_pata_platform_data = { |
350 | .ioport_shift = 2, | 350 | .ioport_shift = 2, |
351 | .irq_type = IRQF_TRIGGER_HIGH | IRQF_DISABLED, | 351 | .irq_type = IRQF_TRIGGER_HIGH, |
352 | }; | 352 | }; |
353 | 353 | ||
354 | static struct resource bfin_pata_resources[] = { | 354 | static struct resource bfin_pata_resources[] = { |
diff --git a/arch/blackfin/mach-bf561/smp.c b/arch/blackfin/mach-bf561/smp.c index 85abd8be1343..db22401e7605 100644 --- a/arch/blackfin/mach-bf561/smp.c +++ b/arch/blackfin/mach-bf561/smp.c | |||
@@ -114,7 +114,7 @@ void __init platform_request_ipi(int irq, void *handler) | |||
114 | int ret; | 114 | int ret; |
115 | const char *name = (irq == IRQ_SUPPLE_0) ? supple0 : supple1; | 115 | const char *name = (irq == IRQ_SUPPLE_0) ? supple0 : supple1; |
116 | 116 | ||
117 | ret = request_irq(irq, handler, IRQF_DISABLED | IRQF_PERCPU, name, handler); | 117 | ret = request_irq(irq, handler, IRQF_PERCPU, name, handler); |
118 | if (ret) | 118 | if (ret) |
119 | panic("Cannot request %s for IPI service", name); | 119 | panic("Cannot request %s for IPI service", name); |
120 | } | 120 | } |
diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c index 107622aacf6b..0784a52389c8 100644 --- a/arch/blackfin/mach-common/smp.c +++ b/arch/blackfin/mach-common/smp.c | |||
@@ -295,10 +295,15 @@ EXPORT_SYMBOL_GPL(smp_call_function_single); | |||
295 | 295 | ||
296 | void smp_send_reschedule(int cpu) | 296 | void smp_send_reschedule(int cpu) |
297 | { | 297 | { |
298 | cpumask_t callmap; | ||
298 | /* simply trigger an ipi */ | 299 | /* simply trigger an ipi */ |
299 | if (cpu_is_offline(cpu)) | 300 | if (cpu_is_offline(cpu)) |
300 | return; | 301 | return; |
301 | platform_send_ipi_cpu(cpu, IRQ_SUPPLE_0); | 302 | |
303 | cpumask_clear(&callmap); | ||
304 | cpumask_set_cpu(cpu, &callmap); | ||
305 | |||
306 | smp_send_message(callmap, BFIN_IPI_RESCHEDULE, NULL, NULL, 0); | ||
302 | 307 | ||
303 | return; | 308 | return; |
304 | } | 309 | } |