Commit Graph

6036 Commits

Author SHA1 Message Date
Masahiro Yamada 3dfc6e9829 arm64: dts: uniphier: add AIDET nodes
Add UniPhier AIDET (ARM Interrupt Detector) nodes to support
active low interrupts.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-08-28 23:57:24 +09:00
Maxime Ripard 87e1f5e8bb arm64: dts: allwinner: Revert EMAC changes
Since the discussion is not settled yet for the EMAC, and that the release
in getting really close, let's revert the changes for now, and we'll
reintroduce them later.

Acked-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2017-08-28 11:11:20 +02:00
Ingo Molnar 3cb9bc8502 Merge branch 'x86/mm' into efi/core, to pick up dependencies
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-08-26 09:20:01 +02:00
Jiri Slaby 30d6e0a419 futex: Remove duplicated code and fix undefined behaviour
There is code duplicated over all architecture's headers for
futex_atomic_op_inuser. Namely op decoding, access_ok check for uaddr,
and comparison of the result.

Remove this duplication and leave up to the arches only the needed
assembly which is now in arch_futex_atomic_op_inuser.

This effectively distributes the Will Deacon's arm64 fix for undefined
behaviour reported by UBSAN to all architectures. The fix was done in
commit 5f16a046f8 (arm64: futex: Fix undefined behaviour with
FUTEX_OP_OPARG_SHIFT usage). Look there for an example dump.

And as suggested by Thomas, check for negative oparg too, because it was
also reported to cause undefined behaviour report.

