提交 05061bf6 编写于 作者: L Linus Torvalds

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
...@@ -31,6 +31,7 @@ config BLACKFIN ...@@ -31,6 +31,7 @@ config BLACKFIN
select HAVE_OPROFILE select HAVE_OPROFILE
select ARCH_WANT_OPTIONAL_GPIOLIB select ARCH_WANT_OPTIONAL_GPIOLIB
select HAVE_GENERIC_HARDIRQS select HAVE_GENERIC_HARDIRQS
select GENERIC_ATOMIC64
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select IRQ_PER_CPU if SMP select IRQ_PER_CPU if SMP
select GENERIC_HARDIRQS_NO_DEPRECATED select GENERIC_HARDIRQS_NO_DEPRECATED
......
...@@ -121,4 +121,6 @@ static inline int atomic_test_mask(int mask, atomic_t *v) ...@@ -121,4 +121,6 @@ static inline int atomic_test_mask(int mask, atomic_t *v)
#endif #endif
#include <asm-generic/atomic64.h>
#endif #endif
...@@ -396,8 +396,9 @@ ...@@ -396,8 +396,9 @@
#define __NR_name_to_handle_at 375 #define __NR_name_to_handle_at 375
#define __NR_open_by_handle_at 376 #define __NR_open_by_handle_at 376
#define __NR_clock_adjtime 377 #define __NR_clock_adjtime 377
#define __NR_syncfs 378
#define __NR_syscall 378 #define __NR_syscall 379
#define NR_syscalls __NR_syscall #define NR_syscalls __NR_syscall
/* Old optional stuff no one actually uses */ /* Old optional stuff no one actually uses */
......
...@@ -81,7 +81,11 @@ ...@@ -81,7 +81,11 @@
/* PLL Status Register Is Inaccurate */ /* PLL Status Register Is Inaccurate */
#define ANOMALY_05000351 (__SILICON_REVISION__ < 1) #define ANOMALY_05000351 (__SILICON_REVISION__ < 1)
/* bfrom_SysControl() Firmware Function Performs Improper System Reset */ /* bfrom_SysControl() Firmware Function Performs Improper System Reset */
#define ANOMALY_05000353 (__SILICON_REVISION__ < 2) /*
* Note: anomaly sheet says this is fixed with bf54x-0.2+, but testing
* shows that the fix itself does not cover all cases.
*/
#define ANOMALY_05000353 (1)
/* Regulator Programming Blocked when Hibernate Wakeup Source Remains Active */ /* Regulator Programming Blocked when Hibernate Wakeup Source Remains Active */
#define ANOMALY_05000355 (__SILICON_REVISION__ < 1) #define ANOMALY_05000355 (__SILICON_REVISION__ < 1)
/* System Stalled During A Core Access To AMC While A Core Access To NFC FIFO Is Required */ /* System Stalled During A Core Access To AMC While A Core Access To NFC FIFO Is Required */
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <linux/smp.h> #include <linux/smp.h>
#include <asm/blackfin.h> #include <asm/blackfin.h>
#include <asm/cacheflush.h>
#include <mach/pll.h> #include <mach/pll.h>
int hotplug_coreb; int hotplug_coreb;
...@@ -14,8 +15,16 @@ int hotplug_coreb; ...@@ -14,8 +15,16 @@ int hotplug_coreb;
void platform_cpu_die(void) void platform_cpu_die(void)
{ {
unsigned long iwr; unsigned long iwr;
hotplug_coreb = 1; hotplug_coreb = 1;
/*
* When CoreB wakes up, the code in _coreb_trampoline_start cannot
* turn off the data cache. This causes the CoreB failed to boot.
* As a workaround, we invalidate all the data cache before sleep.
*/
blackfin_invalidate_entire_dcache();
/* disable core timer */ /* disable core timer */
bfin_write_TCNTL(0); bfin_write_TCNTL(0);
......
...@@ -1752,6 +1752,7 @@ ENTRY(_sys_call_table) ...@@ -1752,6 +1752,7 @@ ENTRY(_sys_call_table)
.long _sys_name_to_handle_at /* 375 */ .long _sys_name_to_handle_at /* 375 */
.long _sys_open_by_handle_at .long _sys_open_by_handle_at
.long _sys_clock_adjtime .long _sys_clock_adjtime
.long _sys_syncfs
.rept NR_syscalls-(.-_sys_call_table)/4 .rept NR_syscalls-(.-_sys_call_table)/4
.long _sys_ni_syscall .long _sys_ni_syscall
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册