From: Linus Torvalds Date: Wed, 1 Jul 2015 16:24:26 +0000 (-0700) Subject: Merge tag 'arc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc X-Git-Tag: firefly_0821_release~176^2~1517 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0890a264794f33df540fbaf274699146903b4e6b;p=firefly-linux-kernel-4.4.55.git Merge tag 'arc-4.2-rc1' of git://git./linux/kernel/git/vgupta/arc Pull ARC architecture updates from Vineet Gupta: - support for HS38 cores based on ARCv2 ISA ARCv2 is the next generation ISA from Synopsys and basis for the HS3{4,6,8} families of processors which retain the traditional ARC mantra of low power and configurability and are now more performant and feature rich. HS38x is a 10 stage pipeline core which supports MMU (with huge pages) and SMP (upto 4 cores) among other features. + www.synopsys.com/dw/ipdir.php?ds=arc-hs38-processor + http://news.synopsys.com/2014-10-14-New-DesignWare-ARC-HS38-Processor-Doubles-Performance-for-Embedded-Linux-Applications + http://www.embedded.com/electronics-news/4435975/Synopsys-ARC-HS38-core-gives-2X-boost-to-Linux-based-apps - support for ARC SDP (Software Development platform): Main Board + CPU Cards = AXS101: CPU Card with ARC700 in silicon @ 700 MHz = AXS103: CPU Card with HS38x in FPGA - refactoring of ARCompact port to accomodate new ARCv2 ISA - misc updates/cleanups * tag 'arc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: (72 commits) ARC: Fix build failures for ARCompact in linux-next after ARCv2 support ARCv2: Allow older gcc to cope with new regime of ARCv2/ARCompact support ARCv2: [vdk] dts files and defconfig for HS38 VDK ARCv2: [axs103] Support ARC SDP FPGA platform for HS38x cores ARC: [axs101] Prepare for AXS103 ARCv2: [nsim*hs*] Support simulation platforms for HS38x cores ARCv2: All bits in place, allow ARCv2 builds ARCv2: SLC: Handle explcit flush for DMA ops (w/o IO-coherency) ARCv2: STAR 9000837815 workaround hardware exclusive transactions livelock ARC: Reduce bitops lines of code using macros ARCv2: barriers arch: conditionally define smp_{mb,rmb,wmb} ARC: add smp barriers around atomics per Documentation/atomic_ops.txt ARC: add compiler barrier to LLSC based cmpxchg ARCv2: SMP: intc: IDU 2nd level intc for dynamic IRQ distribution ARCv2: SMP: clocksource: Enable Global Real Time counter ARCv2: SMP: ARConnect debug/robustness ARCv2: SMP: Support ARConnect (MCIP) for Inter-Core-Interrupts et al ARC: make plat_smp_ops weak to allow over-rides ARCv2: clocksource: Introduce 64bit local RTC counter ... --- 0890a264794f33df540fbaf274699146903b4e6b diff --cc MAINTAINERS index 0e6b09150aad,3a9afc9ec050..ab6fb58b3873 --- a/MAINTAINERS +++ b/MAINTAINERS @@@ -9832,13 -9579,13 +9832,20 @@@ F: arch/arc F: Documentation/devicetree/bindings/arc/ F: drivers/tty/serial/arc_uart.c + SYNOPSYS ARC SDP platform support + M: Alexey Brodkin + S: Supported + F: arch/arc/plat-axs10x + F: arch/arc/boot/dts/ax* + F: Documentation/devicetree/bindings/arc/axs10* + +SYSTEM CONFIGURATION (SYSCON) +M: Lee Jones +M: Arnd Bergmann +T: git git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git +S: Supported +F: drivers/mfd/syscon.c + SYSV FILESYSTEM M: Christoph Hellwig S: Maintained diff --cc include/asm-generic/barrier.h index e6a83d712ef6,270b7c989ea1..55e3abc2d027 --- a/include/asm-generic/barrier.h +++ b/include/asm-generic/barrier.h @@@ -55,19 -55,44 +55,45 @@@ #endif #ifdef CONFIG_SMP + + #ifndef smp_mb #define smp_mb() mb() + #endif + + #ifndef smp_rmb #define smp_rmb() rmb() + #endif + + #ifndef smp_wmb #define smp_wmb() wmb() + #endif + + #ifndef smp_read_barrier_depends #define smp_read_barrier_depends() read_barrier_depends() - #else + #endif + -#else ++#else /* !CONFIG_SMP */ ++ + #ifndef smp_mb #define smp_mb() barrier() + #endif + + #ifndef smp_rmb #define smp_rmb() barrier() + #endif + + #ifndef smp_wmb #define smp_wmb() barrier() + #endif + + #ifndef smp_read_barrier_depends #define smp_read_barrier_depends() do { } while (0) #endif -#endif ++#endif /* CONFIG_SMP */ + -#ifndef set_mb -#define set_mb(var, value) do { (var) = (value); mb(); } while (0) +#ifndef smp_store_mb +#define smp_store_mb(var, value) do { WRITE_ONCE(var, value); mb(); } while (0) #endif #ifndef smp_mb__before_atomic