Note that s390 removed access_ok check in d12a29703 ("s390/uaccess:
remove pointless access_ok() checks") as access_ok there returns true.
We introduce it back to the helper for the sake of simplicity (it gets
optimized away anyway).

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> [s390]
Acked-by: Chris Metcalf <cmetcalf@mellanox.com> [for tile]
Reviewed-by: Darren Hart (VMware) <dvhart@infradead.org>
Reviewed-by: Will Deacon <will.deacon@arm.com> [core/arm64]
Cc: linux-mips@linux-mips.org
Cc: Rich Felker <dalias@libc.org>
Cc: linux-ia64@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: peterz@infradead.org
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: sparclinux@vger.kernel.org
Cc: Jonas Bonn <jonas@southpole.se>
Cc: linux-s390@vger.kernel.org
Cc: linux-arch@vger.kernel.org
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: linux-hexagon@vger.kernel.org
Cc: Helge Deller <deller@gmx.de>
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Matt Turner <mattst88@gmail.com>
Cc: linux-snps-arc@lists.infradead.org
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: linux-xtensa@linux-xtensa.org
Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
Cc: openrisc@lists.librecores.org
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Stafford Horne <shorne@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Richard Henderson <rth@twiddle.net>
Cc: Chris Zankel <chris@zankel.net>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Tony Luck <tony.luck@intel.com>
Cc: linux-parisc@vger.kernel.org
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Richard Kuo <rkuo@codeaurora.org>
Cc: linux-alpha@vger.kernel.org
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: "David S. Miller" <davem@davemloft.net>
Link: http://lkml.kernel.org/r/20170824073105.3901-1-jslaby@suse.cz
2017-08-25 22:49:59 +02:00
Katsuhiro Suzuki 178b356839 arm64: dts: uniphier: add reset controller node of analog amplifier
This patch adds reset controller node of analog signal amplifier
core (ADAMV) for UniPhier LD11/LD20 SoCs.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-08-26 00:34:36 +09:00
Ingo Molnar 10c9850cb2 Merge branch 'linus' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-08-25 11:04:51 +02:00
Andrzej Hajda 88a5e22a90 arm64: dts: exynos: remove i80-if-timings nodes
Since i80/command mode is determined in runtime by propagating info
from panel this property can be removed.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2017-08-25 11:58:09 +09:00
Arnd Bergmann e9a203a7cf 3 new boards, the rk3328-based Rock64 from the Pine64-makers, the
Sapphire som+baseboard which is another evaluation board for Rocckhip
 customers and the rk3399-based som+baseboard from Austria-based
 Theobroma Systems, which interestingly is in a miniITX formfactor
 and provides a real PCIe x4 slot.
 
 New nodes include on rk3399 graphics (vops, hdmi, etc) and more iommus,
 on rk3328 iommus, pwm, thermal management, and sound as well as operating
 points and rk3368 got iommu nodes and cpu operating points.
 
 On existing boards firefly got operating points, the rk3328-evb got its
 pmic and gru boards got some sound-related fixes.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAlmdnagQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgSpBB/9v6flM/QtBVeXhR1tfrXIt3veUaiwiTwhg
 PIj6J7EJZCgA9TiHr4zcQzjCx581a9v1rUEpnhZyi7d/zrNurpJRYtBNcqfDS28Z
 kyL30gwf/y4nVAzgIODGMNRWe3+IETNCIRZ236cV7jr9HgKmHvA0qc2aMzjHPMCF
 XS9wPXgEW1kYIgKqzq1drAWY3iVB0W37KMX9HKVQfAlPcGu5jobk0lruQBZV0InH
 8NR3NB9a7eknzPejmBO2ga0idS0oAc/eFQ8h2bHrxWVm1JO+2QDc7epxWCTmxBcP
 DLy+7tuQiXEFc25AM3QpW97pJuqDT+zeZXd/F5BK5uGnpH63SNbi
 =D65g
 -----END PGP SIGNATURE-----

Merge tag 'v4.14-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt64

Pull "second round of Rockchip dts64 changes for 4.14" from Heiko Stübner:

3 new boards, the rk3328-based Rock64 from the Pine64-makers, the
Sapphire som+baseboard which is another evaluation board for Rocckhip
customers and the rk3399-based som+baseboard from Austria-based
Theobroma Systems, which interestingly is in a miniITX formfactor
and provides a real PCIe x4 slot.

New nodes include on rk3399 graphics (vops, hdmi, etc) and more iommus,
on rk3328 iommus, pwm, thermal management, and sound as well as operating
points and rk3368 got iommu nodes and cpu operating points.

On existing boards firefly got operating points, the rk3328-evb got its
pmic and gru boards got some sound-related fixes.

* tag 'v4.14-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (29 commits)
  arm64: dts: rockchip: add Haikou baseboard with RK3399-Q7 SoM
  arm64: dts: rockchip: add RK3399-Q7 (Puma) SoM
  dt-bindings: add rk3399-q7 SoM
  arm64: dts: rockchip: add rk3328-rock64 board
  arm64: dts: rockchip: add rk3328 pdm node
  arm64: dts: rockchip: add more rk3399 iommu nodes
  arm64: dts: rockchip: add rk3368 iommu nodes
  arm64: dts: rockchip: add rk3328 iommu nodes
  arm64: dts: rockchip: Add basic cpu frequencies for RK3368
  arm64: dts: rockchip: add rk805 node for rk3328-evb
  arm64: dts: rockchip: Assign mic irq to correct device for Gru
  arm64: dts: rockchip: init rk3399 vop clock rates
  arm64: dts: rockchip: Add pwm nodes for rk3328
  arm64: dts: rockchip: Fix wrong rt5514 dmic delay property for Gru
  arm64: dts: rockchip: disable tx ipgap linecheck for rk3399 dwc3
  arm64: dts: rockchip: remove num-slots property from rk3399-sapphire
  arm64: dts: rockchip: Enable tsadc module on RK3328 eavluation board
  arm64: dts: rockchip: add thermal nodes for rk3328 SoC
  arm64: dts: rockchip: add tsadc node for rk3328 SoC
  arm64: dts: rockchip: add rk3328 i2s nodes
  ...
2017-08-24 15:55:58 +02:00
Ingo Molnar 93da8b221d Merge branch 'linus' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-08-24 10:12:33 +02:00
Hanna Hawa bf32f2aeb2 arm64: dts: marvell: add Device Tree files for Armada-8KP
This commit adds the base Device Tree files for the Armada 8KPlus.
The Armada 8KP SoCs include several hardware blocks, and this
commit only adds support for the AP810 block, that contains the CPU
core and basic peripherals.

AP810 is a high-performance die, includes octal core application
processor based ARMv8-A architecture, two standard high speed DDR4
interface, and GIC-600 interrupt controller.
AP810 Built as part of Marvell’s MoChi AP family products.

Armada-8080 (8KPlus family), include an AP810 block that contains
the CPU core and basic peripherals.

This commit creates the following hierarchy:
 * armada-ap810-ap0.dtsi - definitions common to AP810
 	* armada-ap810-ap0-octa-core.dtsi - description of the octa cores
		* armada-8080.dtsi - description of the 8080 SoC
			* armada-8080-db.dts - description of the 8080 board

Signed-off-by: Hanna Hawa <hannah@marvell.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
2017-08-24 09:56:41 +02:00
Klaus Goger 60fd9f72ce arm64: dts: rockchip: add Haikou baseboard with RK3399-Q7 SoM
Haikou is a Qseven and μQseven baseboard featuring PCIe, USB3 and a
video connector for MIPI-DSI/CSI and eDP adapter.

This dts is for usage with the RK3399-Q7 SoM Puma.

Signed-off-by: Klaus Goger <klaus.goger@theobroma-systems.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-23 09:40:05 +02:00
Klaus Goger 2c66fc34e9 arm64: dts: rockchip: add RK3399-Q7 (Puma) SoM
The RK3399-Q7 SoM is a Qseven-compatible (70mm x 70mm, MXM-230
connector) system-on-module from Theobroma Systems, featuring the
Rockchip RK3399.

It provides the following feature set:
 * up to 4GB DDR3
 * on-module SPI-NOR flash
 * on-module eMMC (with 8-bit 1.8V interface)
 * SD card (on a baseboad) via edge connector
 * Gigabit Ethernet with on-module Micrel KSZ9031 GbE PHY
 * HDMI/eDP/2x MIPI-DSI
 * 2x MIPI-CSI
 * USB
   - 1x USB 3.0 dual-role (direct connection)
   - 2x USB 3.0 host + 1x USB 2.0 (on-module USB 3.0 hub)
 * on-module STM32 Cortex-M0 companion controller, implementing:
   - low-power RTC functionality (ISL1208 emulation)
   - fan controller (AMC6821 emulation)
   - USB<->CAN bridge controller

Signed-off-by: Klaus Goger <klaus.goger@theobroma-systems.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-23 09:36:15 +02:00
Heiko Stuebner 955bebde05 arm64: dts: rockchip: add rk3328-rock64 board
The ROCK64 is a credit card size 4K60P HDR Media Board Computer using the
Rockchip RK3328 Quad-Core ARM Cortex A53 64-Bit Processor and supporting
up to 4GB 1600MHz LPDDR3 memory. It provides eMMC module socket, MicroSD
Card slot, Pi-2 Bus, Pi-P5+ Bus, USB 3.0 and many others peripheral
devices interface for makers to integrate with sensors and devices.

The devicetree currently supports basic peripherals, with more to be
added later on.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-23 01:27:46 +02:00
Sugar Zhang 13ed1501cb arm64: dts: rockchip: add rk3328 pdm node
This patch add pdm controller device node for rk3328.

Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-23 01:26:06 +02:00
Neil Armstrong 47884c5c74 ARM64: dts: meson-gxl-libretech-cc: Add GPIO lines names
This patch describes the GPIO lines usage on the LibreTech CC board.

This is useful in the debugfs gpio file and using the cdev gpio API.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
[khilman: minor whiespace fix]
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2017-08-22 15:37:50 -07:00
Kevin Hilman 4db26f83a7 Linux 4.13-rc4
-----BEGIN PGP SIGNATURE-----
 
 iQEcBAABAgAGBQJZh8YYAAoJEHm+PkMAQRiG46QIAKOBbLlOY38zIJwDfJs6ydvH
 eFLryznS7RM2w0Gw1RyVAyWS43QS9RUNGDMa4UOb9AvurBHYpK29t1uq6LejQ/hn
 2Uvxuq95qEVVYzN1OA3WzLKUa35g3qRM9rTYFz7xGMRp2Ldk/aPRi/PVJLhSO3YQ
 HFRLsfNMWTkSR4imuxm7NS+cYMcqWbDbanvW5IwQ+RFRPo8Ac1PbFpGUdVtar6+O
 Fm3GLBsRB3dijJwYyWQKeDvtLr608i50by4yS7EIAqbUSfoDpJEyTL57oTCRok7P
 5ZycGpK4bXWF0OpBWpKgrFO5tB7xfzUDa3TmNhS3Q8ep4KLHNXwM3V6p8Y+YZco=
 =FId5
 -----END PGP SIGNATURE-----

Merge tag 'v4.13-rc4' into v4.14/dt64

Linux 4.13-rc4
2017-08-22 15:37:31 -07:00
Neil Armstrong b16c71c9f6 ARM64: dts: meson-gx: Add AO CEC nodes
This patch adds the AO CEC node in all the HDMI enabled boards DTS.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2017-08-22 15:37:22 -07:00
Neil Armstrong 7fd2c355a2 ARM64: dts: meson-gx: update AO clkc to new bindings
The AO clkc needs to be updated to new bindings with an system control parent
node and moving the clkc node as subnode.

Also adds the SoC specific compatible following the bindings requirements.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2017-08-22 15:37:22 -07:00
Yury Norov d1be5c99a0 arm64: cleanup {COMPAT_,}SET_PERSONALITY() macro
There is some work that should be done after setting the personality.
Currently it's done in the macro, which is not the best idea.

In this patch new arch_setup_new_exec() routine is introduced, and all
setup code is moved there, as suggested by Catalin:
https://lkml.org/lkml/2017/8/4/494

Cc: Pratyush Anand <panand@redhat.com>
Signed-off-by: Yury Norov <ynorov@caviumnetworks.com>
[catalin.marinas@arm.com: comments changed or removed]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 18:41:47 +01:00
Catalin Marinas a067d94d37 arm64: kaslr: Adjust the offset to avoid Image across alignment boundary
With 16KB pages and a kernel Image larger than 16MB, the current
kaslr_early_init() logic for avoiding mappings across swapper table
boundaries fails since increasing the offset by kimg_sz just moves the
problem to the next boundary.

This patch rounds the offset down to (1 << SWAPPER_TABLE_SHIFT) if the
Image crosses a PMD_SIZE boundary.

Fixes: afd0e5a876 ("arm64: kaslr: Fix up the kernel image alignment")
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-08-22 18:15:42 +01:00
Ard Biesheuvel 4a23e56ad6 arm64: kaslr: ignore modulo offset when validating virtual displacement
In the KASLR setup routine, we ensure that the early virtual mapping
of the kernel image does not cover more than a single table entry at
the level above the swapper block level, so that the assembler routines
involved in setting up this mapping can remain simple.

In this calculation we add the proposed KASLR offset to the values of
the _text and _end markers, and reject it if they would end up falling
in different swapper table sized windows.

However, when taking the addresses of _text and _end, the modulo offset
(the physical displacement modulo 2 MB) is already accounted for, and
so adding it again results in incorrect results. So disregard the modulo
offset from the calculation.

Fixes: 08cdac619c ("arm64: relocatable: deal with physically misaligned ...")
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-08-22 18:15:42 +01:00
Mark Rutland 289d07a2dc arm64: mm: abort uaccess retries upon fatal signal
When there's a fatal signal pending, arm64's do_page_fault()
implementation returns 0. The intent is that we'll return to the
faulting userspace instruction, delivering the signal on the way.

However, if we take a fatal signal during fixing up a uaccess, this
results in a return to the faulting kernel instruction, which will be
instantly retried, resulting in the same fault being taken forever. As
the task never reaches userspace, the signal is not delivered, and the
task is left unkillable. While the task is stuck in this state, it can
inhibit the forward progress of the system.

To avoid this, we must ensure that when a fatal signal is pending, we
apply any necessary fixup for a faulting kernel instruction. Thus we
will return to an error path, and it is up to that code to make forward
progress towards delivering the fatal signal.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Laura Abbott <labbott@redhat.com>
Cc: stable@vger.kernel.org
Reviewed-by: Steve Capper <steve.capper@arm.com>
Tested-by: Steve Capper <steve.capper@arm.com>
Reviewed-by: James Morse <james.morse@arm.com>
Tested-by: James Morse <james.morse@arm.com>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-08-22 18:15:42 +01:00
Dave Martin 096622104e arm64: fpsimd: Prevent registers leaking across exec
There are some tricky dependencies between the different stages of
flushing the FPSIMD register state during exec, and these can race
with context switch in ways that can cause the old task's regs to
leak across.  In particular, a context switch during the memset() can
cause some of the task's old FPSIMD registers to reappear.

Disabling preemption for this small window would be no big deal for
performance: preemption is already disabled for similar scenarios
like updating the FPSIMD registers in sigreturn.

So, instead of rearranging things in ways that might swap existing
subtle bugs for new ones, this patch just disables preemption
around the FPSIMD state flushing so that races of this type can't
occur here.  This brings fpsimd_flush_thread() into line with other
code paths.

Cc: stable@vger.kernel.org
Fixes: 674c242c93 ("arm64: flush FP/SIMD state correctly after execve()")
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-08-22 18:15:42 +01:00
Yury Norov 5ce93ab624 arm64: introduce separated bits for mm_context_t flags
Currently mm->context.flags field uses thread_info flags which is not
the best idea for many reasons. For example, mm_context_t doesn't need
most of thread_info flags. And it would be difficult to add new mm-related
flag if needed because it may easily interfere with TIF ones.

To deal with it, the new MMCF_AARCH32 flag is introduced for
mm_context_t->flags, where MMCF prefix stands for mm_context_t flags.
Also, mm_context_t flag doesn't require atomicity and ordering of the
access, so using set/clear_bit() is replaced with simple masks.

Signed-off-by: Yury Norov <ynorov@caviumnetworks.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 18:13:04 +01:00
Steve Capper 828f193dd6 arm64: hugetlb: Cleanup setup_hugepagesz
Replace a lot of if statements with switch and case labels to make it
much clearer which huge page sizes are supported.

Also, we prevent PUD_SIZE from being used on systems not running with
4KB PAGE_SIZE. Before if one supplied PUD_SIZE in these circumstances,
then unusuable huge page sizes would be in use.

Fixes: 084bd29810 ("ARM64: mm: HugeTLB support.")
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 17:47:12 +01:00
Punit Agrawal 5cd028b9d9 arm64: Re-enable support for contiguous hugepages
also known as -

Revert "Revert "Revert "commit 66b3923a1a ("arm64: hugetlb: add
support for PTE contiguous bit")"""

Now that our hugetlb implementation is compliant with the
break-before-make requirements of the architecture and we have addressed
some of the issues in core code required for properly dealing with
hardware poisoning of contiguous hugepages let's re-enable support for
contiguous hugepages.

This reverts commit 6ae979ab39.

Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 17:47:11 +01:00
Punit Agrawal a8d623eefd arm64: hugetlb: Override set_huge_swap_pte_at() to support contiguous hugepages
The default implementation of set_huge_swap_pte_at() does not support
hugepages consisting of contiguous ptes. Override it to add support for
contiguous hugepages.

Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 17:47:11 +01:00
Punit Agrawal c3e4ed5c3d arm64: hugetlb: Override huge_pte_clear() to support contiguous hugepages
The default huge_pte_clear() implementation does not clear contiguous
page table entries when it encounters contiguous hugepages that are
supported on arm64.

Fix this by overriding the default implementation to clear all the
entries associated with contiguous hugepages.

Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 17:47:10 +01:00
Arnd Bergmann 298f2a3aaa arm: Xilinx ZynqMP DT fixes for v4.14
- Fix DTC warnings
 - Add idle states, OP, cci-400, RTC, pcie prefetchable memory
   fpd/lpd dmas, clocks for ep108
 - Enable can1
 - Fix smmu IRQ, aliases, uart compatible string
 - Use generic compatible string for i2c eeprom
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iEYEABECAAYFAlmazlMACgkQykllyylKDCEBuACfVNqg0NgBOKmANE9pEYj68GdR
 z7MAnRtPKoa8E+3AocdCvlIHiMVyFaJ4
 =GNsh
 -----END PGP SIGNATURE-----

Merge tag 'zynqmp-dt-for-4.14' of https://github.com/Xilinx/linux-xlnx into next/dt64

Pull "arm64: Xilinx ZynqMP DT fixes for v4.14" from Michal Simek:

- Fix DTC warnings
- Add idle states, OP, cci-400, RTC, pcie prefetchable memory
  fpd/lpd dmas, clocks for ep108
- Enable can1
- Fix smmu IRQ, aliases, uart compatible string
- Use generic compatible string for i2c eeprom

* tag 'zynqmp-dt-for-4.14' of https://github.com/Xilinx/linux-xlnx:
  arm64: zynqmp: Add generic compatible string for I2C EEPROM
  arm64: zynqmp: Add missing mmc aliases in ep108
  arm64: zynqmp: Enable can1 for ep108
  arm64: zynqmp: Added clocks to DT for ep108
  arm64: zynqmp: Use C pre-processor for includes
  arm64: zynqmp: Add fpd/lpd dmas
  arm64: zynqmp: Set status disabled in dtsi
  arm64: zynqmp: Add new uartps compatible string
  arm64: zynqmp: Correct IRQ nr for the SMMU
  arm64: zynqmp: Add support for RTC
  arm64: zynqmp: Adding prefetchable memory space to pcie node
  arm64: zynqmp: Add CCI-400 node
  arm64: zynqmp: Add dcc console for zynqmp
  arm64: zynqmp: Add operating points
  arm64: zynqmp: Add idle state for ZynqMP
  arm64: zynqmp: Add references to cpu nodes
  arm64: zynqmp: Move nodes which have no reg property out of bus
  arm64: zynqmp: Remove leading 0s from mtd table for spi flashes
  arm64: dts: xilinx: fix PCI bus dtc warnings
2017-08-22 17:40:37 +02:00
Punit Agrawal 30f3ac00ad arm64: hugetlb: Handle swap entries in huge_pte_offset() for contiguous hugepages
huge_pte_offset() was updated to correctly handle swap entries for
hugepages. With the addition of the size parameter, it is now possible
to disambiguate whether the request is for a regular hugepage or a
contiguous hugepage.

Fix huge_pte_offset() for contiguous hugepages by using the size to find
the correct page table entry.

Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 15:57:02 +01:00
Steve Capper d8bdcff287 arm64: hugetlb: Add break-before-make logic for contiguous entries
It has become apparent that one has to take special care when modifying
attributes of memory mappings that employ the contiguous bit.

Both the requirement and the architecturally correct "Break-Before-Make"
technique of updating contiguous entries can be found described in:
ARM DDI 0487A.k_iss10775, "Misprogramming of the Contiguous bit",
page D4-1762.

The huge pte accessors currently replace the attributes of contiguous
pte entries in place thus can, on certain platforms, lead to TLB
conflict aborts or even erroneous results returned from TLB lookups.

This patch adds two helper functions -

* get_clear_flush(.) - clears a contiguous entry and returns the head
  pte (whilst taking care to retain dirty bit information that could
  have been modified by DBM).

* clear_flush(.) that clears a contiguous entry

A tlb invalidate is performed to then ensure that there is no
possibility of multiple tlb entries being present for the same region.

Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
(Added helper clear_flush(), updated commit log, and some cleanup)
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
[catalin.marinas@arm.com: remove CONFIG_ARM64_HW_AFDBM check]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 15:53:19 +01:00
Steve Capper 29a7287dce arm64: hugetlb: Spring clean huge pte accessors
This patch aims to re-structure the huge pte accessors without affecting
their functionality. Control flow is changed to reduce indentation and
expanded use is made of post for loop variable modification.

It is then much easier to add break-before-make semantics in a subsequent
patch.

Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 15:52:12 +01:00
Steve Capper b5b0be86d7 arm64: hugetlb: Introduce pte_pgprot helper
Rather than xor pte bits in various places, use this helper function.

Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 15:51:55 +01:00
Steve Capper d3ea795277 arm64: hugetlb: set_huge_pte_at Add WARN_ON on !pte_present
This patch adds a WARN_ON to set_huge_pte_at as the accessor assumes
that entries to be written down are all present. (There are separate
accessors to clear huge ptes).

We will need to handle the !pte_present case where memory offlining
is used on hugetlb pages. swap and migration entries will be supplied
to set_huge_pte_at in this case.

Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-22 15:41:16 +01:00
David S. Miller e2a7c34fb2 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-21 17:06:42 -07:00
Simon Xue ae4fdccace arm64: dts: rockchip: add more rk3399 iommu nodes
Add VPU/VDEC/IEP/ISP0/ISP1 iommu nodes

Signed-off-by: Simon Xue <xxm@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-21 23:12:55 +02:00
Simon Xue cede4c79de arm64: dts: rockchip: add rk3368 iommu nodes
Add IEP/ISP/VOP/HEVC/VPU iommu nodes

Signed-off-by: Simon Xue <xxm@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-21 23:06:30 +02:00
Simon Xue 49c82f2b7c arm64: dts: rockchip: add rk3328 iommu nodes
Add H265e/VEPU/VPU/VDEC/VOP iommu nodes

Signed-off-by: Simon Xue <xxm@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-21 23:05:34 +02:00
Hoeun Ryu a88ce63b64 arm64: kexec: have own crash_smp_send_stop() for crash dump for nonpanic cores
Commit 0ee5941 : (x86/panic: replace smp_send_stop() with kdump friendly
version in panic path) introduced crash_smp_send_stop() which is a weak
function and can be overridden by architecture codes to fix the side effect
caused by commit f06e515 : (kernel/panic.c: add "crash_kexec_post_
notifiers" option).

 ARM64 architecture uses the weak version function and the problem is that
the weak function simply calls smp_send_stop() which makes other CPUs
offline and takes away the chance to save crash information for nonpanic
CPUs in machine_crash_shutdown() when crash_kexec_post_notifiers kernel
option is enabled.

 Calling smp_send_crash_stop() in machine_crash_shutdown() is useless
because all nonpanic CPUs are already offline by smp_send_stop() in this
case and smp_send_crash_stop() only works against online CPUs.

 The result is that secondary CPUs registers are not saved by
crash_save_cpu() and the vmcore file misreports these CPUs as being
offline.

 crash_smp_send_stop() is implemented to fix this problem by replacing the
existing smp_send_crash_stop() and adding a check for multiple calling to
the function. The function (strong symbol version) saves crash information
for nonpanic CPUs and machine_crash_shutdown() tries to save crash
information for nonpanic CPUs only when crash_kexec_post_notifiers kernel
option is disabled.

* crash_kexec_post_notifiers : false

  panic()
    __crash_kexec()
      machine_crash_shutdown()
        crash_smp_send_stop()    <= save crash dump for nonpanic cores

* crash_kexec_post_notifiers : true

  panic()
    crash_smp_send_stop()        <= save crash dump for nonpanic cores
    __crash_kexec()
      machine_crash_shutdown()
        crash_smp_send_stop()    <= just return.

Signed-off-by: Hoeun Ryu <hoeun.ryu@gmail.com>
Reviewed-by: James Morse <james.morse@arm.com>
Tested-by: James Morse <james.morse@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-21 18:01:04 +01:00
Vladimir Murzin 8165f70648 arm64: dma-mapping: Mark atomic_pool as __ro_after_init
atomic_pool is setup once while init stage and never changed after
that, so it is good candidate for __ro_after_init

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-21 16:24:53 +01:00
Vladimir Murzin 2fa59ec8cc arm64: dma-mapping: Do not pass data to gen_pool_set_algo()
gen_pool_first_fit_order_align() does not make use of additional data,
so pass plain NULL there.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-21 16:24:53 +01:00
Javier Martinez Canillas 0bb6f25a6e arm64: zynqmp: Add generic compatible string for I2C EEPROM
The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:37 +02:00
Michal Simek 0286f3ea26 arm64: zynqmp: Add missing mmc aliases in ep108
Add missing mmc aliases.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:36 +02:00
Naga Sureshkumar Relli 142574873e arm64: zynqmp: Enable can1 for ep108
This patch enables can1 for ep108.

Signed-off-by: Naga Sureshkumar Relli <nagasure@xilinx.com>
Reviewed-by: Kedareswara rao Appana <appanad@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:36 +02:00
VNSL Durga 05e0bd10a9 arm64: zynqmp: Added clocks to DT for ep108
Added clks for ep108 platform.

Signed-off-by: VNSL Durga <vnsldurg@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:35 +02:00
Alistair Francis e881e58709 arm64: zynqmp: Use C pre-processor for includes
Change the dtsi include code to use the C pre-processor #include instead
of the device tree /include/. This enables option to use dt binding
headers.

Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
Reviewed-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:35 +02:00
Michal Simek 932bd0d8db arm64: zynqmp: Add fpd/lpd dmas
Wire fpd and lpd dma channels to zynqmp.dtsi.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:34 +02:00
Naga Sureshkumar Relli 2f9ed1999a arm64: zynqmp: Set status disabled in dtsi
Do not enable smmu via dtsi. Enable it in board file when needed.

Signed-off-by: Naga Sureshkumar Relli <nagasure@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:34 +02:00
Michal Simek 27af3993f7 arm64: zynqmp: Add new uartps compatible string
Mainline kernel has r1p12 compatible string now. Use this new compatible
string and also append generic compatible string.
Keep in your mind that using this generic compatible string not all uart
features will be available.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Moritz Fischer <mdf@kernel.org>
2017-08-21 14:07:33 +02:00
Edgar E. Iglesias e199f2cc1e arm64: zynqmp: Correct IRQ nr for the SMMU
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:33 +02:00
Michal Simek 7fb7820c57 arm64: zynqmp: Add support for RTC
Add support for RTC.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:32 +02:00
Bharat Kumar Gogada 4a6514d523 arm64: zynqmp: Adding prefetchable memory space to pcie node
Adding prefetchable memory space to pcie device tree node.
Shifting configuration space to 64-bit address space.
Removing pcie device tree node from amba as it requires size-cells=<2>
in order to access 64-bit address space.

Signed-off-by: Bharat Kumar Gogada <bharatku@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:32 +02:00
Michal Simek 8c50b1e435 arm64: zynqmp: Add CCI-400 node
Add CCI-400 node to DTSI.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:31 +02:00
Michal Simek 17e76f95a4 arm64: zynqmp: Add dcc console for zynqmp
Add debug console to dtsi to be able to enable it in
board dts file.
Keep in your mind that every core has separate dcc port in case you want
to run SMP kernel.
DCC is very helpful communication channel for debugging.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:31 +02:00
Shubhrajyoti Datta e31b7bb8e2 arm64: zynqmp: Add operating points
Adding operating-points-v2 for zynqmp.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:30 +02:00
Stefan Krsmanovic 1e4e25c8ae arm64: zynqmp: Add idle state for ZynqMP
Added the idle-states node to describe zynqmp idle states. Only
cpu-sleep-0 idle state is added in this patch. References to the
idle-states node are added in all CPU nodes. Time values: entry/exit
latencies and min-residency, needs to be tuned. arm,psci-suspend-param
is selected to comply with PSCIv1.0 and Extended StateID format.

Signed-off-by: Stefan Krsmanovic <stefan.krsmanovic@aggios.com>
Acked-by: Will Wong <willw@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:30 +02:00
Michal Simek 400e188fa8 arm64: zynqmp: Add references to cpu nodes
Add missing references to all cpu nodes.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Moritz Fischer <mdf@kernel.org>
2017-08-21 14:07:29 +02:00
Michal Simek 63301178e9 arm64: zynqmp: Move nodes which have no reg property out of bus
Nodes without reg properties shouldn't be placed in amba node.
Move them out.

Warnings:
arch/arm64/boot/dts/xilinx/zynqmp-ep108.dtb: Warning (simple_bus_reg):
Node /amba/misc_clk missing or empty reg/ranges property
arch/arm64/boot/dts/xilinx/zynqmp-ep108.dtb: Warning (simple_bus_reg):
Node /amba/i2c_clk missing or empty reg/ranges property
arch/arm64/boot/dts/xilinx/zynqmp-ep108.dtb: Warning (simple_bus_reg):
Node /amba/sata_clk missing or empty reg/ranges property
arch/arm64/boot/dts/xilinx/zynqmp-ep108.dtb: Warning (simple_bus_reg):

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2017-08-21 14:07:22 +02:00
Catalin Marinas af29678fe7 arm64: Remove the !CONFIG_ARM64_HW_AFDBM alternative code paths
Since the pte handling for hardware AF/DBM works even when the hardware
feature is not present, make the pte accessors implementation permanent
and remove the corresponding #ifdefs. The Kconfig option is kept as it
can still be used to disable the feature at the hardware level.

Reviewed-by: Will Deacon <will.deacon@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-21 11:13:11 +01:00
Catalin Marinas 64c26841b3 arm64: Ignore hardware dirty bit updates in ptep_set_wrprotect()
ptep_set_wrprotect() is only called on CoW mappings which are private
(!VM_SHARED) with the pte either read-only (!PTE_WRITE && PTE_RDONLY) or
writable and software-dirty (PTE_WRITE && !PTE_RDONLY && PTE_DIRTY).
There is no race with the hardware update of the dirty state: clearing
of PTE_RDONLY when PTE_WRITE (a.k.a. PTE_DBM) is set. This patch removes
the code setting the software PTE_DIRTY bit in ptep_set_wrprotect() as
superfluous. A VM_WARN_ONCE is introduced in case the above logic is
wrong or the core mm code changes its use of ptep_set_wrprotect().

Reviewed-by: Will Deacon <will.deacon@arm.com>
Acked-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-21 11:13:00 +01:00
Catalin Marinas 73e86cb03c arm64: Move PTE_RDONLY bit handling out of set_pte_at()
Currently PTE_RDONLY is treated as a hardware only bit and not handled
by the pte_mkwrite(), pte_wrprotect() or the user PAGE_* definitions.
The set_pte_at() function is responsible for setting this bit based on
the write permission or dirty state. This patch moves the PTE_RDONLY
handling out of set_pte_at into the pte_mkwrite()/pte_wrprotect()
functions. The PAGE_* definitions to need to be updated to explicitly
include PTE_RDONLY when !PTE_WRITE.

The patch also removes the redundant PAGE_COPY(_EXEC) definitions as
they are identical to the corresponding PAGE_READONLY(_EXEC).

Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-21 11:12:50 +01:00
Catalin Marinas 0966253d7c kvm: arm64: Convert kvm_set_s2pte_readonly() from inline asm to cmpxchg()
To take advantage of the LSE atomic instructions and also make the code
cleaner, convert the kvm_set_s2pte_readonly() function to use the more
generic cmpxchg().

Cc: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-21 11:12:39 +01:00
Catalin Marinas 3bbf7157ac arm64: Convert pte handling from inline asm to using (cmp)xchg
With the support for hardware updates of the access and dirty states,
the following pte handling functions had to be implemented using
exclusives: __ptep_test_and_clear_young(), ptep_get_and_clear(),
ptep_set_wrprotect() and ptep_set_access_flags(). To take advantage of
the LSE atomic instructions and also make the code cleaner, convert
these pte functions to use the more generic cmpxchg()/xchg().

Reviewed-by: Will Deacon <will.deacon@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-21 11:12:29 +01:00
Romain Perier 6f2dea1f5f arm64: dts: rockchip: Add basic cpu frequencies for RK3368
This adds and enable the operating points that have been tested and are
currently supported by the SoC. This also adds clocks for ARMCLKL and
ARMCLKB.

Signed-off-by: Romain Perier <romain.perier@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-21 12:08:37 +02:00
Joseph Chen 1e28037ec8 arm64: dts: rockchip: add rk805 node for rk3328-evb
RK805 consists of 4 DCDCs, 3 LDOs. It's different from RK808
and RK818 that there are 2 output only GPIOs, we should add
properties "gpio-controller" and "gpio-cells = <2>".

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-21 12:03:51 +02:00
Ingo Molnar 94edf6f3c2 Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU updates from Paul E. McKenney:

 - Removal of spin_unlock_wait()
 - SRCU updates
 - Torture-test updates
 - Documentation updates
 - Miscellaneous fixes
 - CPU-hotplug fixes
 - Miscellaneous non-RCU fixes

Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-08-21 09:45:19 +02:00
Ard Biesheuvel 760b61d76d efi/libstub/arm64: Use hidden attribute for struct screen_info reference
To prevent the compiler from emitting absolute references to screen_info
when building position independent code, redeclare the symbol with hidden
visibility.

Tested-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20170818194947.19347-3-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-08-21 09:43:49 +02:00
Arnd Bergmann b2d3b787e8 Allwinner arm64 device tree changes for 4.14, round 2
The usual improvement patches:
 
   - PMIC, USB and WiFi enabled for Bananapi M64
 
   - New board added: NanoPi A64
 
   - New board added: Olimex A64-OLinuXino
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlmXumoOHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDC2oQ/8D3P940dA95Sz5nuKWeSY5jvDUzIR9AfYhbSP
 W7tpEPenfZbyt55l3m50UptK3WKLSQL7v0R5FamFUljW4VaK96hUJ/gJMUYguso+
 gH04gqrnfqSFpXqxrjBu71H3u+4QBTKU47MIhoY7Rs8K8odKlheBzE/9qzddlDab
 MLWg3mHLlgcmmZRUR2HGTcWOw4xUUhCpXvKSZeoOSU0VRdQIqCnYFbhUS67obUQ9
 XZ5wSuxEnXPYqvhrmFkRIFtirgagsmg247TdlRjnmBMmdyXzzyZE1U+bFiMRyWoN
 x7VbCNnNqjIh79s0z1nHNekOcnaXExAgI/T7qR7M9ALZEbxWVOWn0FBceuKPqARz
 BCU4H2sj5Rq99i8YDbEU9Ms2uwLExisPQEfDqyIBgipD5jU9Re3q2IMsHdH4V97M
 V5DwBncXc2WL5aMfFICKTXR7x9Bt7BU+zjebCFSq1IJ4n48nWSISMQTgWLk0E+5i
 8z7R7e0+hNw13Scymw97bg4Bx8LVQizsyfHSB0uihC4cb61kH+WLyKNCDpPJnj+g
 7aSI0PJ0ItoXqoR2siu5UE8NSQOrZriOtjPrIbJIrj+PKvhn8yhKvsqM7H3wJ37+
 FZVejeF+jCHFrinELso1XYXgvQyKpnBcL2LtaxZ7S889f51q90/FTDO1MnprhC0z
 o8Iq4SA=
 =u/18
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt64-for-4.14-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt64

Pull "Allwinner arm64 device tree changes for 4.14, round 2" from Chen-Yu Tsai:

The usual improvement patches:

  - PMIC, USB and WiFi enabled for Bananapi M64

  - New board added: NanoPi A64

  - New board added: Olimex A64-OLinuXino

* tag 'sunxi-dt64-for-4.14-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: allwinner: a64: Add A64-OLinuXino initial support
  arm64: allwinner: a64: Add initial NanoPi A64 support
  arm64: allwinner: a64: add proper support for the Wi-Fi on BPi M64
  arm64: allwinner: a64: enable AXP803 for Banana Pi M64
  arm64: allwinner: a64: enable USB host controller for BPi M64
2017-08-21 09:33:36 +02:00
Arnd Bergmann ddd0eb3d29 Allwinner arm64 defconfig changes for 4.14
Enable X-Powers AXP series PMIC mfd and regulator support by default.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlmXt7cOHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDCd+xAAiOocrqSB4Lvh3I/s32ooWAT7YhR0gKvVwBkO
 wH5C3Le/AT5T8glLj12/GFCYcd8XZWJWqWAWvrOnPQiDlsnbMulr/lVkJD1FS202
 l4MfV05ulHhXyABXzbL6d0gUMTR+eHVS1T3c5e2seJfTwLCCZZGsJKBoVcRB77r9
 OjBhPkfvnEqhitaTMQ4S8czwuWF4xlfmWoFRl6AkfXDyrnUKC2rx5klT+JFJTJ6P
 Sj1ulpio+pLWF+Y1fC2fzwC/mw7qrYY/Dx6ZJNBVaFBVJgntHKT7nVsDHbifTCOG
 B1/Y8GLhvAvmA4xS6fVGujSZEzk3ejCPbcLsLeYUIFCG339gXtby9yQH7jkV2RYA
 IdcwiqlzQYxabupIpbkRCd/fSCWIkvN0yv4YeUSXCYtdlpJtpIFrRvKdea+FCsNK
 FjKWlD3dzaBtpz0vqEviz5Ipn5qCaP+7GI9wyYldNKKRSSDZAWuNVr27sExNtOZ6
 mMesxFOrx0N+UormN4Q8lB8wyGjUuGDQm8Mfhts8DicKr3MjcxEWTbq/sgt3Vfqj
 f/GONjbohd7vBYQWU3C5UdHGugRUwaSpyJpj1RnxDriXBekCwSpaTLohud+KxXBc
 4/mhPYCLz/x9GpPQnnJYnlXno8+1WcqzntElWBOjEMCtD/0UtpKcbP3Thta6rJHO
 5Q1SxCM=
 =Xxj3
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-config64-for-4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/arm64

Pull "Allwinner arm64 defconfig changes for 4.14" from Chen-Yu Tsai:

Enable X-Powers AXP series PMIC mfd and regulator support by default.

* tag 'sunxi-config64-for-4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: defconfig: Enable REGULATOR_AXP20X
  arm64: defconfig: Enable MFD_AXP20X_RSB
2017-08-21 09:21:26 +02:00
Linus Torvalds 2615a38f14 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer fixes from Thomas Gleixner:
 "A few small fixes for timer drivers:

   - Prevent infinite recursion in the arm architected timer driver with
     ftrace

   - Propagate error codes to the caller in case of failure in EM STI
     driver

   - Adjust a bogus loop iteration in the arm architected timer driver

   - Add a missing Kconfig dependency to the pistachio clocksource to
     prevent build failures

   - Correctly check for IS_ERR() instead of NULL in the shared timer-of
     code"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  clocksource/drivers/arm_arch_timer: Avoid infinite recursion when ftrace is enabled
  clocksource/drivers/Kconfig: Fix CLKSRC_PISTACHIO dependencies
  clocksource/drivers/timer-of: Checking for IS_ERR() instead of NULL
  clocksource/drivers/em_sti: Fix error return codes in em_sti_probe()
  clocksource/drivers/arm_arch_timer: Fix mem frame loop initialization
2017-08-20 09:34:24 -07:00
Jeffy Chen 147f6ec570 arm64: dts: rockchip: Assign mic irq to correct device for Gru
Currently we are assigning mic irq to rt5514 i2c driver, which is wrong.
Assign it to rt5514 spi driver instead.

Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-19 01:16:38 +02:00
Kever Yang 617f4472bd arm64: dts: rockchip: init rk3399 vop clock rates
We need to init vop aclk and hclk incase the U-Boot does not do
the initialize.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-19 01:16:35 +02:00
David Wu 0bb2ef6117 arm64: dts: rockchip: Add pwm nodes for rk3328
There are 4 pwm channels built in rk3328 soc, need to configure
the both APB clock and bus clock.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-19 01:05:06 +02:00
Jeffy Chen a4c6bbcb9e arm64: dts: rockchip: Fix wrong rt5514 dmic delay property for Gru
According to rt5514 dt-binding, it should be "realtek,dmic-init-delay-ms".

Fixes: 48f4d9796d (arm64: dts: rockchip: add Gru/Kevin DTS)
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-19 00:59:57 +02:00
Kees Cook c715b72c1b mm: revert x86_64 and arm64 ELF_ET_DYN_BASE base changes
Moving the x86_64 and arm64 PIE base from 0x555555554000 to 0x000100000000
broke AddressSanitizer.  This is a partial revert of:

  eab09532d4 ("binfmt_elf: use ELF_ET_DYN_BASE only for PIE")
  02445990a9 ("arm64: move ELF_ET_DYN_BASE to 4GB / 4MB")

The AddressSanitizer tool has hard-coded expectations about where
executable mappings are loaded.

The motivation for changing the PIE base in the above commits was to
avoid the Stack-Clash CVEs that allowed executable mappings to get too
close to heap and stack.  This was mainly a problem on 32-bit, but the
64-bit bases were moved too, in an effort to proactively protect those
systems (proofs of concept do exist that show 64-bit collisions, but
other recent changes to fix stack accounting and setuid behaviors will
minimize the impact).

The new 32-bit PIE base is fine for ASan (since it matches the ET_EXEC
base), so only the 64-bit PIE base needs to be reverted to let x86 and
arm64 ASan binaries run again.  Future changes to the 64-bit PIE base on
these architectures can be made optional once a more dynamic method for
dealing with AddressSanitizer is found.  (e.g.  always loading PIE into
the mmap region for marked binaries.)

Link: http://lkml.kernel.org/r/20170807201542.GA21271@beast
Fixes: eab09532d4 ("binfmt_elf: use ELF_ET_DYN_BASE only for PIE")
Fixes: 02445990a9 ("arm64: move ELF_ET_DYN_BASE to 4GB / 4MB")
Signed-off-by: Kees Cook <keescook@chromium.org>
Reported-by: Kostya Serebryany <kcc@google.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-08-18 15:32:02 -07:00
Arnd Bergmann f4da0ed9d6 Qualcomm ARM64 Based defconfig Updates for v4.14
* Enable Qualcomm IPQ8074 clocks and pinctrl
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJZl1NOAAoJEFKiBbHx2RXVQ4sP/i9r8j6VhdoSSbJH2Lyp3J1X
 Rz8j11MoD5sNB1invy0jNKjO9SPTljyZQFl9HWtlp5A/bMpt3PxN1u1N+musdhvn
 tdt76L/9x2IvdjqNz8OYex4NGidFhpP07Ji4z1HBG/OqCmD4LBurxkaRalUzp3Fx
 4hF5YuQ2c++JKibb5myFqIsB3xcSVqs5jX8eQQMT53oNJrQvBVFQiX8TE2/vyq3O
 /TSDu3t1pnKkgdPkw9SQdij42oFITkI9XnB8jBY8MSFcIbwgIRFd1A/d9SacUVc1
 kJHb+UvoMJuyH1jqrerGxCNRXSaPJ7XyiFJTVu9fYmkiMCHHg7FL59bkNHJLjkyg
 uIjhrjghzLuh98klEkOdi/GLo5Y9gO7eaZDROGQg82a7Q8gNkf0xx+rmG+RSor1X
 eHz/LjBPngmihX/cHgqL1jT9wq/PJR1bghHyPtrPPyAgGj5mwsGNyiPAE+0Y9Nys
 N+0k1pmrvv7mpfEVpX1I6aOpKUnRfydS1L4lAOXQFNXh6Ey2ksaAUX6fdfze+tEJ
 s8Irs+hxQW3rGwXjfaYykHIGAlmt0SQC/SQNhLplGbkJcFZzhRU+s/OtppC8XNB0
 bxFJAUZ0//PzxijdvqXX3Qj8HuSTu3rDSLyhvXu65ohRL7jVI386xsD4H1mp4geS
 i+ZU3K5MsnPULGIFEG/r
 =cSAn
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-defconfig-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/arm64

Pull "Qualcomm ARM64 Based defconfig Updates for v4.14" from Andy Gross:

* Enable Qualcomm IPQ8074 clocks and pinctrl

* tag 'qcom-arm64-defconfig-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
  arm64: defconfig: Enable QCOM IPQ8074 clock and pinctrl
2017-08-19 00:06:43 +02:00
Arnd Bergmann 354865087b ZTE SoC updates for 4.14:
- Select PINCTRL for ZTE platform, so that pinctrl driver for ZX296718
    can be enabled.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJZlpAcAAoJEFBXWFqHsHzOsIUIAJ1AonMc+E4nx4Y1TC02QCxL
 I0ddb8fZRYhttW/o/6bkSAi1kxeaR2c1KfgtshgRRTQbs3+PFIu5TNDtIlSKhaAy
 aDeTLqJCBdqxHk6e3dqAuOWY+3g/3cIgx8UYxHf49l5D5AwjHIb3y3x+GkC9Ne27
 nsTFDWiJx05eZ01oT6w6FbXjFjR7FgUx5ckONIoE6Xpts4NccUh5cgyh7yTk77GP
 Nu49eur9zBX4Dp3VeeKeuQouxXFfsCblqd1Yl2bHzNdqIfokxockIl+45u/uu49b
 eltyVBDDWLdCGf/s+SZtnHyKUOXrjMaTuXiOUshTWv0tn3r3Q5EhWyLh1TullAE=
 =hSae
 -----END PGP SIGNATURE-----

Merge tag 'zte-soc-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/arm64

Pull "ZTE SoC updates for 4.14" from Shawn Guo:

 - Select PINCTRL for ZTE platform, so that pinctrl driver for ZX296718
   can be enabled.

* tag 'zte-soc-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: select PINCTRL for ZTE platform
2017-08-19 00:01:03 +02:00
Arnd Bergmann 32f4049a1f This pull request contains ARM64 defconfig changes for Broadcom ARM64-based
SoCs for 4.14, please pull the following:
 
 - Markus enables the Broadcom STB AVS thermal monitoring driver as a module
   which is currently queued in Rui Zhang's tree
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJZldFbAAoJEIfQlpxEBwcEZQcP/2XN6xFj3M+O2Ynl9IQmy30L
 E7liU0F+I2jjl8oFlZs2MtHykKYPvcInMPCuA0AsImJRVfabFEZVG6/vE1IVkOt/
 YCVcnxuA22HHjY+XJdRqL8WbvaHl9EqRaZApAs0XNiZzBTSkG56aYkT/HehdAh19
 OaX0zpBHY4xS3D0UTQzorlQbpH572nqPZeG2QBNLGrJ/+N7gv1+2SXxIyRPPgJKg
 cCLJH2FQqkJBfKL0U+mfDNhJGHeOvg67gcScDIbV6kyhTUqldyWeNt3gcGtjKUZa
 /2wcsC/0mXnXAfi9xt4ocU4hs6+HrihDG1wkxCVs21FTS6h7Hh1tTst0+I3oO29Z
 Uo0Ktg3RNfKglylSSKxJYtz0pyKz3lhjq9iJzWSZxR5LoFDPuBMgGlall1xDF3LV
 IEkmYw9kMRCJ6MQQvrRWRaVnr4YW6k5aI99rh19wzKYCNqvq1TyEO60EDY4S+/Xv
 986unwlKpQvA/xAX7Na6B03M1MGSK1uTN6FTJdVR3yrprMafjs7JpVceAQojOwAP
 6BS4tXkyxJ3QtYtHFfbWWzrv3W4FxkmFb5vgDMUGTDTuI4rtnTVPfVoBrb5niAKA
 Q1DIOxfxCpgXjAho/8dTcnFyG5AyekzZULHcl2T/3+dV1EQLhpyAPlvlw0Aylxz4
 0Pou+My6cZnyZF58liR2
 =xrY6
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-4.14/defconfig-arm64' of http://github.com/Broadcom/stblinux into next/arm64

Pull "Broadcom defconfig-arm64 changes for 4.14" from Florian Fainelli:

This pull request contains ARM64 defconfig changes for Broadcom ARM64-based
SoCs for 4.14, please pull the following:

- Markus enables the Broadcom STB AVS thermal monitoring driver as a module
  which is currently queued in Rui Zhang's tree

* tag 'arm-soc/for-4.14/defconfig-arm64' of http://github.com/Broadcom/stblinux:
  arm64: defconfig: add CONFIG_BRCMSTB_THERMAL
2017-08-18 23:59:07 +02:00
Arnd Bergmann 6d6776e140 mvebu dt64 for 4.14 (part 2)
- Enable uSD on ESPRESSObin (Armada 37xx based board)
 - Add NAND support on Armada 7K/8K SoCs
 - Enable USB host on Armada-7040-DB and Armada-8040-DB boards
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iEYEABECAAYFAlmWtIYACgkQCwYYjhRyO9V67ACfUFPrkPl8Qn34OAjklU+hVPR9
 YJIAn0EI8S47gAuQe0bzEmU45qALL/Xv
 =Vf0A
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-dt64-4.14-2' of git://git.infradead.org/linux-mvebu into next/dt64

Pull "mvebu dt64 for 4.14 (part 2)" from Gregory CLEMENT:

- Enable uSD on ESPRESSObin (Armada 37xx based board)
- Add NAND support on Armada 7K/8K SoCs
- Enable USB host on Armada-7040-DB and Armada-8040-DB boards

* tag 'mvebu-dt64-4.14-2' of git://git.infradead.org/linux-mvebu:
  ARM64: dts: marvell: enable USB host on Armada-8040-DB
  ARM64: dts: marvell: enable USB host on Armada-7040-DB
  ARM64: dts: marvell: add NAND support on the CP110
  ARM64: dts: marvell: armada-37xx: Enable uSD on ESPRESSObin
  arm64: dts: marvell: Fully re-order nodes in Marvell CP110 dtsi files
2017-08-18 23:19:35 +02:00
Rob Herring 6b5fc336c4 arm64: dts: apm: fix PCI bus dtc warnings
dtc recently added PCI bus checks. Fix these warnings.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Duc Dang <dhdang@apm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2017-08-18 23:17:43 +02:00
Arnd Bergmann fc9cc2797a Second Round of Renesas ARM64 Based SoC DT Updates for v4.14
* Add PFC device node to R-Car D3 (r8a77995)
 
   This is a step towards enabling devices that use multiplexed pins
   - including ethernet - on boards that use the r8a7796 SoC.
 
 * Add USB nodes to R-Car M3-W (r8a7796)
 
   This is a step towards enabling USB devices on boards that
   use the r8a7796 SoC.
 
 * Use newly added Gen-3 fallback compat string
 
   This is consistent with ongoing efforts to use per-generation
   fallback strings where appropriate across devices found
   on R-Car SoCs. The aim of the effort being to strike a balance
   between the limited information available about the compatibility
   of devices found on different SoCs and the desire to ease enabling
   devices on new SoCs.
 
   This has no run-time effect due to the presence of a per-SoC
   compat string.
 
 * Cleanup whitespace and extra LVDS port label
 
   Minor cleanups, no run-time effect.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJZlV36AAoJENfPZGlqN0++cwMQAIieFfQzDET0/2dGSWB6oDAt
 fSCCHh4l6B5vufUyhV4rDjm8drKgT5sMTkAYh4Y1oq69NV3BFnFb0gr3BY58Qwyv
 yz4s2o3UNShVcCuSK8rJaMdr8BOBmKoS2WBMjIOBO+znfhfP1zCbBgDNIanSGMY2
 8fmBBB3CF76NM0Juh5FmD1bUsxvzX3ZboyWxQY9u5aIrvcvhau4dcifkKJpcp5gT
 b/0z0Vi2ZraPE1JOlIHghc0ph10TYVl1pYINgWhhtybNSd9D2TXgGFfn5XZkdk2+
 +Az+mookjAsXIm7hj/3la1KflnT67oWNb6rJkz3TWHkNSFW0AbZb0iEnzP02mIMX
 6DsUW8jaAxxviMavLB8+Qi5UMM4q7PY78AWB4VA4etkQf5GL/98Lr/jLayd4vyOt
 tJLeE+c89J+eEbql4UfrTl/fdUIjJzH5P9RMG/DUpqAZpw8GlFjx5ZttPKOMUU7V
 dN5wuG+ujneedn6Kb0RHeI09/q4MVPcEjxbOGq/Xqljp1wYPf44tkDkBd9ecs047
 A9fXEuv3qgU5N8iNyT31nudzNbDTIfDYFg7XBcX5pY7BAnXKbTvfl1mFzHyX9Pm8
 GBGFndOrX4b9aPj3JqXMldQOVpKT5YMyFbA2vl4Z1bbqFqE3cdgHSEp5NcC93qRv
 1colO4fJ/JaDLKsP5dfH
 =6XqO
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm64-dt2-for-v4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt64

Pull "Second Round of Renesas ARM64 Based SoC DT Updates for v4.14" from Simon Horman:

* Add PFC device node to R-Car D3 (r8a77995)

  This is a step towards enabling devices that use multiplexed pins
  - including ethernet - on boards that use the r8a7796 SoC.

* Add USB nodes to R-Car M3-W (r8a7796)

  This is a step towards enabling USB devices on boards that
  use the r8a7796 SoC.

* Use newly added Gen-3 fallback compat string

  This is consistent with ongoing efforts to use per-generation
  fallback strings where appropriate across devices found
  on R-Car SoCs. The aim of the effort being to strike a balance
  between the limited information available about the compatibility
  of devices found on different SoCs and the desire to ease enabling
  devices on new SoCs.

  This has no run-time effect due to the presence of a per-SoC
  compat string.

* Cleanup whitespace and extra LVDS port label

  Minor cleanups, no run-time effect.

* tag 'renesas-arm64-dt2-for-v4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  arm64: dts: r8a77995: add pfc device node
  arm64: dts: r8a7796: Add HSUSB device node
  arm64: dts: r8a7796: Add USB-DMAC device nodes
  arm64: dts: r8a7796: Add USB3.0 host device node
  arm64: dts: r8a7796: add USB2.0 Host (EHCI/OHCI) device nodes
  arm64: dts: r8a7796: add usb2_phy device nodes
  arm64: dts: r8a7795: correct whitespace of companion property
  arm64: dts: r8a7795: Use R-Car SATA Gen3 fallback compat string
  arm64: dts: salvator-common: Remove extra LVDS port label
2017-08-18 23:14:15 +02:00
Arnd Bergmann a282ac2d41 Qualcomm ARM64 Updates for v4.14 Part 2
* Add IPQ8074 SoC and HK01 board support
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJZl1PKAAoJEFKiBbHx2RXVq40QAIoFRYmWBywq/UquEf0qH6UF
 y7Y0Ig7ba6lXLhKJlUx8bQYXtU97CLDuJXw9pIvh8IxPZmYKWQd9zG3FfZZIaRSf
 /zN9SDBZV7Q8JyZXL7u1GCxFC4bouhc6L9n8ttYUGjeiYh4Xq2ZqwOL+YAQhnSQn
 UuYS3eb21/0rCZmWzkdOU7rYSutkhhaCtRWh9QcndZKoOquvnvQgWlVkOELnTbND
 4kc2txOJ8juRnzwpvlfYsOnFet4XQC/RCz1vGSgu3ljXCC5rTYMKd7AstHnsAc2x
 NNJCyi0fdMEbPSAvI3nK7fFinS8rppKfNmAG4T4UjmAtu19wCKmlPblRYhIgZwk9
 YngZh2FbHLSdV/rDJG4E6UoktvV+PeRlajTZofT0su4wLJPxFiTTZWlOPmg/Y9Gf
 dVBw+FRFJRj2L4gu5n+8pKvsQsc9zAv1h+YMJoVRv8Zz45M9QoihPMapAjwDu2hz
 PtCSjKO9ebnl6J8GpI3FaKtzjywLCG12/xp+6NUmSa8lz6sxkTPFwcgRU4Dm+bj6
 xa8Tt63lz/rEfuOBj/+niadSh/mATEiOvUlt0AEVNt/JfjOIxq/s0FDpGwYzJRFE
 z63TvqNZ7V+irEweJPmkyvMR2huqYHo32FqGkXkZQIIyUHzEnnQJWJn3D1wmhYWX
 btJBe1OV0SKm9+xc8XwY
 =JCl4
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-for-4.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt64

Pull "Qualcomm ARM64 Updates for v4.14 Part 2" from Andy Gross:

* Add IPQ8074 SoC and HK01 board support

* tag 'qcom-arm64-for-4.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
  arm64: dts: Add ipq8074 SoC and HK01 board support
2017-08-18 23:04:36 +02:00
Arnd Bergmann 522a6efef2 This pull request contains Broadcom ARM-based SoCs Device Tree changes for
4.14, please pull the following:
 
 - Eric moves the bcm2837 DT file from arm64 to arm because it created a maintenance
   problem and would have required either duplication or cross merges
 
 - Stefan changes how the pinmuxing is defined and pushes it at the board level
   to support Raspberry Pi Zero Wireless. He then adds supports for the actual
   Raspberry Pi Zero Wireless board along with binding documentation. Stefan
   also defines a proper SMP enable-method property and binding for BCM2836
   (Raspbery Pi 2)
 
 - Rafal describes the BCM5301X USB ports correctly in Device Tree such that
   it becomes possible to assign them to specific LED triggers (e.g: USB activity).
   He does the same thing for BCM53573 and defines default LED triggers for USB.
 
 - Jon provides a fix for Northstar Plus which consists in correctly defining
   the "dma-coherent" property for peripherals which are DMA coherent. He also
   does a bit of re-arrangement of the USB DT nodes and finally adds USB 3 PHY
   and host controller support for NorthStar Plus
 
 - Florian adds support for Broadcom's BCM947189ACDBMR reference board which is
   based on BCM47182/53573 and which supports external MoCA (BCM6802)
 
 - Ray fixes the wrong UART2 base address for Cygnus
 
 - Scott moves the v3d node in the proper unit address order and defines the correct
   UART alias for the BCM91130_entphn reference board to be UART3
 
 - Jason adds the DT node for the Cygnus Cortex-A9 Performance Monitoring Unit
 
 - Jonathan adds a bunch of additional peripherals to the Cygnus DTS include file:
   SDHCI, Keypad, SPI, DMA and pinmux configurations
 
 - Raveendra adds the Cygnus OHCI and EHCI Device Tree nodes
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJZldUgAAoJEIfQlpxEBwcEUIgQAIdyDJn+q+mxVhtY8m5xd7ru
 +pnSvzJoL0nNUALPez4SGRBSBsv8oH3zO77aLQcPEcy1W+FCvjGI3eh22bm5PkOO
 UASbrw5c5RfwYI/fVVkTqoZT3d4Xo4ZXTe+ML0wVS7x9Hw8ozQPBCc5hRJ7PQYaO
 U1Ttvpud354xgCFXnvtadDwwTa2W9MdPtsTkrk42Q+p06KZTlONUslAL+DI1RlUw
 Zf81r/93YzmEbsPpnG4nlW1dJTTILPE7AFQfJQ47Fg+aJ/suhYMlEH2EvxqgXhh0
 FzAWd0Zo1p83chArSQdKGEkS+RvSGuSX1D1n1ZVMO2NJZd3RSqLVy6zUB38f+5Eu
 0nOxwxWaG/isyGJ9DtMSyM7ZdgZhYSEI847DC3zOah3/kNquF/NmFFUOPzW79D53
 WJ/qvjxYZ9fcy3p2W3Vk8LSNiBeiQGQ+zodpRjTrHIBocqQUf2yxSeepGV9zeHk8
 ZwwUmtSE/qZd+MAqiki1DdUIWqHvkvOx0BbYZHLqA3ND2Vz6n6hVvMMMDo2+TyN7
 WNhOdrM7Gwt+LNYyW6Gjrvxe5wIYn6Gw3+wPbxTSZH7lBbBC/c56cR0V3nJkpuiS
 C5OwCx1Miocz61GPjKtkaYat3cnRum96X5hsadTLJ/cNscNKdIXqUkPtZ6jLs7VI
 SbSQS4Im7fdGaGeRRsj1
 =WUr3
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-4.14/devicetree' of http://github.com/Broadcom/stblinux into next/dt

Pull "Broadcom devicetree changes for 4.14" from Florian Fainelli:

This pull request contains Broadcom ARM-based SoCs Device Tree changes for
4.14, please pull the following:

- Eric moves the bcm2837 DT file from arm64 to arm because it created a maintenance
  problem and would have required either duplication or cross merges

- Stefan changes how the pinmuxing is defined and pushes it at the board level
  to support Raspberry Pi Zero Wireless. He then adds supports for the actual
  Raspberry Pi Zero Wireless board along with binding documentation. Stefan
  also defines a proper SMP enable-method property and binding for BCM2836
  (Raspbery Pi 2)

- Rafal describes the BCM5301X USB ports correctly in Device Tree such that
  it becomes possible to assign them to specific LED triggers (e.g: USB activity).
  He does the same thing for BCM53573 and defines default LED triggers for USB.

- Jon provides a fix for Northstar Plus which consists in correctly defining
  the "dma-coherent" property for peripherals which are DMA coherent. He also
  does a bit of re-arrangement of the USB DT nodes and finally adds USB 3 PHY
  and host controller support for NorthStar Plus

- Florian adds support for Broadcom's BCM947189ACDBMR reference board which is
  based on BCM47182/53573 and which supports external MoCA (BCM6802)

- Ray fixes the wrong UART2 base address for Cygnus

- Scott moves the v3d node in the proper unit address order and defines the correct
  UART alias for the BCM91130_entphn reference board to be UART3

- Jason adds the DT node for the Cygnus Cortex-A9 Performance Monitoring Unit

- Jonathan adds a bunch of additional peripherals to the Cygnus DTS include file:
  SDHCI, Keypad, SPI, DMA and pinmux configurations

- Raveendra adds the Cygnus OHCI and EHCI Device Tree nodes

* tag 'arm-soc/for-4.14/devicetree' of http://github.com/Broadcom/stblinux:
  ARM: BCM53573: Specify ports for USB LED for Tenda AC9
  ARM: dts: cygnus: Add generic-ehci/ohci nodes
  ARM: dts: cygnus: add serial0 alias for uart3 on bcm91130_entphn
  ARM: dts: cygnus: Add additional peripherals to dtsi
  ARM: dts: cygnus: Enable Performance Monitoring Unit
  ARM: dts: cygnus: place v3d in proper address ordered location
  ARM: dts: cygnus: Fix incorrect UART2 register base
  ARM: dts: bcm283x: Add 32-bit enable method for SMP
  dt-bindings: arm: add SMP enable-method for BCM2836
  ARM: dts: BCM53573: Add Broadcom BCM947189ACDBMR board support
  ARM: dts: BCM5301X: Specify USB ports for USB LEDs of few devices
  ARM: dts: NSP: Add USB3 and USB3 PHY to NSP
  ARM: dts: NSP: Rearrage USB entries
  ARM: dts: NSP: Add dma-coherent to relevant DT entries
  ARM: dts: bcm2835: Add Raspberry Pi Zero W
  dt-bindings: bcm: Add Raspberry Pi Zero W
  ARM: bcm283x: Define UART pinmuxing on board level
  ARM: dts: BCM5301X: Specify USB ports for each controller
  ARM: dts: bcm283x: Move the BCM2837 DT contents from arm64 to arm.
2017-08-18 22:57:43 +02:00
Abhishek Sahu dc6159fd04 arm64: defconfig: Enable QCOM IPQ8074 clock and pinctrl
These configs are required for booting kernel in QCOM
IPQ8074 boards.

Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
Signed-off-by: Varadarajan Narayanan <varada@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2017-08-18 15:48:50 -05:00
Arnd Bergmann d4a3168095 ZTE arm64 device tree updates for 4.14:
- A clean up patch from Shawn Lin to remove the deprecated dwmmc
    property 'num-slots' from ZX296718 device tree.
  - Enable various devices for ZX296718 SoC support, VGA display, I2S
    audio, pinctrl, GPIO, PWM and IRDEC.
  - Update zx296718-evb support to use audio-graph-card for HDMI audio
    and add I2S sound card.
  - Add initial zx296718-pcbox board support with storage, audio,
    display devices enabled.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJZlo4KAAoJEFBXWFqHsHzOee0H/RcMMznh0cKg8UjjlbAuhArW
 4IxmA05TzYBN0VeLNwAzPMn3yrbSZPk5bm7MD/+csv6NuFF2NDlvshyAqWAYueaY
 cLXnQvqE3axK5X9xkfQYKvk0OHhj/xIKzEdnJ3++EwEtnibUEl9g8kunopzTQOaq
 BsOFTTfuey98hCg4WQSpGIqRhfpKXt/UV63e93TuPs1g0/fpmoooMTQdUE+Wmctq
 y1JJb3OC5HMp/NkQRJobmUa2r6R+3T8gmvgFopoBVP543zR5kwJ7bCDXgkzZwIbV
 jtLDVCfg+DAapSFpCbULkvOMMZo/rxjAFxP2b8ICFCzNC9zgWpoSAN8ut1Oznk0=
 =hAsg
 -----END PGP SIGNATURE-----

Merge tag 'zte-dt64-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt64

Pull "ZTE arm64 device tree updates for 4.14" from Shawn Guo:

 - A clean up patch from Shawn Lin to remove the deprecated dwmmc
   property 'num-slots' from ZX296718 device tree.
 - Enable various devices for ZX296718 SoC support, VGA display, I2S
   audio, pinctrl, GPIO, PWM and IRDEC.
 - Update zx296718-evb support to use audio-graph-card for HDMI audio
   and add I2S sound card.
 - Add initial zx296718-pcbox board support with storage, audio,
   display devices enabled.

* tag 'zte-dt64-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: dts: zte: add initial zx296718-pcbox board support
  arm64: dts: zx296718-evb: add I2S sound card support
  arm64: dts: zx296718-evb: use audio-graph-card for HDMI audio
  arm64: dts: zx296718: add irdec device for remote control
  arm64: dts: zx296718: add PWM device support
  arm64: dts: zx296718: add voltage data into OPP table
  arm64: dts: zx296718: set a better parent clock for I2S0
  arm64: dts: zx296718: add pinctrl and gpio devices
  arm64: dts: zx296718: add I2S and I2C audio codec
  arm64: dts: zx296718: add VGA device support
  arm64: dts: zte: remove num-slots from zx296718
2017-08-18 22:47:35 +02:00
Arnd Bergmann bda8f04da8 Freescale arm64 device tree updates for 4.14:
- Correct the typo in fsl-ls1088a-rdb board name.
  - A series from Horia Geantă to consolidate aliases node and enable
    crypto support for ls208xa and ls1088a.
  - Enable USB host support for ls1012a.
  - Enable cpuidle support for ls1088a and ls208xa.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJZlodKAAoJEFBXWFqHsHzOLYAIAIs6YEEhjbJiet6EMmwpneJo
 hTGcU/Gv6q6ozF3uV1+oMqnv64rlzwPR8jTjt29+lCS2I4/zv7Zfr83GR1iMtW90
 hIKUMnWwX/ATY1BC4YB36E0Z0WRolNoKU6iKBujMsfxPFRBXulEQwngZoFS5EvHy
 TDqCTTRHBHhnzPqMPSJ3q/3r6VPTHDtj1ap+zF8EsS156ybPHhajHm/+u3Kvh6Kh
 MnI+Y/SHPFCmy2Pj34SsixGKBEwAukyeddbufUlnrP3wcDnIvv64SWURCsBygEww
 jhAD8rYWCFyhqM4vBbQ8AvXrKJkJDZETRy1GTTwDK2MjWeIzY6JtZ+cOGtyBTwU=
 =6GLX
 -----END PGP SIGNATURE-----

Merge tag 'imx-dt64-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt64

Pull "Freescale arm64 device tree updates for 4.14" from Shawn Guo:
 - Correct the typo in fsl-ls1088a-rdb board name.
 - A series from Horia Geantă to consolidate aliases node and enable
   crypto support for ls208xa and ls1088a.
 - Enable USB host support for ls1012a.
 - Enable cpuidle support for ls1088a and ls208xa.

* tag 'imx-dt64-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: dts: ls1088: Correction in Board name from "L1088A" to "LS1088A"
  arm64: dts: ls208xa: add cpu idle support
  arm64: dts: ls1088a: add cpu idle support
  arm64: dts: freescale: ls1088a: add crypto node
  arm64: dts: freescale: ls208xa: add crypto node
  arm64: dts: freescale: ls208xa: share aliases node
  arm64: dts: ls1012a: add USB host controller nodes
2017-08-18 22:45:30 +02:00
Arnd Bergmann 3004a512ed This pull request contains Broadcom ARM64-based SoCs Device Tree changes for
4.14, please pull the following:
 
 - Scott moves all the Northstar 2 DTS files into a sub-directory to be consistent
   with what was done for stingray and to future proof the addition of new board
   DTS files
 
 - Velibor adds the ARM CCN-502 interconnect DT node to the Stingray SoC
   DTS include file
 
 - Srinath adds the MDIO multiplexer and SATA nodes to the Stingray DTS
   include files
 
 - Anup adds the SP804 timers, FlexRM (mailbox) and RAID engine DT nodes
   to the Stingray DTS include files
 
 - Abishek adds the BGMAC (Ethernet controller) node to the Stingray DTS
   files
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJZldDiAAoJEIfQlpxEBwcEez0P+gPrCZ+Qr8/oXF6Ho8iLlvCM
 jjj6bfQduQRCe3Gc03Z/+rERyEsOKaDA9JKkCY5aBf7mvcCtKGSqjXV3TwugOEnV
 tgMytTBZvhfQcXCN4fIsCMFPB9OVSThV6x9ZObF3vuiMBDVM5t8+t0dCwuCKv/XJ
 0+Dw+TRaXcwu6X9hY8ulgyI9LcnnYQHY3FZ7IzkU+KyCu4wJlCK9mDdPW07+vyl9
 iEC6tXJ2/cn4uPllRuj4hT9O+QAKnjxhoj+ngkO5fc+QprmQV/q+GfILVXqW6uEG
 09Ed15EVsws9mf5YciyeIhBTjvGF6YtKrzOgl29AzUnrX2XYxV7ZfD8PSfnmK/lN
 WDynU9Rz609582q/oCw4rftYhWzVBQP9BjcC7PH5nSDLc+r2bU/V66Hg3NB0kAGq
 x90ug7x3Tddph2d9C9RaoFJ3yx0A9tgspflLlueW0c+rSQq75ysphTH7y3y2QBw9
 4mbwKIK1i7LtbB0k7eweinlh+8OyrCRMbF6CREH738EKAP/I2kDHIoqIm8llOr41
 9quyBR6MIyw8rvINRr1eT0eQ+sEHzyM9Trvne2FoTXKNA9GsDnwsxzjXceliiVJm
 FQjg79HQ3WH1PJ5+cu/+i6qZWDnS/UlnRmIPholO4GQ4bRok/sRCzkwVAgU69A/k
 F35MH4K9X3nTKLan2UyP
 =0wLC
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-4.14/devicetree-arm64' of http://github.com/Broadcom/stblinux into next/dt64

Pull "Broadcom devicetree-arm64 changes for 4.14" from Florian Fainelli:

This pull request contains Broadcom ARM64-based SoCs Device Tree changes for
4.14, please pull the following:

- Scott moves all the Northstar 2 DTS files into a sub-directory to be consistent
  with what was done for stingray and to future proof the addition of new board
  DTS files

- Velibor adds the ARM CCN-502 interconnect DT node to the Stingray SoC
  DTS include file

- Srinath adds the MDIO multiplexer and SATA nodes to the Stingray DTS
  include files

- Anup adds the SP804 timers, FlexRM (mailbox) and RAID engine DT nodes
  to the Stingray DTS include files

- Abishek adds the BGMAC (Ethernet controller) node to the Stingray DTS
  files

* tag 'arm-soc/for-4.14/devicetree-arm64' of http://github.com/Broadcom/stblinux:
  arm64: dts: Add SBA-RAID DT nodes for Stingray SoC
  arm64: dts: Add FlexRM DT nodes for Stingray
  arm64: dts: Add SATA DT nodes for Stingray SoC
  arm64: dts: Add DT node to enable BGMAC driver on Stingray
  arm64: dts: Add sp804 DT nodes for Stingray SoC
  arm64: dts: Add MDIO multiplexer DT node for Stingray
  arm64: dts: Enable stats for CCN-502 interconnect on Stingray
  arm64: dts: move ns2 into northstar2 directory
2017-08-18 22:43:51 +02:00
Arnd Bergmann 36d0f13881 - add SoC mt7622 and its reference board
- cleanup of dts bindings
 - mt6797: add watchdog and delete unused clock
 - add support for SoC mt2701 and it's eval board
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCAA1FiEEiUuSfQSYnG8EMsBltDliWyzx00MFAlmVm7YXHG1hdHRoaWFz
 LmJnZ0BnbWFpbC5jb20ACgkQtDliWyzx00PSPRAAq0zY7T/9zwb2jF077aO8lgsM
 1asY+PxC+NpvGohVtWGY+YN7BiGG+8pLAVhUwojEpT51/uwtdy0gtoUeZCJt5iaa
 3X6jKkh3iy/QHqRfQE/NOSHgtADS2WsTLVGMOTMlEKmHLROlVTee7WIBTB6FyUzm
 syiXJC6c7J3UCq/yJUKBK3c8lBeuSLoRphAaLTz/VgyahPjh6OzFekcvnCAAmrt3
 b0a2ByaCuvr8sSmJlbAHGPwkk8FJG1Q6TL1vQpkLNustmYrds2WmJuLH2ygppCtf
 hX15pGuGGQ22r+qIDzsCHY4fl85H/hReDBjLVa39KTf6hz3XiobYzVHSasmnPazb
 EhvCI0PPnfjfIxr2dX2s9nfZuhsSVvH1LifIsISbZk4OH8Zi1UW/aUjWzHSsH5X3
 ohLeCYfTm+NQ4JQxs+KJrZpWLam8F8X6dwIM+yhi1iokA7xymhaSKM8/dGfnV6xz
 623Ju8cTMMqXzd+Mm9So9As0NAJ49+ld7/NaDdnVRkT7Dj9c7YkiQBnyU42CsNR5
 IP4vIuBPUkK/vypqpPAZPElUiaZriQyUDGCZj/HkwPp6J5Xo0WBqpeL4TuvM90FG
 6WgUr55e5zquIoGHtDW9RyowW4T5KZzQJxoDYZomV+k9Ht2blpQWNVWCr4fbdU9I
 l683rnB3HdqCAamleKM=
 =xfCC
 -----END PGP SIGNATURE-----

Merge tag 'v4.13-next-dts64' of https://github.com/mbgg/linux-mediatek into next/dt64

Pull "arm: mediatek: dts64 updates for v4.14" from Matthias Brugger:

- add SoC mt7622 and its reference board
- cleanup of dts bindings
- mt6797: add watchdog and delete unused clock
- add support for SoC mt2701 and it's eval board

* tag 'v4.13-next-dts64' of https://github.com/mbgg/linux-mediatek:
  arm64: dts: Add Mediatek SoC MT2712 and evaluation board dts and Makefile
  dt-bindings: arm: Add bindings for Mediatek MT2712 SoC Platform
  arm64: dts: mediatek: Delete unused dummy clock for MT6797
  arm64: dts: mediatek: add watchdog to MT6797
  ARM: mediatek: dts: Add MT6797 binding
  ARM: mediatek: dts: Cleanup bindings documentation
  arm64: dts: mt7622: add dts file for MT7622 reference board variant 1
  arm64: dts: mt7622: add basic nodes to the mt7622.dtsi file
2017-08-18 22:33:18 +02:00
Varadarajan Narayanan 41dac73e24 arm64: dts: Add ipq8074 SoC and HK01 board support
Add initial device tree support for the Qualcomm IPQ8074 SoC and
HK01 evaluation board.

Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Manoharan Vijaya Raghavan <mraghava@codeaurora.org>
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
Signed-off-by: Varadarajan Narayanan <varada@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2017-08-18 14:47:25 -05:00
Catalin Marinas a7ba38d680 Merge branch 'for-next/kernel-mode-neon' into for-next/core
* for-next/kernel-mode-neon:
  arm64: neon/efi: Make EFI fpsimd save/restore variables static
  arm64: neon: Forbid when irqs are disabled
  arm64: neon: Export kernel_neon_busy to loadable modules
  arm64: neon: Temporarily add a kernel_mode_begin_partial() definition
  arm64: neon: Remove support for nested or hardirq kernel-mode NEON
  arm64: neon: Allow EFI runtime services to use FPSIMD in irq context
  arm64: fpsimd: Consistently use __this_cpu_ ops where appropriate
  arm64: neon: Add missing header guard in <asm/neon.h>
  arm64: neon: replace generic definition of may_use_simd()
2017-08-18 18:32:50 +01:00
Catalin Marinas cda94408d7 Merge branch 'for-next/perf' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into for-next/core
* 'for-next/perf' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux:
  arm64: perf: add support for Cortex-A35
  arm64: perf: add support for Cortex-A73
  arm64: perf: Remove redundant entries from CPU-specific event maps
  arm64: perf: Connect additional events to pmu counters
  arm64: perf: Allow standard PMUv3 events to be extended by the CPU type
  perf: xgene: Remove unnecessary managed resources cleanup
  arm64: perf: Allow more than one cycle counter to be used
2017-08-18 18:30:30 +01:00
Dave Martin 3b66023d57 arm64: neon/efi: Make EFI fpsimd save/restore variables static
The percpu variables efi_fpsimd_state and efi_fpsimd_state_used,
used by the FPSIMD save/restore routines for EFI calls, are
unintentionally global.

There's no reason for anything outside fpsimd.c to touch these, so
this patch makes them static (as they should have been in the first
place).

Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-08-18 18:29:10 +01:00
Arnd Bergmann 552c497c40 Allwinner fixes for 4.13, round 2
Three fixes adding a missing alias for the Ethernet controller on A64
 boards. One adding a missing interrupt for the pin controller.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlmWY8IOHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDCarBAA5ZLXl9Zp/JugO0JNuCyJpY3Z418hMMieqJ/P
 k2iTdnxSZ3ZhZGqDy/yJtEVS4T1jEe3r+VumUqQI81u6LTKcSCTgngBp0X4pDjKP
 VrPuvJZnaIQXGyxD+WRjeEZ9LwfU1KKwmkNF8ASnx53OyXF/qghl1OcCjV9nTfh8
 HcMBuSK/qqEQ1LoF2gyM1XXHkSD1jSoA/Nzwxgp8ivSlRGzuwbHO0fv42eQfgI7h
 D1Ufz3bAHh58YcarHMp53+6mMcaYNyTYwAzMH6/IAxwQ6CSSN6ZOsoe17+agEmoX
 65pQJWeVx+i4n8WtGPX0uWcz9K/jKyXEdpCLY85ZYHZKTabb6ZTuhMkYyOvXzhMD
 EvSas/dB6nhForHSPHVRYsS9zlwpwO5+LSAufYET0u/ec9RYL3S1f7JHNzYuLvgJ
 /W5EEu063XyrTEF5/xEv7FEd30J2k9418dCPyjXknuDdXbq1/TFAX/fwW+9I/I6W
 oguQbbuO7Op/LClVk15nPLIsdLwv2+QMbuWoqfqtK767x+cEpSYT2KY+s2OUjL8Y
 m7baoPpbAFPWq34ZtWCQzXH3pQ1ghgvnDRVfsskCpNpC3uB0C7Y+/lexRHd2A1j4
 ADf4k3jg2ybFUqADwHnCg7A+/wKCMDgIPLAfWgumgefUnZT0+YT7bP3xINks6/wi
 eguEAXA=
 =lSDD
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-fixes-for-4.13-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into fixes

Pull "Allwinner fixes for 4.13, round 2" from Chen-Yu Tsai:

Three fixes adding a missing alias for the Ethernet controller on A64
boards. One adding a missing interrupt for the pin controller.

* tag 'sunxi-fixes-for-4.13-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: allwinner: h5: fix pinctrl IRQs
  arm64: allwinner: a64: sopine: add missing ethernet0 alias
  arm64: allwinner: a64: pine64: add missing ethernet0 alias
  arm64: allwinner: a64: bananapi-m64: add missing ethernet0 alias
2017-08-18 11:55:44 +02:00
William Wu 1d5bcbbd98 arm64: dts: rockchip: disable tx ipgap linecheck for rk3399 dwc3
RK3399 USB DWC3 controller has a issue that FS/LS devices not
recognized if inserted through USB 3.0 HUB. It's because that
the inter-packet delay between the SSPLIT token to SETUP token
is about 566ns, more then the USB spec requirement.

This patch adds a quirk "snps,dis-tx-ipgap-linecheck-quirk" to
disable the u2mac linestate check to decrease the SSPLIT token
to SETUP token inter-packet delay from 566ns to 466ns.

Signed-off-by: William Wu <william.wu@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2017-08-18 11:16:55 +02:00
Paul E. McKenney 656e7c0c0a Merge branches 'doc.2017.08.17a', 'fixes.2017.08.17a', 'hotplug.2017.07.25b', 'misc.2017.08.17a', 'spin_unlock_wait_no.2017.08.17a', 'srcu.2017.07.27c' and 'torture.2017.07.24c' into HEAD
doc.2017.08.17a: Documentation updates.
fixes.2017.08.17a: RCU fixes.
hotplug.2017.07.25b: CPU-hotplug updates.
misc.2017.08.17a: Miscellaneous fixes outside of RCU (give or take conflicts).
spin_unlock_wait_no.2017.08.17a: Remove spin_unlock_wait().
srcu.2017.07.27c: SRCU updates.
torture.2017.07.24c: Torture-test updates.
2017-08-17 08:10:04 -07:00
Paul E. McKenney 952111d7db arch: Remove spin_unlock_wait() arch-specific definitions
There is no agreed-upon definition of spin_unlock_wait()'s semantics,
and it appears that all callers could do just as well with a lock/unlock
pair.  This commit therefore removes the underlying arch-specific
arch_spin_unlock_wait() for all architectures providing them.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: <linux-arch@vger.kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Andrea Parri <parri.andrea@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Acked-by: Boqun Feng <boqun.feng@gmail.com>
2017-08-17 08:08:59 -07:00
Mathieu Desnoyers 22e4ebb975 membarrier: Provide expedited private command
Implement MEMBARRIER_CMD_PRIVATE_EXPEDITED with IPIs using cpumask built
from all runqueues for which current thread's mm is the same as the
thread calling sys_membarrier. It executes faster than the non-expedited
variant (no blocking). It also works on NOHZ_FULL configurations.

Scheduler-wise, it requires a memory barrier before and after context
switching between processes (which have different mm). The memory
barrier before context switch is already present. For the barrier after
context switch:

* Our TSO archs can do RELEASE without being a full barrier. Look at
  x86 spin_unlock() being a regular STORE for example.  But for those
  archs, all atomics imply smp_mb and all of them have atomic ops in
  switch_mm() for mm_cpumask(), and on x86 the CR3 load acts as a full
  barrier.

* From all weakly ordered machines, only ARM64 and PPC can do RELEASE,
  the rest does indeed do smp_mb(), so there the spin_unlock() is a full
  barrier and we're good.

* ARM64 has a very heavy barrier in switch_to(), which suffices.

* PPC just removed its barrier from switch_to(), but appears to be
  talking about adding something to switch_mm(). So add a
  smp_mb__after_unlock_lock() for now, until this is settled on the PPC
  side.

Changes since v3:
- Properly document the memory barriers provided by each architecture.

Changes since v2:
- Address comments from Peter Zijlstra,
- Add smp_mb__after_unlock_lock() after finish_lock_switch() in
  finish_task_switch() to add the memory barrier we need after storing
  to rq->curr. This is much simpler than the previous approach relying
  on atomic_dec_and_test() in mmdrop(), which actually added a memory
  barrier in the common case of switching between userspace processes.
- Return -EINVAL when MEMBARRIER_CMD_SHARED is used on a nohz_full
  kernel, rather than having the whole membarrier system call returning
  -ENOSYS. Indeed, CMD_PRIVATE_EXPEDITED is compatible with nohz_full.
  Adapt the CMD_QUERY mask accordingly.

Changes since v1:
- move membarrier code under kernel/sched/ because it uses the
  scheduler runqueue,
- only add the barrier when we switch from a kernel thread. The case
  where we switch from a user-space thread is already handled by
  the atomic_dec_and_test() in mmdrop().
- add a comment to mmdrop() documenting the requirement on the implicit
  memory barrier.

CC: Peter Zijlstra <peterz@infradead.org>
CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
CC: Boqun Feng <boqun.feng@gmail.com>
CC: Andrew Hunter <ahh@google.com>
CC: Maged Michael <maged.michael@gmail.com>
CC: gromer@google.com
CC: Avi Kivity <avi@scylladb.com>
CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Paul Mackerras <paulus@samba.org>
CC: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Dave Watson <davejwatson@fb.com>
2017-08-17 07:28:05 -07:00
yt.shen@mediatek.com bdf2cbb2b3 arm64: dts: Add Mediatek SoC MT2712 and evaluation board dts and Makefile
This adds basic chip support for Mediatek 2712

Signed-off-by: YT Shen <yt.shen@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2017-08-17 15:33:45 +02:00
Matthias Brugger 6ebbe61d90 arm64: dts: mediatek: Delete unused dummy clock for MT6797
After adding the clock subsystem to the SOC, the dummy
clock clk32k is not longer needed. Delete it.

Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2017-08-17 15:33:44 +02:00
Matthias Brugger 6717728cac arm64: dts: mediatek: add watchdog to MT6797
This patch adds the watchdog driver to the MT6797 SoC.

Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2017-08-17 15:33:43 +02:00