Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+20 -2
+1
arch/blackfin/Kconfig
··· 31 31 select HAVE_OPROFILE 32 32 select ARCH_WANT_OPTIONAL_GPIOLIB 33 33 select HAVE_GENERIC_HARDIRQS 34 + select GENERIC_ATOMIC64 34 35 select GENERIC_IRQ_PROBE 35 36 select IRQ_PER_CPU if SMP 36 37 select GENERIC_HARDIRQS_NO_DEPRECATED
+2
arch/blackfin/include/asm/atomic.h
··· 121 121 122 122 #endif 123 123 124 + #include <asm-generic/atomic64.h> 125 + 124 126 #endif
+2 -1
arch/blackfin/include/asm/unistd.h
··· 396 396 #define __NR_name_to_handle_at 375 397 397 #define __NR_open_by_handle_at 376 398 398 #define __NR_clock_adjtime 377 399 + #define __NR_syncfs 378 399 400 400 - #define __NR_syscall 378 401 + #define __NR_syscall 379 401 402 #define NR_syscalls __NR_syscall 402 403 403 404 /* Old optional stuff no one actually uses */
+5 -1
arch/blackfin/mach-bf548/include/mach/anomaly.h
··· 81 81 /* PLL Status Register Is Inaccurate */ 82 82 #define ANOMALY_05000351 (__SILICON_REVISION__ < 1) 83 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 89 /* Regulator Programming Blocked when Hibernate Wakeup Source Remains Active */ 86 90 #define ANOMALY_05000355 (__SILICON_REVISION__ < 1) 87 91 /* System Stalled During A Core Access To AMC While A Core Access To NFC FIFO Is Required */
+9
arch/blackfin/mach-bf561/hotplug.c
··· 7 7 8 8 #include <linux/smp.h> 9 9 #include <asm/blackfin.h> 10 + #include <asm/cacheflush.h> 10 11 #include <mach/pll.h> 11 12 12 13 int hotplug_coreb; ··· 15 14 void platform_cpu_die(void) 16 15 { 17 16 unsigned long iwr; 17 + 18 18 hotplug_coreb = 1; 19 + 20 + /* 21 + * When CoreB wakes up, the code in _coreb_trampoline_start cannot 22 + * turn off the data cache. This causes the CoreB failed to boot. 23 + * As a workaround, we invalidate all the data cache before sleep. 24 + */ 25 + blackfin_invalidate_entire_dcache(); 19 26 20 27 /* disable core timer */ 21 28 bfin_write_TCNTL(0);
+1
arch/blackfin/mach-common/entry.S
··· 1752 1752 .long _sys_name_to_handle_at /* 375 */ 1753 1753 .long _sys_open_by_handle_at 1754 1754 .long _sys_clock_adjtime 1755 + .long _sys_syncfs 1755 1756 1756 1757 .rept NR_syscalls-(.-_sys_call_table)/4 1757 1758 .long _sys_ni_syscall