diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-24 11:24:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-24 11:24:28 -0400 |
commit | 05061bf678de5d69ebaae2c0705bf106e3000b6e (patch) | |
tree | 8be38692f0dfd4f49c9c04d8eeb974525a84b1b6 /arch/blackfin | |
parent | fdc0ad80a4f27efcb457b49f5dd8455a3d623559 (diff) | |
parent | de55aa33ca6928881ca5c402bb0f5db242fbcdba (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: bf54x: re-enable anomaly 05000353 for all revs
Blackfin: enable atomic64_t support
Blackfin: wire up new syncfs syscall
Blackfin: SMP: flush CoreB cache when shutting down
Diffstat (limited to 'arch/blackfin')
-rw-r--r-- | arch/blackfin/Kconfig | 1 | ||||
-rw-r--r-- | arch/blackfin/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/blackfin/include/asm/unistd.h | 3 | ||||
-rw-r--r-- | arch/blackfin/mach-bf548/include/mach/anomaly.h | 6 | ||||
-rw-r--r-- | arch/blackfin/mach-bf561/hotplug.c | 9 | ||||
-rw-r--r-- | arch/blackfin/mach-common/entry.S | 1 |
6 files changed, 20 insertions, 2 deletions
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 01615d4f57d6..672c21632f2f 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -31,6 +31,7 @@ config BLACKFIN | |||
31 | select HAVE_OPROFILE | 31 | select HAVE_OPROFILE |
32 | select ARCH_WANT_OPTIONAL_GPIOLIB | 32 | select ARCH_WANT_OPTIONAL_GPIOLIB |
33 | select HAVE_GENERIC_HARDIRQS | 33 | select HAVE_GENERIC_HARDIRQS |
34 | select GENERIC_ATOMIC64 | ||
34 | select GENERIC_IRQ_PROBE | 35 | select GENERIC_IRQ_PROBE |
35 | select IRQ_PER_CPU if SMP | 36 | select IRQ_PER_CPU if SMP |
36 | select GENERIC_HARDIRQS_NO_DEPRECATED | 37 | select GENERIC_HARDIRQS_NO_DEPRECATED |
diff --git a/arch/blackfin/include/asm/atomic.h b/arch/blackfin/include/asm/atomic.h index d27c6274247d..e48508957160 100644 --- a/arch/blackfin/include/asm/atomic.h +++ b/arch/blackfin/include/asm/atomic.h | |||
@@ -121,4 +121,6 @@ static inline int atomic_test_mask(int mask, atomic_t *v) | |||
121 | 121 | ||
122 | #endif | 122 | #endif |
123 | 123 | ||
124 | #include <asm-generic/atomic64.h> | ||
125 | |||
124 | #endif | 126 | #endif |
diff --git a/arch/blackfin/include/asm/unistd.h b/arch/blackfin/include/asm/unistd.h index c97497dd0d19..ff9a9f35d50b 100644 --- a/arch/blackfin/include/asm/unistd.h +++ b/arch/blackfin/include/asm/unistd.h | |||
@@ -396,8 +396,9 @@ | |||
396 | #define __NR_name_to_handle_at 375 | 396 | #define __NR_name_to_handle_at 375 |
397 | #define __NR_open_by_handle_at 376 | 397 | #define __NR_open_by_handle_at 376 |
398 | #define __NR_clock_adjtime 377 | 398 | #define __NR_clock_adjtime 377 |
399 | #define __NR_syncfs 378 | ||
399 | 400 | ||
400 | #define __NR_syscall 378 | 401 | #define __NR_syscall 379 |
401 | #define NR_syscalls __NR_syscall | 402 | #define NR_syscalls __NR_syscall |
402 | 403 | ||
403 | /* Old optional stuff no one actually uses */ | 404 | /* Old optional stuff no one actually uses */ |
diff --git a/arch/blackfin/mach-bf548/include/mach/anomaly.h b/arch/blackfin/mach-bf548/include/mach/anomaly.h index 4070079e2c00..ffd0537295ac 100644 --- a/arch/blackfin/mach-bf548/include/mach/anomaly.h +++ b/arch/blackfin/mach-bf548/include/mach/anomaly.h | |||
@@ -81,7 +81,11 @@ | |||
81 | /* PLL Status Register Is Inaccurate */ | 81 | /* PLL Status Register Is Inaccurate */ |
82 | #define ANOMALY_05000351 (__SILICON_REVISION__ < 1) | 82 | #define ANOMALY_05000351 (__SILICON_REVISION__ < 1) |
83 | /* bfrom_SysControl() Firmware Function Performs Improper System Reset */ | 83 | /* bfrom_SysControl() Firmware Function Performs Improper System Reset */ |
84 | #define ANOMALY_05000353 (__SILICON_REVISION__ < 2) | 84 | /* |
85 | * Note: anomaly sheet says this is fixed with bf54x-0.2+, but testing | ||
86 | * shows that the fix itself does not cover all cases. | ||
87 | */ | ||
88 | #define ANOMALY_05000353 (1) | ||
85 | /* Regulator Programming Blocked when Hibernate Wakeup Source Remains Active */ | 89 | /* Regulator Programming Blocked when Hibernate Wakeup Source Remains Active */ |
86 | #define ANOMALY_05000355 (__SILICON_REVISION__ < 1) | 90 | #define ANOMALY_05000355 (__SILICON_REVISION__ < 1) |
87 | /* System Stalled During A Core Access To AMC While A Core Access To NFC FIFO Is Required */ | 91 | /* System Stalled During A Core Access To AMC While A Core Access To NFC FIFO Is Required */ |
diff --git a/arch/blackfin/mach-bf561/hotplug.c b/arch/blackfin/mach-bf561/hotplug.c index 42fc085629c7..0123117b8ff2 100644 --- a/arch/blackfin/mach-bf561/hotplug.c +++ b/arch/blackfin/mach-bf561/hotplug.c | |||
@@ -7,6 +7,7 @@ | |||
7 | 7 | ||
8 | #include <linux/smp.h> | 8 | #include <linux/smp.h> |
9 | #include <asm/blackfin.h> | 9 | #include <asm/blackfin.h> |
10 | #include <asm/cacheflush.h> | ||
10 | #include <mach/pll.h> | 11 | #include <mach/pll.h> |
11 | 12 | ||
12 | int hotplug_coreb; | 13 | int hotplug_coreb; |
@@ -14,8 +15,16 @@ int hotplug_coreb; | |||
14 | void platform_cpu_die(void) | 15 | void platform_cpu_die(void) |
15 | { | 16 | { |
16 | unsigned long iwr; | 17 | unsigned long iwr; |
18 | |||
17 | hotplug_coreb = 1; | 19 | hotplug_coreb = 1; |
18 | 20 | ||
21 | /* | ||
22 | * When CoreB wakes up, the code in _coreb_trampoline_start cannot | ||
23 | * turn off the data cache. This causes the CoreB failed to boot. | ||
24 | * As a workaround, we invalidate all the data cache before sleep. | ||
25 | */ | ||
26 | blackfin_invalidate_entire_dcache(); | ||
27 | |||
19 | /* disable core timer */ | 28 | /* disable core timer */ |
20 | bfin_write_TCNTL(0); | 29 | bfin_write_TCNTL(0); |
21 | 30 | ||
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S index 757943f620e7..46ab45704c89 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S | |||
@@ -1752,6 +1752,7 @@ ENTRY(_sys_call_table) | |||
1752 | .long _sys_name_to_handle_at /* 375 */ | 1752 | .long _sys_name_to_handle_at /* 375 */ |
1753 | .long _sys_open_by_handle_at | 1753 | .long _sys_open_by_handle_at |
1754 | .long _sys_clock_adjtime | 1754 | .long _sys_clock_adjtime |
1755 | .long _sys_syncfs | ||
1755 | 1756 | ||
1756 | .rept NR_syscalls-(.-_sys_call_table)/4 | 1757 | .rept NR_syscalls-(.-_sys_call_table)/4 |
1757 | .long _sys_ni_syscall | 1758 | .long _sys_ni_syscall |