diff options
| -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 | } |
