Commit Graph

11025 Commits

Author SHA1 Message Date
James Morse 3276cc2489 arm64: Update silicon-errata.txt for Neoverse-N1 #1349291
Neoverse-N1 affected by #1349291 may report an Uncontained RAS Error
as Unrecoverable. The kernel's architecture code already considers
Unrecoverable errors as fatal as without kernel-first support no
further error-handling is possible.

Now that KVM attributes SError to the host/guest more precisely
the host's architecture code will always handle host errors that
become pending during world-switch.
Errors misclassified by this errata that affected the guest will be
re-injected to the guest as an implementation-defined SError, which can
be uncontained.

Until kernel-first support is implemented, no workaround is needed
for this issue.

Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-07-05 13:03:30 +01:00
James Morse 5dcd0fdbb4 KVM: arm64: Defer guest entry when an asynchronous exception is pending
SError that occur during world-switch's entry to the guest will be
accounted to the guest, as the exception is masked until we enter the
guest... but we want to attribute the SError as precisely as possible.

Reading DISR_EL1 before guest entry requires free registers, and using
ESB+DISR_EL1 to consume and read back the ESR would leave KVM holding
a host SError... We would rather leave the SError pending and let the
host take it once we exit world-switch. To do this, we need to defer
guest-entry if an SError is pending.

Read the ISR to see if SError (or an IRQ) is pending. If so fake an
exit. Place this check between __guest_enter()'s save of the host
registers, and restore of the guest's. SError that occur between
here and the eret into the guest must have affected the guest's
registers, which we can naturally attribute to the guest.

The dsb is needed to ensure any previous writes have been done before
we read ISR_EL1. On systems without the v8.2 RAS extensions this
doesn't give us anything as we can't contain errors, and the ESR bits
to describe the severity are all implementation-defined. Replace
this with a nop for these systems.

Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-07-05 13:03:30 +01:00
James Morse 0e5b9c085d KVM: arm64: Consume pending SError as early as possible
On systems with v8.2 we switch the 'vaxorcism' of guest SError with an
alternative sequence that uses the ESB-instruction, then reads DISR_EL1.
This saves the unmasking and remasking of asynchronous exceptions.

We do this after we've saved the guest registers and restored the
host's. Any SError that becomes pending due to this will be accounted
to the guest, when it actually occurred during host-execution.

Move the ESB-instruction as early as possible. Any guest SError
will become pending due to this ESB-instruction and then consumed to
DISR_EL1 before the host touches anything.

This lets us account for host/guest SError precisely on the guest
exit exception boundary.

Because the ESB-instruction now lands in the preamble section of
the vectors, we need to add it to the unpatched indirect vectors
too, and to any sequence that may be patched in over the top.

The ESB-instruction always lives in the head of the vectors,
to be before any memory write. Whereas the register-store always
lives in the tail.

Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-07-05 13:03:29 +01:00
James Morse 5d994374e8 KVM: arm64: Make indirect vectors preamble behaviour symmetric
The KVM indirect vectors support is a little complicated. Different CPUs
may use different exception vectors for KVM that are generated at boot.
Adding new instructions involves checking all the possible combinations
do the right thing.

To make changes here easier to review lets state what we expect of the
preamble:
  1. The first vector run, must always run the preamble.
  2. Patching the head or tail of the vector shouldn't remove
     preamble instructions.

Today, this is easy as we only have one instruction in the preamble.
Change the unpatched tail of the indirect vector so that it always
runs this, regardless of patching.

Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-07-05 13:03:29 +01:00
James Morse 3dbf100b0b KVM: arm64: Abstract the size of the HYP vectors pre-amble
The EL2 vector hardening feature causes KVM to generate vectors for
each type of CPU present in the system. The generated sequences already
do some of the early guest-exit work (i.e. saving registers). To avoid
duplication the generated vectors branch to the original vector just
after the preamble. This size is hard coded.

Adding new instructions to the HYP vector causes strange side effects,
which are difficult to debug as the affected code is patched in at
runtime.

Add KVM_VECTOR_PREAMBLE to tell kvm_patch_vector_branch() how big
the preamble is. The valid_vect macro can then validate this at
build time.

Reviewed-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-07-05 13:03:29 +01:00
James Morse 2b68a2a963 arm64: assembler: Switch ESB-instruction with a vanilla nop if !ARM64_HAS_RAS
The ESB-instruction is a nop on CPUs that don't implement the RAS
extensions. This lets us use it in places like the vectors without
having to use alternatives.

If someone disables CONFIG_ARM64_RAS_EXTN, this instruction still has
its RAS extensions behaviour, but we no longer read DISR_EL1 as this
register does depend on alternatives.

This could go wrong if we want to synchronize an SError from a KVM
guest. On a CPU that has the RAS extensions, but the KConfig option
was disabled, we consume the pending SError with no chance of ever
reading it.

Hide the ESB-instruction behind the CONFIG_ARM64_RAS_EXTN option,
outputting a regular nop if the feature has been disabled.

Reported-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-07-05 13:03:29 +01:00
Zhang Lei e644fa18e2 KVM: arm64/sve: Fix vq_present() macro to yield a bool
The original implementation of vq_present() relied on aggressive
inlining in order for the compiler to know that the code is
correct, due to some const-casting issues.  This was causing sparse
and clang to complain, while GCC compiled cleanly.

Commit 0c529ff789 addressed this problem, but since vq_present()
is no longer a function, there is now no implicit casting of the
returned value to the return type (bool).

In set_sve_vls(), this uncast bit value is compared against a bool,
and so may spuriously compare as unequal when both are nonzero.  As
a result, KVM may reject valid SVE vector length configurations as
invalid, and vice versa.

Fix it by forcing the returned value to a bool.

Signed-off-by: Zhang Lei <zhang.lei@jp.fujitsu.com>
Fixes: 0c529ff789 ("KVM: arm64: Implement vq_present() as a macro")
Signed-off-by: Dave Martin <Dave.Martin@arm.com> [commit message rewrite]
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-07-05 12:07:51 +02:00
Mark Brown 65244e5b1f
Merge branch 'regulator-5.3' into regulator-next 2019-07-04 17:34:32 +01:00
Joerg Roedel d95c388586 Merge branches 'x86/vt-d', 'x86/amd', 'arm/smmu', 'arm/omap', 'generic-dma-ops' and 'core' into next 2019-07-04 17:26:48 +02:00
Olof Johansson 4471e44f97 Allwinner DT64 Changes for 5.3 - Round 2
One extra change wiring up the interrupt line for the external RTC chip
 on the Pine H64.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAl0doYYOHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDABuQ/+InlVdkY/6t4TednD1AymSacCtkGKorwE1NMF
 gcUlHyEouElzqCWiYQrjElCP4oXcypBFy/elpc8HtuOLwZwz0lrQ5pk1IcIg5nfq
 KOW9zWSHFX9M+I7Fay04YPaLQcrmXZDVSXAAwF8aAIyjSVDpg82irAQtXU+zTqOg
 XXHacJNmyX702YMbYYYXeOdlVzvQb6qKHzndC5fLsRFVCMgDiBSVmkB1chZ+knUe
 y9TduFtBBGpdFwoSQuaDBJEgh5GuRGRNoHQcKm2q29gpX8QjDHqRpBZS3afFl2D4
 GcsG+BxyQTp3/rHiN386Ii03V7/fTaHTaBi7Wj5mZ0I7LZLMruC9+7oHcfRdro5p
 BQIS2yayXnMymC+LOekIXU5KcGWjzWDU31e6/lTz/lV7nLkUWXy8vTZ/QP+uZio9
 /MgYBRbCjHTJLBghz47rawdeGCcGvxcHnLMvDrJ/DtetWVrm6yxF+EACftki379U
 H79Pw4yfc7RKWWB/7gZVGc2VsWhrVi0D/4Wj2pfws4KqkJkK3L2YE5OtnoL/u55X
 xxGEkY5TTiXLfod/PHdLjxhdhKWeecnObDwKCbMoKAp+JY9QZlQTB7Zk1aOo8hbm
 WvVhK/i5iIdUVEKmx9Uzt1oltFrObYHV80XFXsY9oZ0Vmg1diOGZx7yxs5Spk8IE
 4/vO7A0=
 =cinn
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt64-for-5.3-round-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt

Allwinner DT64 Changes for 5.3 - Round 2

One extra change wiring up the interrupt line for the external RTC chip
on the Pine H64.

* tag 'sunxi-dt64-for-5.3-round-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: dts: allwinner: h6: Pine H64: Add interrupt line for RTC

Link: https://lore.kernel.org/r/20190704065326.GA19010@wens.csie.org
Signed-off-by: Olof Johansson <olof@lixom.net>
2019-07-04 07:02:31 -07:00
Alexandre Ghiti 3876d4a38a x86, arm64: Move ARCH_WANT_HUGE_PMD_SHARE config in arch/Kconfig
ARCH_WANT_HUGE_PMD_SHARE config was declared in both architectures:
move this declaration in arch/Kconfig and make those architectures
select it.

Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
Reviewed-by: Palmer Dabbelt <palmer@sifive.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com> # for arm64
Reviewed-by: Hanjun Guo <guohanjun@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
2019-07-03 15:22:50 -07:00
Ard Biesheuvel 7367bfeb2c crypto: arm64/aes-ce - implement 5 way interleave for ECB, CBC and CTR
This implements 5-way interleaving for ECB, CBC decryption and CTR,
resulting in a speedup of ~11% on Marvell ThunderX2, which has a
very deep pipeline and therefore a high issue latency for NEON
instructions operating on the same registers.

Note that XTS is left alone: implementing 5-way interleave there
would either involve spilling of the calculated tweaks to the
stack, or recalculating them after the encryption operation, and
doing either of those would most likely penalize low end cores.

For ECB, this is not a concern at all, given that we have plenty
of spare registers. For CTR and CBC decryption, we take advantage
of the fact that v16 is not used by the CE version of the code
(which is the only one targeted by the optimization), and so we
can reshuffle the code a bit and avoid having to spill to memory
(with the exception of one extra reload in the CBC routine)

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-07-03 22:13:12 +08:00
Ard Biesheuvel e217413964 crypto: arm64/aes-ce - add 5 way interleave routines
In preparation of tweaking the accelerated AES chaining mode routines
to be able to use a 5-way stride, implement the core routines to
support processing 5 blocks of input at a time. While at it, drop
the 2 way versions, which have been unused for a while now.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-07-03 22:13:12 +08:00
Thomas Gleixner 3419240495 Merge branch 'timers/vdso' into timers/core
so the hyper-v clocksource update can be applied.
2019-07-03 10:50:21 +02:00
Linus Torvalds 4b1fe9b58e arm64 fixes for 5.2
- Fix module allocation when running with KASLR enabled
 
 - Fix broken build due to bug in LLVM linker (ld.lld)
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEPxTL6PPUbjXGY88ct6xw3ITBYzQFAl0Z9bIACgkQt6xw3ITB
 YzS70gf/Trw6+Yy1dHSyz5f2W9OtedFFv+rEGcvUkF6kYFffw7taNj30K6otjkK7
 CYPp9kWYpFhGgE7VwAfQ9NGyAwZ62IvGhQDYdAG72Y39zX7yQ4OHWKdr8K53KYN8
 CThcgXxEPoZw1pP7fwXkaBiiljW6JGF64Hv3ybA1vzGmjiv6wdjO3pQlbXkJu4kk
 xlsLSLOZUDawcRuVNGWwPiToxopVTcAJ3lapYBVmO2dSO00QYv1jvJgV0tK6n68q
 ZQMJbTdNHLIKMRdLcDBGQAwetWkkZ5LazwuiaHQcSQcRgp7IkKrIvEz8vzkdAvcR
 jniDc7bbKYlvlJdiquIOH2l1ElEQyQ==
 =Pp2j
 -----END PGP SIGNATURE-----

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fixes from Will Deacon:
 "Fix a build failure with the LLVM linker and a module allocation
  failure when KASLR is active:

   - Fix module allocation when running with KASLR enabled

   - Fix broken build due to bug in LLVM linker (ld.lld)"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64/efi: Mark __efistub_stext_offset as an absolute symbol explicitly
  arm64: kaslr: keep modules inside module region when KASAN is enabled
2019-07-03 15:57:30 +08:00
Olof Johansson 5ded680cf1 New boards the Khadas Edge family of sbcs and the Hugsun X99 TV box,
both based on rk3399. Small improvements for RockPi, Sapphire and
 rk3328-roc-cc boards. Improvements for the thermal handling on rk3399
 as well as the rock960 board. rk3399 dwc3 clock updates and a small
 start of the dtsi for the new rk3399pro (the one with the connected
 npu).
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAl0Z0WkQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgcKsCACu2pd7WnNmAaRp3DruFNban/9kBcSgxoHy
 x26HBCeEpyKATf/3mSvjF/FXGH3lFI9Mk1QaRxXZuJSvbNHb+/6VlRH9A3BWqzxQ
 kAg548mCt5deWxmpsLrJXvb0LdEUl0VpG4am+GtapW3D1FVrZEC3R95pqZPkXyKk
 TRcZ5N7pcHlXdwdtiJfK0Fw0dFyenY5zpKob/Kb1zva0OSMdLqIGpVFUrbt9lBh9
 VUUbskXqmhJUTnk8s4XCi/kcIOz/quMWfcBmJ7lJnlT9Jtk+KWCjw643C4y/qvqu
 Q1ohoxn+SOYC30fRjZB9m3Lyt9pxp61rbA5a+hTIFsmZYfMUi8nN
 =6kC8
 -----END PGP SIGNATURE-----

Merge tag 'v5.3-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dt

New boards the Khadas Edge family of sbcs and the Hugsun X99 TV box,
both based on rk3399. Small improvements for RockPi, Sapphire and
rk3328-roc-cc boards. Improvements for the thermal handling on rk3399
as well as the rock960 board. rk3399 dwc3 clock updates and a small
start of the dtsi for the new rk3399pro (the one with the connected
npu).

* tag 'v5.3-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: dts: rockchip: Fix USB3 Type-C on rk3399-sapphire
  arm64: dts: rockchip: Update DWC3 modules on RK3399 SoCs
  arm64: dts: rockchip: enable rk3328 watchdog clock
  arm64: dts: rockchip: Add support for Hugsun X99 TV Box
  arm64: dts: rockchip: Define values for the IPA governor for rock960
  arm64: dts: rockchip: Fix multiple thermal zones conflict in rk3399.dtsi
  arm64: dts: rockchip: add core dtsi file for RK3399Pro SoCs
  arm64: dts: rockchip: improve rk3328-roc-cc rgmii performance.
  arm64: dts: rockchip: Add support for Khadas Edge/Edge-V/Captain boards
  arm64: dts: rockchip: Enable HDMI audio on Rock Pi

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-07-01 15:15:55 -07:00
Olof Johansson 299a04586d Spreadtrum's devicetree for v5.3-rc1
This tag contains only two patches for updating coresight compatible string.
 -----BEGIN PGP SIGNATURE-----
 
 iQJNBAABCgA3FiEEFERWgJDWndUxbQqEP1wYyxGauyEFAl0MpsoZHHpoYW5nLmNo
 dW55YW5AbGluYXJvLm9yZwAKCRA/XBjLEZq7IeJJD/9bOfqU7/MnQo8rGOPU8kUd
 EFERpyWyTI0n8RPFUwzOzteJr9GDiv/GnQHHiVaeE6mf9kkybdBwdA8PegS9PwhG
 cneBW6USExZcQ88ybDEH2fuFKUxHQk/GRvrifz0RKcJKcRo6l0Une+1T+lZwpTO1
 HrSP2XdrKpRor5ccnDsiuRL+ftjP5m5EkYsmzrO/xXwuIEseV4wNT7W8Q6q5qwpT
 NNQ7eZtMMUBoTGyQo1rcmt41E38x2zKorqjsGq6zVjqoeZGKsFBmROAmHff5fkXX
 Lp0oUHwjGBa0rEkRe79JaxXSzjRHu3+HLyPSJMvwMQbaA7lfM02ycZ+fKXLDxzqy
 4U8Rs0y0GcNpm70JglEQBtwXSnnUdM/XWf40y7Kqc+LergA0ZtA3H7Ta85xfS0Ey
 18mBm9uXta5fCSE8znRjOTN7fWeg8/T+pd2qLrGs7khyvh5TP+ndHGpfPnLow8Om
 fFy21g6I7lsZB7+JOMdW7ztKK6T7Pcx5bGzEXSB40ztV9HzAwQV3EcX+33TBlp2l
 mN7TDH4RRIpFpBh9Ubdvg54VjMZsGlTD8Xk09C0v5AlB6g7rnpIf+zBvpBsHmulM
 0XyZpaGtMmpJrXR0uPM70Aw2EbDJJiI3z5Nq6rAZeL4vfJCvrEiBZ9G2LtByBDM8
 gS1Kjr/20SbHTqURIp4Yqw==
 =Ak7B
 -----END PGP SIGNATURE-----

Merge tag 'sprd-dt-v5.3-rc1' of https://github.com/lyrazhang/linux into arm/dt

Spreadtrum's devicetree for v5.3-rc1

This tag contains only two patches for updating coresight compatible string.

* tag 'sprd-dt-v5.3-rc1' of https://github.com/lyrazhang/linux:
  arm64: dts: sc9860: Update coresight DT bindings
  arm64: dts: sc9836: Update coresight DT bindings

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-07-01 15:14:52 -07:00
Christoph Hellwig 56a5d00328 arm64: don't use asm-generic/ptrace.h
Doing the indirection through macros for the regs accessors just
makes them harder to read, so implement the helpers directly.

Note that only the helpers actually used are implemented now.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-07-01 17:51:35 +02:00
Catalin Marinas 0c61efd322 Merge branch 'for-next/perf' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux
* 'for-next/perf' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux:
  perf: arm_spe: Enable ACPI/Platform automatic module loading
  arm_pmu: acpi: spe: Add initial MADT/SPE probing
  ACPI/PPTT: Add function to return ACPI 6.3 Identical tokens
  ACPI/PPTT: Modify node flag detection to find last IDENTICAL
  MAINTAINERS: Add maintainer entry for the imx8 DDR PMU driver
  drivers/perf: imx_ddr: Add DDR performance counter support to perf
  dt-bindings: perf: imx8-ddr: add imx8qxp ddr performance monitor
2019-07-01 15:53:35 +01:00
Christian Brauner 7615d9e178
arch: wire-up pidfd_open()
This wires up the pidfd_open() syscall into all arches at once.

Signed-off-by: Christian Brauner <christian@brauner.io>
Reviewed-by: David Howells <dhowells@redhat.com>
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Joel Fernandes (Google) <joel@joelfernandes.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jann Horn <jannh@google.com>
Cc: Andy Lutomirsky <luto@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Aleksa Sarai <cyphar@cyphar.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: linux-api@vger.kernel.org
Cc: linux-alpha@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-ia64@vger.kernel.org
Cc: linux-m68k@lists.linux-m68k.org
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-s390@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: sparclinux@vger.kernel.org
Cc: linux-xtensa@linux-xtensa.org
Cc: linux-arch@vger.kernel.org
Cc: x86@kernel.org
2019-06-28 12:17:55 +02:00
Olof Johansson 72ce9b7cab Qualcomm ARM64 Updates for v5.3 Part 2
* Add SDM845 Cheza support
 * Add TSENS controller and thermal zones for QCS404
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJdFaUdAAoJEFKiBbHx2RXVByQP/2pjLfvxvUEiimdDO6ZxsqhK
 DdcUQr+edWIg9pxZM8Q/oVLNJd+CGXdgG1X9EhPRL66rEDrcADWgxopFE0pQDLwn
 kRZ+nicUID+50Hr5QAG4+maeeh1xjLeondRsmnr1xUNJ0GTcdwj9G8Wua/AlBRhh
 wF6eBzAwVpwvbUWbXMo6OjFyPHnvM8Itsqp5oyGtoy+SoZiWrNYvkhP0rtEM9pmc
 SFk/zbfdYZCDfRdxI6W36gcBlqhBLKDgJ3zlgSoNFdQ3HRC+gI0RylWhEN9aXVK1
 RTIjrmDcIXwqD0zAJnAgUUx2JpWsEpebZ83ZaFfkumfSZwheGmcpu/0D8RNh6b07
 4WrdEnvkwpxH3QSsUL/fHvot5tq8lNu2xgIsDuq+eHZZD2l/VZWR6xsQ9FeiHwm+
 pfKbL/vo46UjN4maJPG4aVCBxR30BFnohECHrnBHntBHQzfg0NVASbm+fPYzC80T
 PxY8XY3UdTs3I7VUS5uDD/GzQtiLd2C//0FeQj8AUOHttElYI2iO6YapXT3jvIic
 nLeBCIjPjXm0+LjUfeZJlw/PcuGkSLxcwGf9HouI1bEUq82HXnoy5vVODltvUZhj
 0GsBc0NN198NuzdWGzu+2cRzukOAAB4aSNS3S5Xf1IMbHXG2vL16Z83WjZ8pp92I
 aEbeYtK34uFYdYZ3+tJD
 =gjue
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-for-5.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dt

Qualcomm ARM64 Updates for v5.3 Part 2

* Add SDM845 Cheza support
* Add TSENS controller and thermal zones for QCS404

* tag 'qcom-arm64-for-5.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: dts: qcom: qcs404: Add missing space for cooling-cells property
  arm64: dts: qcom: sdm845-cheza: add initial cheza dt
  arm64: dts: qcom: qcs404: Add thermal zones for each sensor
  arm64: dts: qcom: qcs404: Add tsens controller

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-27 23:26:40 -07:00
Niklas Cassel 8291e15108 arm64: dts: qcom: qcs404: Add missing space for cooling-cells property
There should be a space both before and after the equal sign.
Add a missing space for the cooling cells property.

Fixes: f48cee3239 ("arm64: dts: qcom: qcs404: Add thermal zones for each sensor")
Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
Acked-by: Amit Kucheria <amit.kucheria@linaro.org>
Signed-off-by: Andy Gross <agross@kernel.org>
2019-06-28 00:20:37 -05:00
David S. Miller d96ff269a0 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
The new route handling in ip_mc_finish_output() from 'net' overlapped
with the new support for returning congestion notifications from BPF
programs.

In order to handle this I had to take the dev_loopback_xmit() calls
out of the switch statement.

The aquantia driver conflicts were simple overlapping changes.

Signed-off-by: David S. Miller <davem@davemloft.net>
2019-06-27 21:06:39 -07:00
Linus Torvalds fe2da896fd ARM: SoC fixes
A smaller batch of fixes, nothing that stands out as risky or scary.
 
 Mostly DTS tweaks for a few issues:
  - GPU fixlets for Meson
  - CPU idle fix for LS1028A
  - PWM interrupt fixes for i.MX6UL
 
 Also, enable a driver (FSL_EDMA) on arm64 defconfig, and a warning and
 two MAINTAINER tweaks.
 -----BEGIN PGP SIGNATURE-----
 
 iQJDBAABCAAtFiEElf+HevZ4QCAJmMQ+jBrnPN6EHHcFAl0ULP8PHG9sb2ZAbGl4
 b20ubmV0AAoJEIwa5zzehBx3h3sP/AkPQ+18tw5r6eY01k7a+JtDIbzKUizc6qh5
 /IBOpynFVv28+VRVrmu1xqek+5iJ7pVkQrJO5Nf0ChbFjo6Hqdk/84tivccyozrY
 4eO/7BALoV57g6inDTLWvhYL3V8bwLYT/1XCP4cN1Di9WBqBhZoe+h8BQr3ztrep
 p3QDjs3WDSzsJ8Oy8NBDUFXtWnZznXaSRzXFKGaUEVIpnlV4OHNW5XbXkLFFHygO
 SmoJdJRPIoKki6Gq0GvZH4U/0U53sa927uwT/02DaxIzlPFfhQtyNw8ZCo//6adg
 tyUTJn7zzOTxFSJZ512EJ4OG6MG9T/3wDGPlT+KJ4Bgv19jSeksdnvCfZrtAuPfu
 j1APenXGRNImSDJOeDrxeKAbW29RpxQjYzvMvGT3iYqH93sD/lz6uIoObCcGzwXQ
 BGIvMKOs3luw6Bk3pJpfBmzMPBkrDWerDgL3qdHnQEYenmbeTCyKFQVOM7f+PQqg
 jKT7gitFq1bT4JXImcInEdY/2nFlBJUgdIwwK273uS0RmeOHmF8TNJpKeaYbO7ds
 fcG177RaLqPoIfx6GbT7kZRVSgBHJrUh6gRmuQcoJaaP4zXdX0+N3S1WYQkGMkos
 t0SU9YPsqDyCpmtCN7TTY5MwhR/jTGLmxArCGBf1+IrfFx1cdmaFPjnJvEI8fCJM
 CJRPfzKQ
 =Jr9u
 -----END PGP SIGNATURE-----

Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM SoC fixes from Olof Johansson:
 "A smaller batch of fixes, nothing that stands out as risky or scary.

  Mostly DTS tweaks for a few issues:

   - GPU fixlets for Meson

   - CPU idle fix for LS1028A

   - PWM interrupt fixes for i.MX6UL

  Also, enable a driver (FSL_EDMA) on arm64 defconfig, and a warning and
  two MAINTAINER tweaks"

* tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
  ARM: dts: imx6ul: fix PWM[1-4] interrupts
  ARM: omap2: remove incorrect __init annotation
  ARM: dts: gemini Fix up DNS-313 compatible string
  ARM: dts: Blank D-Link DIR-685 console
  arm64: defconfig: Enable FSL_EDMA driver
  arm64: dts: ls1028a: Fix CPU idle fail.
  MAINTAINERS: BCM53573: Add internal Broadcom mailing list
  MAINTAINERS: BCM2835: Add internal Broadcom mailing list
  ARM: dts: meson8b: fix the operating voltage of the Mali GPU
  ARM: dts: meson8b: drop undocumented property from the Mali GPU node
  ARM: dts: meson8: fix GPU interrupts and drop an undocumented property
2019-06-28 08:37:04 +08:00
Jeremy Linton d24a0c7099 arm_pmu: acpi: spe: Add initial MADT/SPE probing
ACPI 6.3 adds additional fields to the MADT GICC
structure to describe SPE PPI's. We pick these out
of the cached reference to the madt_gicc structure
similarly to the core PMU code. We then create a platform
device referring to the IRQ and let the user/module loader
decide whether to load the SPE driver.

Tested-by: Hanjun Guo <hanjun.guo@linaro.org>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
2019-06-27 16:53:42 +01:00
Vicente Bergas e1d9149e83 arm64: dts: rockchip: Fix USB3 Type-C on rk3399-sapphire
Before this patch, the Type-C port on the Sapphire board is dead.
If setting the 'regulator-always-on' property to 'vcc5v0_typec0'
then the port works for about 4 seconds at start-up. This is a
sample trace with a memory stick plugged in:
1.- The memory stick LED lights on and kernel reports:
[    4.782999] scsi 0:0:0:0: Direct-Access USB DISK PMAP PQ: 0 ANSI: 4
[    5.904580] sd 0:0:0:0: [sdb] 3913344 512-byte logical blocks: (2.00 GB/1.87 GiB)
[    5.906860] sd 0:0:0:0: [sdb] Write Protect is off
[    5.908973] sd 0:0:0:0: [sdb] Mode Sense: 23 00 00 00
[    5.909122] sd 0:0:0:0: [sdb] No Caching mode page found
[    5.911214] sd 0:0:0:0: [sdb] Assuming drive cache: write through
[    5.951585]  sdb: sdb1
[    5.954816] sd 0:0:0:0: [sdb] Attached SCSI removable disk
2.- 4 seconds later the memory stick LED lights off and kernel reports:
[    9.082822] phy phy-ff770000.syscon:usb2-phy@e450.2: charger = USB_DCP_CHARGER
3.- After a minute the kernel reports:
[   71.666761] usb 5-1: USB disconnect, device number 2
It has been checked that, although the LED is off, VBUS is present.

If, instead, the dr_mode is changed to host and the phy-supply changed
accordingly, then it works. It has only been tested in host mode.

Signed-off-by: Vicente Bergas <vicencb@gmail.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-06-27 16:40:02 +02:00
Enric Balletbo i Serra e6d237fdc1 arm64: dts: rockchip: Update DWC3 modules on RK3399 SoCs
As per binding documentation [1], the DWC3 core should have the "ref",
"bus_early" and "suspend" clocks. As explained in the binding, those
clocks are required for new platforms but not for existing platforms
before commit fe8abf332b ("usb: dwc3: support clocks and resets for
DWC3 core").

However, as those clocks are really treated as required, this ends with
having some annoying messages when the "rockchip,rk3399-dwc3" is used:

[    1.724107] dwc3 fe800000.dwc3: Failed to get clk 'ref': -2
[    1.731893] dwc3 fe900000.dwc3: Failed to get clk 'ref': -2
[    2.495937] dwc3 fe800000.dwc3: Failed to get clk 'ref': -2
[    2.647239] dwc3 fe900000.dwc3: Failed to get clk 'ref': -2

In order to remove those annoying messages, update the DWC3 hardware
module node and add all the required clocks. With this change, both, the
glue node and the DWC3 core node, have the clocks defined, but that's
not really a problem and there isn't a side effect on do this. So, we
can get rid of the annoying get clk error messages.

[1] Documentation/devicetree/bindings/usb/dwc3.txt

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-06-27 14:41:38 +02:00
Leonidas P. Papadakos c9a8af804d arm64: dts: rockchip: enable rk3328 watchdog clock
Add the missing clock property for the watchdog on rk3328.

Signed-off-by: Leonidas P. Papadakos <papadakospan@gmail.com>
[set wdt node to always enabled, as it is not board-specific]
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-06-27 12:17:48 +02:00
Olof Johansson ff3b86096c Samsung DTS ARM64 changes for v5.3
Add Mali nodes to Exynos3 and Exynos4.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAl0Sdk0QHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD16v4D/9o2YIIDOHz3EdUyZisxe5C6LyMys3d5p13
 Ylh8/a8cn3ooCuKnjBx82rzQsmXR52fxsKknq5wz3frD6Mww8xW8Tg/bhxDZOsx5
 leSUOvRgKDR0v2mhj5YamzkwsXz2eySmg9/BiQbtWVNGyR9unkttvBi+ueTWPrlb
 wskbKndiOtDZ1VwltVaTGa8m1pZGs3roSOF8DwLqRE8gV+DdB6S6rrrRrS74X/P+
 DdKwI/GFpvL18KmM9IPkNhM0AShgpiAYqeBV90qe3E6UoIECUH4sOykahoPuIyp0
 qRZcfBNHUc/s9dDLkXKfN0vIouzzoR2HNFc2lcw0oTsmDpNz663QHDfGxz/q1ve7
 1qNJ7HXqJ4jvWRYcfZOk5w5tAYOOTmR8L50GNR7z1sQGDtDd118tge+fGT95cgVC
 zJk7r9EvvW/ruqmFlVc0oXfKZ+2K3gzWSIptsf1rSsbrHALHYFgER4Vstyuby+Tz
 F8D0QzAnxkbemPsbBQcX47lGdq+9xehhrcKN1zdaxYhnhV7LAcsKJUQJkzOA3VS+
 m+ysKsS1OJLFK3B5wXaLMOtLfQPUjW3cXf9VpBh0RHRL9a/9xZjI+q+o6n/++UxF
 k4bn3/hFNjlTPVDSXS9jl+P8qSI8/soiGw4ClduXDQn35C0gXuCBr8+p55yDxxbD
 bFVPms4xlg==
 =LHkX
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt64-5.3' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dt

Samsung DTS ARM64 changes for v5.3

Add Mali nodes to Exynos5433 and Exynos7.

* tag 'samsung-dt64-5.3' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: exynos: Add GPU/Mali T760 node to Exynos7
  arm64: dts: exynos: Add GPU/Mali T760 node to Exynos5433

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-26 19:24:27 -07:00
Olof Johansson 3395a968e5 UniPhier ARM64 SoC DT updates for v5.3
- Migrate to the new binding for the Denali NAND controller
 
 - Use reserved-memory node instead of /memreserve/ for the
   secure memory area
 -----BEGIN PGP SIGNATURE-----
 
 iQJSBAABCgA8FiEEbmPs18K1szRHjPqEPYsBB53g2wYFAl0SOh0eHHlhbWFkYS5t
 YXNhaGlyb0Bzb2Npb25leHQuY29tAAoJED2LAQed4NsG4PcP/A4JX0TqJTonaoof
 7GkhnSGbmDTjYEoSAOSID55AD+f7CN/F9S8zgOju8/y17XIZLfJ3s6tKGCkYo/5Q
 KJAaPtOLwStgb+A6ZKab6Wa2DqQzpP68jSTmDD1+iSrMJik+Aw5OBFeuQ9YJmCO+
 v2FxTM/KVnUJvQT4CDoii+fnQUH0fMQmXF/DgMe9sxZjtr9VZ+C8PrMX62IcrxI/
 s8vN4bmhN6t4cdmty8bcatd8CM3WB88IRLU+YplJZxopu3AjtAKEriQQEiRkJKNA
 9xei6A6zXQIBwwIFE4lUKcUsZTzVfkab3yeEWVEF5+RpHU7uS0LfXqJoSyh0slKz
 7MjY71qEFhV1qVFa9mZNQjk08ml1Qs5SK0E0aK2qW58YiB32d0KHxg99bHzYAJo6
 HlMG0Ie8AWbeoFNHdE3EGrteZslbyz1EsA4MmGLYRGVzynxn89ULNfV4tCKhXMKe
 gdRfukmzpcEYhh+wrv2KzKf41u4u6UTsg2V72NPDv3EB2mAQYrr/uCSQCREntkRy
 c5Pk1tV51Sp7CxUt2qxgJy82ewIO7DDxCKr1UVJq5+EggLmzE0acYjUueO1W0x0R
 br7iSVESEkJI4nP/9XFUp0iAHba58WssXEng1JRcl19RbaIbIQf+1qHNTTrOQ43E
 W6hGxlB4qbmtHgPIHPteIhhF9QTv
 =TggE
 -----END PGP SIGNATURE-----

Merge tag 'uniphier-dt64-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier into arm/dt

UniPhier ARM64 SoC DT updates for v5.3

- Migrate to the new binding for the Denali NAND controller

- Use reserved-memory node instead of /memreserve/ for the
  secure memory area

* tag 'uniphier-dt64-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier:
  arm64: dts: uniphier: add reserved-memory for secure memory
  arm64: dts: uniphier: update to new Denali NAND binding

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-26 19:22:19 -07:00
Olof Johansson 3a0317524b - convert arm boads to json-schema
mt8183:
 - add base SoC and evaluation board
 - add cpacity-dmips-mhz
 - add pinctrl, auxadc, spi, and efuse nodes
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCAA1FiEEiUuSfQSYnG8EMsBltDliWyzx00MFAl0SIGUXHG1hdHRoaWFz
 LmJnZ0BnbWFpbC5jb20ACgkQtDliWyzx00PxEA//S301Yz7ghBVWT3KxwdrbybvR
 MQ/N5aqIGCmMmlzE5iFTuq8l9CV/YOIMl+zopqfrlFpG2ZWLf39F1AsFwK/VqHcB
 K/DD1PAlRjpOV/dVOOQbG8PWaKcI0LTtJH37l1TkNQhl2wlw4qBZ1W7U+vaZw50K
 DUWM/V9uY+MFFV1OcSGIX7su6mPAcZGr0ORVCNgcOILSEAwNC2CDfWqVvN6vw0xG
 TqNu9u/ABwPVKn5wCEj+Nhn8m2o4JgdR+xRkZg5TbROdC1CeUuRm2MnUWOKXrHyP
 XMxU3+DasdRo1kj+U3SBbIXJNsO3nB0zsDXDprgHHzDa/+28bGdWhiA18vf7RfM/
 7yE3Q4u2pc9smZzssHo5difMU45Nm7/TCmijYgr31tRsJ+/2rSJftEdd4mB3ucYB
 MmCnTZEli9UDcS+ihutH5KPJhfu0XZxEgNRr/4CjWBy1xzzWzyw1pzJIVJcKxRBw
 6oDU5Fykou+8MJd7zu2gUaST/xshZbrH1hiMcIza7ERAp3OIem+i6VXc1EVaju0x
 mh+5inVitbr+2WVcK+vbgEf1En8zhRCgcUXUUzR2JkqG/gjS24dIGphhOu7syoj3
 vSHo6/lTMbiPGD+D4/fYXWgQN39M8vHHvOXbkc5xqUj2MlwgB5opex64nuf0bkCP
 2jWTwAG3oFGK7+mNqtg=
 =5f6z
 -----END PGP SIGNATURE-----

Merge tag 'v5.2-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/dt

- convert arm boads to json-schema

mt8183:
- add base SoC and evaluation board
- add cpacity-dmips-mhz
- add pinctrl, auxadc, spi, and efuse nodes

* tag 'v5.2-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux:
  arm64: dts: mt8183: add efuse and Mediatek Chip id node to read
  arm64: dts: mt8183: add spi node
  arm64: dts: mt8183: Add auxadc device node
  arm64: dts: mt8183: add pinctrl device node
  arm64: dts: mt8183: add capacity-dmips-mhz
  arm64: dts: Add Mediatek SoC MT8183 and evaluation board dts and Makefile
  dt-bindings: arm: Convert MediaTek board/soc bindings to json-schema

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-26 19:19:58 -07:00
Olof Johansson 01453179b8 i.MX defconfig changes for 5.3:
* imx_v6_v7_defconfig:
    - PCF857X GPIO expander
    - SIOX bus driver
    - thermal statistics
    - TPM PWM driver
    - OV2680 camera driver
    - SNVS LPGPR NVMEM driver
    - i.MX DT based cpufreq driver
  * arm64 defconfig built-in:
    - i.MX8MM pinctrl and clock
    - i.MX LPI2C driver
    - ROHM_BD718XX PMIC
    - OCOTP NVMEM support
    - i.MX SCU based SoC bus driver
  * arm64 defconfig modules:
    - i.MX SPI driver
    - i.MX system controller watchdog
    - SNVS RTC driver
    - ISL29018 light and proximity sensor driver
    - MPL3115 pressure sensor driver
    - i.MX8 DT based cpufreq support
    - QorIQ Thermal Monitoring Unit driver
    - SNVS power key driver
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJdEteNAAoJEFBXWFqHsHzOHMkH/iL0IHBQGtM3ZzsSDo0afy8A
 aSpd5IxF/Yfud1Alz8lVb74tVUKHYPtP3X3ZuiCYpHr9k+Ri7cSggGFnvgF0NNku
 O26mweFDH4Ik7C8jeTm1eXdy4SRgxzqbNbabepFoZVnCZv1xbGX/T/ZXjF1FwBje
 D7PY/ix5v5n3Qo+vQdWSNUioikBOUKSwNFuLK9kRi+Thqb5zJslt2exRBkILGOxb
 Sjz8hvOM8eNLoQqijGlXWTd2ojT4kRSkUdmf9VCoLnopXJsdwmm2JoOyXVGduwNO
 xoRiF8CUd14IlT79wkQOS3bglkJicRCMet1SwD8vaVrc8Lri5q6RB+9/zfsVvXE=
 =vWTU
 -----END PGP SIGNATURE-----

Merge tag 'imx-defconfig-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/defconfig

i.MX defconfig changes for 5.3:
 * imx_v6_v7_defconfig:
   - PCF857X GPIO expander
   - SIOX bus driver
   - thermal statistics
   - TPM PWM driver
   - OV2680 camera driver
   - SNVS LPGPR NVMEM driver
   - i.MX DT based cpufreq driver
 * arm64 defconfig built-in:
   - i.MX8MM pinctrl and clock
   - i.MX LPI2C driver
   - ROHM_BD718XX PMIC
   - OCOTP NVMEM support
   - i.MX SCU based SoC bus driver
 * arm64 defconfig modules:
   - i.MX SPI driver
   - i.MX system controller watchdog
   - SNVS RTC driver
   - ISL29018 light and proximity sensor driver
   - MPL3115 pressure sensor driver
   - i.MX8 DT based cpufreq support
   - QorIQ Thermal Monitoring Unit driver
   - SNVS power key driver

* tag 'imx-defconfig-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: defconfig: Enable CONFIG_KEYBOARD_SNVS_PWRKEY as module
  ARM: imx_v6_v7_defconfig: Enable CONFIG_ARM_IMX_CPUFREQ_DT
  defconfig: arm64: enable i.MX8 SCU octop driver
  arm64: defconfig: Add i.MX SCU SoC info driver
  arm64: defconfig: Enable CONFIG_QORIQ_THERMAL
  ARM: imx_v6_v7_defconfig: Select CONFIG_NVMEM_SNVS_LPGPR
  arm64: defconfig: ARM_IMX_CPUFREQ_DT=m
  ARM: imx_v6_v7_defconfig: Add TPM PWM support by default
  ARM: imx_v6_v7_defconfig: Enable the OV2680 camera driver
  ARM: imx_v6_v7_defconfig: Enable CONFIG_THERMAL_STATISTICS
  arm64: defconfig: NVMEM_IMX_OCOTP=y for imx8m
  arm64: defconfig: Enable ROHM_BD718XX PMIC for imx8mm-evk
  arm64: defconfig: Enable lpi2c for imx8qxp and sensors
  arm64: defconfig: Enable imx8mm clk/pinctrl
  arm64: defconfig: Enable RTC_DRV_SNVS
  arm64: defconfig: add support for i.MX system controller watchdog
  ARM: imx_v6_v7_defconfig: Enable SIOX bus
  ARM: imx_v6_v7_defconfig: Add GPIO_PCF857X
  arm64: defconfig: Enable CONFIG_SPI_IMX

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-26 19:11:32 -07:00
Olof Johansson e8ac278fc9 Our usual bunch of arm64 defconfig changes, this time mostly to enable
some missing drivers for the Allwinner A64.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCXQyRtgAKCRDj7w1vZxhR
 xYEkAQDDG93lpzjFJBx9bs62SDRD6CRWFgQFbB3Nhp3u7xeCXwD/d1A89oINxhx8
 Fw+Iwzzdix1/wrCGZUohZ2ryQCGyYwo=
 =eg7B
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-config64-for-5.3-201906210813' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/defconfig

Our usual bunch of arm64 defconfig changes, this time mostly to enable
some missing drivers for the Allwinner A64.

* tag 'sunxi-config64-for-5.3-201906210813' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: defconfig: enable Allwinner DMA drivers
  arm64: defconfig: enable sunxi watchdog
  arm64: defconfig: add allwinner sid support

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-26 19:07:58 -07:00
Vivek Unune 3222bcf5f1 arm64: dts: rockchip: Add support for Hugsun X99 TV Box
Add devicetree support for Hugsun X99 TV Box based on RK3399 SoC

Tested with LibreElec running kernel v5.1.2.
Following peripherals tested and work:

Peripheral works:
- UART2 debug
- eMMC
- USB 3.0 port
- USB 2.0 port
- sdio, sd-card
- HDMI
- Ethernet
- WiFi/BT

Not tested:
- Type-C port
- OPTICAL
- IR

Signed-off-by: Vivek Unune <npcomplete13@gmail.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-06-27 00:36:15 +02:00
Daniel Lezcano cd21c54ad9 arm64: dts: rockchip: Define values for the IPA governor for rock960
Currently the default thermal values for the rk3399-rock960 board is
inherited from the generic definition in rk3399.dtsi.

In order to ensure the rock960 has more room for througput before
being capped by the thermal framework and is correctly supported by
the IPA governor, let's define the power values and the right trip
points for better performances:

 - sustainable power is tested to be 1550mW

 - increase the first mitigation point to 75°C in order to get better
   performances

 - the first trip point is 65°C in order to let the IPA to collect
   enough data for the PID regulation when it reaches 75°C

 - restrict the cooling device to the big CPUs as the little CPUs
   contribution to the heating effect can be considered negligible

The intelligent power allocator PID coefficient to be set in sysfs
are:

    k_d: 0
    k_po: 79
    k_i: 10
    k_pu: 50

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-06-27 00:26:04 +02:00
Daniel Lezcano 95f231f801 arm64: dts: rockchip: Fix multiple thermal zones conflict in rk3399.dtsi
Currently the common thermal zones definitions for the rk3399 assumes
multiple thermal zones are supported by the governors. This is not the
case and each thermal zone has its own governor instance acting
individually without collaboration with other governors.

As the cooling device for the CPU and the GPU thermal zones is the
same, each governors take different decisions for the same cooling
device leading to conflicting instructions and an erratic behavior.

As the cooling-maps is about to become an optional property, let's
remove the cpu cooling device map from the GPU thermal zone.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-06-27 00:24:29 +02:00
Jianqun Xu 587b4ee24f arm64: dts: rockchip: add core dtsi file for RK3399Pro SoCs
This patch adds core dtsi file for Rockchip RK3399Pro SoCs,
include rk3399.dtsi. Also enable pciei0/pcie_phy for AP to
talk to NPU part inside SoC.

Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-06-27 00:22:45 +02:00
Peter Geis 393f3875c3 arm64: dts: rockchip: improve rk3328-roc-cc rgmii performance.
Currently the rk3328-roc-cc ethernet is enabled using "snps,force_thresh_dma_mode".
While this works, the performance leaves a lot to be desired.
A previous attempt to improve performance used "snps,txpbl = <0x4>".
This also allowed networking to function, but performance varied between boards.

This patch takes that one step further.
Set txpbl and rxpbl to 0x4.
This can also be accomplished with "snps,pbl =<0x4>" which affects both.
Also set "snps,aal" which forces address aligned DMA mode.

Fixes: 4bc4d6013b (arm64: dts: rockchip: fix rk3328-roc-cc gmac2io stability issues)
Signed-off-by: Peter Geis <pgwipeout@gmail.com>
Tested-by: Leonidas P. Papadakos <papadakospan@gmail.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-06-27 00:22:13 +02:00
jinho lim 7b71665603 arm64: rename dump_instr as dump_kernel_instr
In traps.c, only __die calls dump_instr.
However, this function has sub-function as __dump_instr.

dump_kernel_instr can replace those functions.
By using aarch64_insn_read, it does not have to change fs to KERNEL_DS.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: jinho lim <jordan.lim@samsung.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-26 17:59:15 +01:00
Vincenzo Frascino 3acf4be235 arm64: vdso: Fix compilation with clang older than 8
clang versions older than 8 do not support -mcmodel=tiny.

Add a check to the vDSO Makefile for arm64 to remove the flag when
these versions of the compiler are detected.

Reported-by: Qian Cai <cai@lca.pw>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Qian Cai <cai@lca.pw>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: catalin.marinas@arm.com
Cc: will.deacon@arm.com
Cc: arnd@arndb.de
Cc: linux@armlinux.org.uk
Cc: ralf@linux-mips.org
Cc: paul.burton@mips.com
Cc: daniel.lezcano@linaro.org
Cc: salyzyn@android.com
Cc: pcc@google.com
Cc: shuah@kernel.org
Cc: 0x7f454c46@gmail.com
Cc: linux@rasmusvillemoes.dk
Cc: huw@codeweavers.com
Cc: sthotton@marvell.com
Cc: andre.przywara@arm.com
Cc: luto@kernel.org
Link: https://lkml.kernel.org/r/20190626113632.9295-1-vincenzo.frascino@arm.com
2019-06-26 14:26:55 +02:00
Vincenzo Frascino 6241c4dc6e arm64: compat: Fix __arch_get_hw_counter() implementation
Provide the following fixes for the __arch_get_hw_counter()
implementation on arm64:
- Fallback on syscall when an unstable counter is detected.
- Introduce isb()s before and after the counter read to avoid
speculation of the counter value and of the seq lock
respectively.
The second isb() is a temporary solution that will be revisited
in 5.3-rc1.

These fixes restore the semantics that __arch_counter_get_cntvct()
had on arm64.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: catalin.marinas@arm.com
Cc: will.deacon@arm.com
Cc: arnd@arndb.de
Cc: linux@armlinux.org.uk
Cc: ralf@linux-mips.org
Cc: paul.burton@mips.com
Cc: daniel.lezcano@linaro.org
Cc: salyzyn@android.com
Cc: pcc@google.com
Cc: shuah@kernel.org
Cc: 0x7f454c46@gmail.com
Cc: linux@rasmusvillemoes.dk
Cc: huw@codeweavers.com
Cc: sthotton@marvell.com
Cc: andre.przywara@arm.com
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Link: https://lkml.kernel.org/r/20190625161804.38713-3-vincenzo.frascino@arm.com
2019-06-26 14:26:54 +02:00
Vincenzo Frascino 27e11a9fe2 arm64: Fix __arch_get_hw_counter() implementation
Provide the following fixes for the __arch_get_hw_counter()
implementation on arm64:
 - Fallback on syscall when an unstable counter is detected.
 - Introduce isb()s before and after the counter read to avoid
   speculation of the counter value and of the seq lock
   respectively.
   The second isb() is a temporary solution that will be revisited
   in 5.3-rc1.

These fixes restore the semantics that __arch_counter_get_cntvct()
had on arm64.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: catalin.marinas@arm.com
Cc: will.deacon@arm.com
Cc: arnd@arndb.de
Cc: linux@armlinux.org.uk
Cc: ralf@linux-mips.org
Cc: paul.burton@mips.com
Cc: daniel.lezcano@linaro.org
Cc: salyzyn@android.com
Cc: pcc@google.com
Cc: shuah@kernel.org
Cc: 0x7f454c46@gmail.com
Cc: linux@rasmusvillemoes.dk
Cc: huw@codeweavers.com
Cc: sthotton@marvell.com
Cc: andre.przywara@arm.com
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Link: https://lkml.kernel.org/r/20190625161804.38713-2-vincenzo.frascino@arm.com
2019-06-26 14:26:54 +02:00
Nathan Chancellor aa69fb62be arm64/efi: Mark __efistub_stext_offset as an absolute symbol explicitly
After r363059 and r363928 in LLVM, a build using ld.lld as the linker
with CONFIG_RANDOMIZE_BASE enabled fails like so:

ld.lld: error: relocation R_AARCH64_ABS32 cannot be used against symbol
__efistub_stext_offset; recompile with -fPIC

Fangrui and Peter figured out that ld.lld is incorrectly considering
__efistub_stext_offset as a relative symbol because of the order in
which symbols are evaluated. _text is treated as an absolute symbol
and stext is a relative symbol, making __efistub_stext_offset a
relative symbol.

Adding ABSOLUTE will force ld.lld to evalute this expression in the
right context and does not change ld.bfd's behavior. ld.lld will
need to be fixed but the developers do not see a quick or simple fix
without some research (see the linked issue for further explanation).
Add this simple workaround so that ld.lld can continue to link kernels.

Link: https://github.com/ClangBuiltLinux/linux/issues/561
Link: 025a815d75
Link: 249fde8583
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Debugged-by: Fangrui Song <maskray@google.com>
Debugged-by: Peter Smith <peter.smith@linaro.org>
Suggested-by: Fangrui Song <maskray@google.com>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
[will: add comment]
Signed-off-by: Will Deacon <will@kernel.org>
2019-06-26 11:40:20 +01:00
Ard Biesheuvel 6f496a555d arm64: kaslr: keep modules inside module region when KASAN is enabled
When KASLR and KASAN are both enabled, we keep the modules where they
are, and randomize the placement of the kernel so it is within 2 GB
of the module region. The reason for this is that putting modules in
the vmalloc region (like we normally do when KASLR is enabled) is not
possible in this case, given that the entire vmalloc region is already
backed by KASAN zero shadow pages, and so allocating dedicated KASAN
shadow space as required by loaded modules is not possible.

The default module allocation window is set to [_etext - 128MB, _etext]
in kaslr.c, which is appropriate for KASLR kernels booted without a
seed or with 'nokaslr' on the command line. However, as it turns out,
it is not quite correct for the KASAN case, since it still intersects
the vmalloc region at the top, where attempts to allocate shadow pages
will collide with the KASAN zero shadow pages, causing a WARN() and all
kinds of other trouble. So cap the top end to MODULES_END explicitly
when running with KASAN.

Cc: <stable@vger.kernel.org> # 4.9+
Acked-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@kernel.org>
2019-06-26 11:34:10 +01:00
Anshuman Khandual d9db691d3c arm64/mm: Drop [PTE|PMD]_TYPE_FAULT
This was added part of the original commit which added MMU definitions.

commit 4f04d8f005 ("arm64: MMU definitions").

These symbols never got used as confirmed from a git log search.

git log -p arch/arm64/ | grep PTE_TYPE_FAULT
git log -p arch/arm64/ | grep PMD_TYPE_FAULT

These probably meant to identify non present entries which can now be
achieved with PMD_SECT_VALID or PTE_VALID bits. Hence just drop these
unused symbols which are not required anymore.

Cc: Will Deacon <will.deacon@arm.com>
Cc: Steve Capper <steve.capper@arm.com>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-26 11:28:10 +01:00
Catalin Marinas 6a5b78b32d arm64: compat: No need for pre-ARMv7 barriers on an ARMv8 system
Remove the deprecated (pre-ARMv7) compat barriers as they would not be used
on an ARMv8 system.

Fixes: a7f71a2c89 ("arm64: compat: Add vDSO")
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Cc: Shijith Thotton <sthotton@marvell.com>
Cc: Andre Przywara <andre.przywara@arm.com>
Link: https://lkml.kernel.org/r/20190624140018.GD29120@arrakis.emea.arm.com
2019-06-26 07:28:10 +02:00
Catalin Marinas 94fee4d437 arm64: vdso: Remove unnecessary asm-offsets.c definitions
Since the VDSO code has moved to C from assembly, there is no need to
define and maintain the corresponding asm offsets.

Fixes: 28b1a824a4 ("arm64: vdso: Substitute gettimeofday() with C implementation")
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Cc: Shijith Thotton <sthotton@marvell.com>
Cc: Andre Przywara <andre.przywara@arm.com>
Link: https://lkml.kernel.org/r/20190624135812.GC29120@arrakis.emea.arm.com
2019-06-26 07:28:10 +02:00
Anson Huang b576576d65 arm64: defconfig: Enable CONFIG_KEYBOARD_SNVS_PWRKEY as module
Enable CONFIG_KEYBOARD_SNVS_PWRKEY as module to support i.MX8M
series SoCs' power key.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-26 10:24:07 +08:00
Peng Fan 7a2a373ef0 defconfig: arm64: enable i.MX8 SCU octop driver
Build in CONFIG_NVMEM_IMX_OCOTP_SCU.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Andy Gross <andy.gross@linaro.org>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Olof Johansson <olof@lixom.net>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Leonard Crestez <leonard.crestez@nxp.com>
Cc: Marc Gonzalez <marc.w.gonzalez@free.fr>
Cc: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Cc: linux-arm-kernel@lists.infradead.org
Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-26 10:24:06 +08:00
Anson Huang e64da43fba arm64: defconfig: Add i.MX SCU SoC info driver
This patch selects CONFIG_IMX_SCU_SOC by default to support
i.MX system controller unit SoC info driver.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-26 10:24:06 +08:00
Anson Huang 6ec0c10b5a arm64: defconfig: Enable CONFIG_QORIQ_THERMAL
i.MX8MQ needs CONFIG_QORIQ_THERMAL for thermal support.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-26 10:24:06 +08:00
Leonard Crestez 2c3541c229 arm64: defconfig: ARM_IMX_CPUFREQ_DT=m
For imx8m we need a separate small driver to read "speed grading"
information from fuses and determine which OPPs are supported.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-26 10:24:06 +08:00
Leonard Crestez 1e93acdcc7 arm64: defconfig: NVMEM_IMX_OCOTP=y for imx8m
Enable imx-ocotp nvmem driver for fuse access on imx8m family.
The fuse block stores various system information which will be accessed
by client device drivers, e.g. cpufreq driver needs to access fuse for
CPU speed grading setting.  So this nvmem driver gets enabled as
built-in.

Tested on imx8mm-evk.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-26 10:20:11 +08:00
Rob Clark 79e7739f7b arm64: dts: qcom: sdm845-cheza: add initial cheza dt
This is essentialy a squash of a bunch of history of cheza dt updates
from chromium kernel, some of which were themselves squashes of history
from older chromium kernels.

I don't claim any credit other than wanting to more easily boot upstream
kernel on cheza to have an easier way to test upstream driver work ;-)

I've added below in Cc tags all the original actual authors (apologies
if I missed any).

Cc: Douglas Anderson <dianders@chromium.org>
Cc: Sibi Sankar <sibis@codeaurora.org>
Cc: Evan Green <evgreen@chromium.org>
Cc: Matthias Kaehlcke <mka@chromium.org>
Cc: Abhinav Kumar <abhinavk@codeaurora.org>
Cc: Brian Norris <briannorris@chromium.org>
Cc: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Cc: Rajendra Nayak <rnayak@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Andy Gross <agross@kernel.org>
2019-06-25 13:33:15 -05:00
Amit Kucheria f48cee3239 arm64: dts: qcom: qcs404: Add thermal zones for each sensor
qcs404 has 10 sensors connected to the single TSENS IP. Define a thermal
zone for each of those sensors to expose the temperature of each zone.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Signed-off-by: Andy Gross <agross@kernel.org>
2019-06-25 13:27:26 -05:00
Amit Kucheria 64cf50d0c8 arm64: dts: qcom: qcs404: Add tsens controller
qcs404 has a single TSENS IP block with 10 sensors. The calibration data
is stored in an eeprom (qfprom) that is accessed through the nvmem
framework. We add the qfprom node to allow the tsens sensors to be
calibrated correctly.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Signed-off-by: Andy Gross <agross@kernel.org>
2019-06-25 13:26:15 -05:00
Andrew Murray 5a35441256 clocksource/drivers/arm_arch_timer: Extract elf_hwcap use to arch-helper
Different mechanisms are used to test and set elf_hwcaps between ARM
and ARM64, this results in the use of ifdeferry in this file when
setting/testing for the EVTSTRM hwcap.

Let's improve readability by extracting this to an arch helper.

Signed-off-by: Andrew Murray <andrew.murray@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
2019-06-25 19:49:18 +02:00
Aaro Koskinen d914d4d497 arm64: Implement panic_smp_self_stop()
Currently arm64 uses the default implementation of panic_smp_self_stop()
where the CPU runs in a cpu_relax() loop unable to receive IPIs anymore.
As a result, when two CPUs panic() simultaneously we get "SMP: failed to
stop secondary CPUs" warnings and extra delays before a reset, because
smp_send_stop() still tries to stop the other paniced CPU.

Provide an implementation of panic_smp_self_stop() that is identical to
the IPI CPU stop handler, so that the online status of stopped CPUs gets
properly updated.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-25 16:42:19 +01:00
Jayachandran C dccc9da22d arm64: Improve parking of stopped CPUs
The current code puts the stopped cpus in an 'yield' instruction loop.
Using a busy loop here is unnecessary, we can use the cpu_park_loop()
function here to do a wfi/wfe.

Signed-off-by: Jayachandran C <jnair@caviumnetworks.com>
Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-25 16:42:09 +01:00
Masahiro Yamada aa38571246 arm64: dts: uniphier: add reserved-memory for secure memory
The memory regions specified by /memreserve/ are passed to
early_init_dt_reserve_memory_arch() with nomap=false, so it is
not suitable for reserving memory for Trusted Firmware-A etc.

Use the more robust /reserved-memory node with the no-map property
to prevent the kernel from mapping it.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2019-06-26 00:08:47 +09:00
Masahiro Yamada 53c580c1bd arm64: dts: uniphier: update to new Denali NAND binding
With commit d8e8fd0ebf ("mtd: rawnand: denali: decouple controller
and NAND chips"), the Denali NAND controller driver migrated to the
new controller/chip representation.

Update DT for it.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2019-06-26 00:08:06 +09:00
Mark Brown ca9503fc9e arm64: Expose FRINT capabilities to userspace
ARMv8.5 introduces the FRINT series of instructions for rounding floating
point numbers to integers. Provide a capability to userspace in order to
allow applications to determine if the system supports these instructions.

Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-25 14:24:00 +01:00
Mark Brown 1201937491 arm64: Expose ARMv8.5 CondM capability to userspace
ARMv8.5 adds new instructions XAFLAG and AXFLAG to translate the
representation of the results of floating point comparisons between the
native ARM format and an alternative format used by some software. Add
a hwcap allowing userspace to determine if they are present, since we
referred to earlier CondM extensions as FLAGM call these extensions
FLAGM2.

Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-25 14:21:41 +01:00
Olof Johansson d78cda5aa0 arm64: dts: Amlogic updates for v5.3
Highlights:
 - new SoC: S922X (G12B family, A73/A53 big.LITTLE)
 - new board: Hardkernel odroid-N2 (SoC: G12B S922X)
 - add/use ethernet PHY interrupt/reset lines
 - G12A: add/enable audio, PWM, IR, i2c, SD/eMMC, WiFi, bluetooth, network
 - gxbb-vega-s95 board: fix WiFi/BT, enable more peripherals
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAl0L+UIACgkQWTcYmtP7
 xmXf3A/7B3NzV6ESRTpcbZVh4V2esBb/1DYXYqbiliBGt3xvsmSi1sqQY8DN1Vpq
 M07fzWcwDXVAEa9Yd6UmS2zzxV61AxZHvGhr7+zTJ+2wTpSTfvRcnC3x8AF1rqVy
 TCC/VzDKtA3s/D0se0iHm6y/Aj/ysWBDQ7boT6Ex2pKm0WoC8qT5zDaYFBtV1i4W
 vo0xWhcbGiaif3OzDi6Y9qtPSbgPBOKFG9/tXSasxAR9rqx5LSnEBOP+HQUTMVTj
 K2fLcxAHR0833OrNkg27CUJDZBGI74otgUZv+ZFBYHDbb1x8gWYYBAKzO/sp7bBW
 rJRoZ4ILHfszRJjpH87x8+KCcQunuCq+R9eGTt0B4i871JH2uMPhUp7jiZO4WRbm
 yzFVkfxNM+3F+ZIy82JFPoKnHkTbvwyGCxQm3dzJROMx8f81rIS0EnCSvr4noGst
 +vo+brMgbiUYmKzB9wGklnQBuiRxes5xnoKo7WtiAYwJfmemWak7S8xOcNTnMXdY
 o56o0o+bf5QHM2GkYpUk4E3xst+WTgrALUePSm6MgBmwyePoTkMFywpdHFWT3edX
 lHxAgkRs2zctk0N3fm9nzASC991tTLY4De5/yPLQ5J8yzpXp0gDsIHV0RPJ8y7j8
 EeqAhbwxtLRqxaTPxQQai+5JWe7ExtzLfRQWpgTUn0yzVwPUIpg=
 =f2yc
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-dt64' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt

arm64: dts: Amlogic updates for v5.3

Highlights:
- new SoC: S922X (G12B family, A73/A53 big.LITTLE)
- new board: Hardkernel odroid-N2 (SoC: G12B S922X)
- add/use ethernet PHY interrupt/reset lines
- G12A: add/enable audio, PWM, IR, i2c, SD/eMMC, WiFi, bluetooth, network
- gxbb-vega-s95 board: fix WiFi/BT, enable more peripherals

* tag 'amlogic-dt64' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: (79 commits)
  arm64: dts: meson: g12a: x96-max: add the Ethernet PHY interrupt line
  arm64: dts: meson: g12b: odroid-n2: add the Ethernet PHY interrupt line
  arm64: dts: meson: g12b: odroid-n2: add the Ethernet PHY reset line
  arm64: dts: meson: use the generic Ethernet PHY reset GPIO bindings
  arm64: dts: meson: g12a: x96-max: fix the Ethernet PHY reset line
  arm64: dts: meson: g12a: sort sdio nodes correctly
  arm64: dts: meson-g12a-x96-max: add sound card
  arm64: dts: meson-g12b-odroid-n2: add sound card
  arm64: dts: meson: sei510: add sound card
  arm64: dts: meson: sei510: add max98357a DAC
  ASoC: meson: add tohdmitx DT bindings
  arm64: dts: meson: g12a: add the GPIO interrupt controller
  arm64: dts: meson-g12a-x96-max: bump bluetooth bus speed to 2Mbaud/s
  arm64: dts: meson-g12a-sei510: bump bluetooth bus speed to 2Mbaud/s
  arm64: dts: meson-g12a-x96-max: add 32k clock to bluetooth node
  arm64: dts: meson-g12a-sei510: add 32k clock to bluetooth node
  arm64: dts: meson-g12a-sei510: Enable Wifi SDIO module
  arm64: dts: meson-g12a-x96-max: Enable Wifi SDIO Module
  arm64: dts: meson-g12a-x96-max: add support for sdcard and emmc
  arm64: dts: meson: g12a: add SDIO controller
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 05:52:25 -07:00
Olof Johansson 1242de90ba arm64: tegra: Default configuration changes for v5.3-rc1
This enables the INA3221 power monitoring driver that is used on many of
 the Jetson boards as well as Tegra194 PCIe support.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAl0M7M0THHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zobJxEACOecUby6P9BIr25Kl7vvroKJUN/BSs
 ZOj39txFnZfgsLc5AzKlwNmW7b1lTImZI68mB0B0kny+UGByCSSkGkRHWWSHU2/3
 ijrz8wtqPKtu/WoTj5oHBvunFeYzCqQuSW17WptWtuZamMLLCWIM8+OZU3GFKRBl
 VwFxD369v4zf3hs6zKJ1eyNqNQg94hUxmD5KaxFL+JWZYqjVsrjbYa7mLUmGY+r7
 AZrIn7t/7r2xvjWm2EmNU9W73P0jsrFyu3hsvR1xFVIxXw8bneKsDei89iEwVDBo
 jzSdKRubGaiJvcDx5BeEtWLsgR+sFoZfbrgHyUPlEY36SERnBXdSeDQen/Spttyr
 5wyPcS8dRPqW5zB7WZ8M7JR4eEDEAxgUTBE8j7Tlruhkvf7MeP/R9+8TIhuobFWZ
 LVDijGIaMiITuFtqtXivz7e+/0dkEyXJcmrdyXYZ0qJzQIaITPonUwPV2Q7VOK0h
 GBP+vpBAB8M+Qg+47va+nSz15DDqHv3x/GoHQ7+rEzZVzuJopsg1JbwozcPYWVN9
 PKGqoQbi288Qoo3hIqqHiab0PCY5S09AiN3eIYih2VYBV/bIpxHvAnFchFM6o5WP
 gVcKov06ojhMTLhYW++f4BfM30ySFnhZMv3AhZnR5OvOkpfmxRqd93AMiUIRxJdE
 QskmOXsBQ6r8Nw==
 =NJQ7
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-5.3-arm64-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/defconfig

arm64: tegra: Default configuration changes for v5.3-rc1

This enables the INA3221 power monitoring driver that is used on many of
the Jetson boards as well as Tegra194 PCIe support.

* tag 'tegra-for-5.3-arm64-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  arm64: defconfig: Add Tegra194 PCIe driver
  arm64: defconfig: Add HWMON INA3221 support

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 05:19:55 -07:00
Olof Johansson 111914d79b Renesas ARM64 Based SoC Defconfig Updates for v5.3
Enable as modules:
 * TYPEC_HD3SS3220 B Type-C DRP Port controller driver
 * TDA19988 HDMI encoder driver
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4nzZofWswv9L/nKF189kaWo3T74FAl0MlLoACgkQ189kaWo3
 T77TPA/9Gvfy7hnKOIO0WEPo3ifQcg1pg/iS7Hb7G8Vdj2mjV4/9/OHDdpGOXXMx
 bk0sE6pFMiG2IjI/TgbhF/YI+V/PASLqOFYfK0PoB5l/f3s0c7Z+Gls8WH73UvlQ
 uC1Q5aZMbqWUK5/SWR4ORWxBwAlc2DbWA+tq3+y76efcNHRwWbFrf9tTfOCoNhPV
 7fTEC8WSq3yYP9weZWveq3COprq4890Dtp/luj2FUXbtxJRGcGjL+3ojLoXRH6oG
 ldCkaG0zrYJQbXsXBJTjE2ZT+dBu1gKeR4sVWwTKT8WGBoP27Z4C/+uuhhpXXoY2
 F+CEnWA0WJOYQIz1v+JhMGtLTLp0r5tvgdypeXBeiB9ht/8/JusiV2qFeMXQnY+s
 LJ5wAhdBYzdH/g5apsW/+G1kTQzmx86CVIWtYkmzJ/yWB8q/t7Lr6azxE6338ZDQ
 5RoEGc9gUmNSYk2XK5Aly650uZUDDnldqfG7wuPnelqedZGcbWA9eHxbRwJS+i7u
 4XPBbqOkeUoerNIfIuFF+M4rgGW4PKBsDikgAz5M43Ygu0RVqVrgrRqHGVaqiOfR
 SfFZRzjTNKXJw3Ad/b+F11xawDLJ9LapQRV3w0igmgMGLzAyIB0v7B/OcVLYecf2
 MNYITg8ACa1gWushEZIyepjAL3MD7Fj9b19l7UAW9oWSm8MlwEI=
 =ZT50
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm64-defconfig-for-v5.3' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/defconfig

Renesas ARM64 Based SoC Defconfig Updates for v5.3

Enable as modules:
* TYPEC_HD3SS3220 B Type-C DRP Port controller driver
* TDA19988 HDMI encoder driver

* tag 'renesas-arm64-defconfig-for-v5.3' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  arm64: defconfig: enable TYPEC_HD3SS3220 config option
  arm64: defconfig: Enable TDA19988

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 05:17:38 -07:00
Olof Johansson 37937ee73b i.MX arm64 device tree changes for 5.3:
- Add i.MX8MQ based Librem5 devkit support.
  - Add SNVS power key support for i.MX8MQ and i.MX8MM.
  - Add GPIO alias for imx8mq and i.MX8QXP.
  - A series from Daniel Baluta to add SAI devices and enable audio
    support for imx8mm-evk board.
  - Add DDR performance monitor unit support for i.MX8QXP.
  - Add irqsteer interrupt controller device for i.MX8MQ SoC.
  - Add CPU speed grading and all OPPs for i.MX8MM and i.MX8MQ.
  - Add OCOTP device node for i.MX8QXP.
  - Various device addition for LS1028A: SATA, qDMA, USB, Mali DP500 and
    temperature sensor.
  - Random minor coding style improvements.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJdEcFcAAoJEFBXWFqHsHzOcNYIAICVsBiJX/gU0t+jT7i1KL83
 jDe/DDNg8j9PgR0ElLPejskJgnNYLS0DTWYCY/yPgzK8bwLuqxseVyjXBhyptZ1o
 Oecgp9c/79RGsJi9+tFlPKCB/jL4gvagbNn0kPAAoCv3dV5n5FikuSXfsN1v0DJi
 JpBXO0IHpkqRTJKk7Ran5MzxxaHbWkjMn0u80ewsAioZv/XhPg5xVSsONleQdh2V
 YtZkjcAuA7M9ZOLTKcEFmGyZW/ZTLcW7+xaj9ETJGtMJEi60igPyeFcmd1YIKfIh
 g1RwqgDilwEbh2rNulyZbRkRJKQDjTeHUNRqyGEM54lxAB52VQo5hHYa56K2m9Q=
 =SIR/
 -----END PGP SIGNATURE-----

Merge tag 'imx-dt64-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dt

i.MX arm64 device tree changes for 5.3:
 - Add i.MX8MQ based Librem5 devkit support.
 - Add SNVS power key support for i.MX8MQ and i.MX8MM.
 - Add GPIO alias for imx8mq and i.MX8QXP.
 - A series from Daniel Baluta to add SAI devices and enable audio
   support for imx8mm-evk board.
 - Add DDR performance monitor unit support for i.MX8QXP.
 - Add irqsteer interrupt controller device for i.MX8MQ SoC.
 - Add CPU speed grading and all OPPs for i.MX8MM and i.MX8MQ.
 - Add OCOTP device node for i.MX8QXP.
 - Various device addition for LS1028A: SATA, qDMA, USB, Mali DP500 and
   temperature sensor.
 - Random minor coding style improvements.

* tag 'imx-dt64-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (32 commits)
  arm64: dts: librem5: enable the SNVS power key
  arm64: dts: librem5: Limit the USB to 5V
  arm64: dts: imx8qxp: added ddr performance monitor nodes
  arm64: dts: imx8qxp: sort LSIO subsystem devices
  arm64: dts: imx8qxp: sort alias alphabetically
  arm64: dts: imx8qxp: Add lsio_mu13 node
  arm64: dts: imx8mm-evk: Enable audio codec wm8524
  arm64: dts: fsl: librem5: Add a device tree for the Librem5 devkit
  arm64: dts: fsl: ls1028a: Add qDMA node
  arm64: dts: imx8mm: Enable SNVS power key according to board design
  arm64: dts: imx8mq-evk: Enable SNVS power key
  arm64: dts: ls1028a: add crypto node
  arm64: dts: ls1028a: Add temperature sensor node
  arm64: dts: imx8mm: Move gic node into soc node
  arm64: dts: imx8mm: Move usbphy out of soc node
  arm64: dts: imx8mm: Pass the 'ranges' property
  arm64: dts: imx8mm: Pass a unit name for the 'soc' node
  arm64: dts: fsl: imx8mq: add the snvs power key node
  arm64: dts: ls1028a: fix watchdog device node
  arm64: dts: ls1028a: Enable sata.
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 04:52:55 -07:00
Olof Johansson 9bb03d2644 i.MX DT changes with new clock for 5.3:
- This is a set of device tree changes with new clocks - adding
    clock info for i.MX8 GPIO and SNVS RTC device.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJdEY9IAAoJEFBXWFqHsHzONzkH/iQWmmauxY3ONsDhCOiq2xkz
 agKfN77pgM0005NJl8bP/+wyl6JXozpq31PJrbWPvdZCwElEzBykmWZzyG2cl6Bx
 ajwsldhBzMoYKvjVH0MD3ldPXoANsvfIQiAyVzPHY/tCBHI6hnaJKWCaQ0fsqg5M
 vZ0lf5Adqh9MN7lBKWBz1tbOgqCNAVdhRrvLdrTuoQ/asjivqzl3oXXMWzzrc4lK
 pUGPg1+iqf/MSBVoX8F3ETO9W+GjdjHE0qoGttXf90w2epQZqO5Ta2mfhzyF4fkE
 pcPGKQTASi+zOcUuzgM97TGfWbeOYhd0kRmInZVZt+Wce2Ju4MO5M0Iyxp6xvJI=
 =GaZH
 -----END PGP SIGNATURE-----

Merge tag 'imx-dt-clkdep-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dt

i.MX DT changes with new clock for 5.3:
 - This is a set of device tree changes with new clocks - adding
   clock info for i.MX8 GPIO and SNVS RTC device.

* tag 'imx-dt-clkdep-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: dts: imx8mq: add clock for SNVS RTC node
  arm64: dts: imx8mm: add clock for SNVS RTC node
  arm64: dts: imx8mm: add clock for GPIO node
  clk: imx8m: Add GIC clock
  dt-bindings: clock: imx8m: Add GIC clock
  clk: imx8mm: add SNVS clock to clock tree
  dt-bindings: clock: imx8mm: Add SNVS clock
  clk: imx8mq: add SNVS clock to clock tree
  dt-bindings: clock: imx8mq: Add SNVS clock
  clk: imx8mm: add GPIO clocks to clock tree
  dt-bindings: clock: imx8mm: Add GPIO clocks

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 04:51:42 -07:00
Olof Johansson 9c644f83ea arm64: tegra: Device tree changes for v5.3-rc1
This contains the bulk of the Tegra changes this cycle. It has a bunch
 of improvements across almost all boards. These are mostly small and not
 too exciting additions.
 
 Most notably perhaps is the continuation of Jetson Nano support, which
 is now mostly on feature parity with Jetson TX1.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAl0M7HYTHHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zoeIUD/9udVMjomFq6udm5zzCazIsg7Aab3/4
 ctSLRppFCsiC01BInPTTwSPh0Lv0LJ5EALvIXIDyyel9xApJ66kOCQAVqVCyPUmv
 exqGTsKX44EzAYA2DVJR+qFDqPG4RD37PiBPkys7q7+H+sA8mz+dBNDckv76VYP5
 04xbv3rWC3NAs31i6NuiPitoSxpKBwfvguSdGS0BII8soI0yhilvqNnZp08XRdx7
 0W2AlOZvqFvti7288xeQPk57LJaR6pE7rnb1B5bPJwEzl7zRnu7A20u99xVZclTx
 XtHVXj5c52hVO1DKQ1mUL01xiA6Q0Ru+cfhLiEjaBot4MVoDkL0djeZYWG+Z1TWq
 NdKOaoi1Qiwpd6YbzyCWMvurFt8ZW2QDbu8hGf/jzI6TIogcajVC9gzm82kFnfu3
 1OefivyVx0WiXsTn+yIBI0NAiza5joZgh9fdX7R38l89oOx3VrQwyClJKFNSbkwV
 veI7UTLTZ2iKIwTwEoBaP2kO4SZKZ3/uvXdz89Pck8UooIeC9yU3aqcMZCyInXmn
 +MQlGiI2n5IIRbmNMKNHeece1gDzuvo9RSqzonwxNG3Zvt4J2bbfv7Q91itAJMjr
 mq8vNmVutfS36zgzcfbhfkPVO8hHX4OxOHWISZOtXbyCSzfY3j/HTuPRSLZBU2XZ
 xMFsMfefTEtcWA==
 =Ea0t
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-5.3-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt

arm64: tegra: Device tree changes for v5.3-rc1

This contains the bulk of the Tegra changes this cycle. It has a bunch
of improvements across almost all boards. These are mostly small and not
too exciting additions.

Most notably perhaps is the continuation of Jetson Nano support, which
is now mostly on feature parity with Jetson TX1.

* tag 'tegra-for-5.3-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: (28 commits)
  arm64: tegra: Enable PCIe slots in P2972-0000 board
  arm64: tegra: Add P2U and PCIe controller nodes to Tegra194 DT
  arm64: tegra: Add PEX DPD states as pinctrl properties
  arm64: tegra: Enable ACONNECT, ADMA and AGIC
  arm64: tegra: Add ACONNECT, ADMA and AGIC nodes
  arm64: tegra: Sort device tree nodes alphabetically
  arm64: tegra: Fix Jetson Nano GPU regulator
  arm64: tegra: Update Jetson TX1 GPU regulator timings
  arm64: tegra: Fix AGIC register range
  arm64: tegra: Add INA3221 channel info for Jetson TX2
  arm64: tegra: Enable PWM on Jetson Nano
  arm64: tegra: Enable CPU sleep on Jetson Nano
  arm64: tegra: Add ID EEPROMs on Jetson Nano
  arm64: tegra: Add ID EEPROM for Jetson TX2 Developer Kit
  arm64: tegra: Add ID EEPROM for Jetson TX2 module
  arm64: tegra: Add ID EEPROM for Jetson TX1 Developer Kit
  arm64: tegra: Add ID EEPROM for Jetson TX1 module
  arm64: tegra: Don't use architected timer for suspend on Tegra210
  arm64: tegra: Mark architected timer as always on
  arm64: tegra: Add pin control states for I2C on Tegra186
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 04:48:32 -07:00
Olof Johansson 4cb0f05d37 mvebu dt64 for 5.3 (part 1)
For Armada 7K/8K:
  - enable AP806 thermal throttling with CPUfreq
  - add missing #interrupt-cells property allowing configuring
    interrupt for GPIO
 
 On Armada 8040 based board:
 - Fix PCI memory window on Mcbin board
 - Set SFP power limit on clearfog GT board
 - Disable AP I2C on Armada-8040-DB
 
 On Armada 3720 based board espressobin correct the SPI node used for
 NOR flash
 
 On Armada 7040 DB board add USB current regulators
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCXQy4uwAKCRALBhiOFHI7
 1dW6AJ9EYqnK7TQxYcxXl/gy8E5zaTH8igCeKGKpjV0P2sUv66nC3pmdipvMP68=
 =KCf7
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-dt64-5.3-1' of git://git.infradead.org/linux-mvebu into arm/dt

mvebu dt64 for 5.3 (part 1)

For Armada 7K/8K:
 - enable AP806 thermal throttling with CPUfreq
 - add missing #interrupt-cells property allowing configuring
   interrupt for GPIO

On Armada 8040 based board:
- Fix PCI memory window on Mcbin board
- Set SFP power limit on clearfog GT board
- Disable AP I2C on Armada-8040-DB

On Armada 3720 based board espressobin correct the SPI node used for
NOR flash

On Armada 7040 DB board add USB current regulators

* tag 'mvebu-dt64-5.3-1' of git://git.infradead.org/linux-mvebu:
  arm64: dts: marvell: add missing #interrupt-cells property
  arm64: dts: marvell: armada-7040-db: Add USB current regulators
  arm64: dts: armada-3720-espressobin: correct spi node
  arm64: dts: marvell: Disable AP I2C on Armada-8040-DB
  arm64: dts: marvell: Enable AP806 thermal throttling with CPUfreq
  arm64: dts: marvell: Change core numbering in AP806 thermal-node
  arm64: dts: marvell: clearfog-gt-8k: set SFP power limit
  arm64: dts: marvell: mcbin: enlarge PCI memory window

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 04:47:08 -07:00
Olof Johansson d71036005f Renesas ARM64 Based SoC DT Updates for v5.3
* Renesas SoCs
   - Revise usb2_phy nodes and phys properties according to updated bindings
   - Use ip=on for bootargs
 
 * R-Car Gen 3 and RZ/G2M (r8a774a1) SoCs
   - Add dynamic power coefficient
   - Create thermal zone to support IPA
 
 * R-Car E3 (r8a77990) and D3 (r8a77995) SoCs
   - Point LVDS0 to its companion LVDS1
 
 * R-Car E3 (r8a77990) SoC
   - Corresct register range of DU
 
 * R-Car E3 (r8a77990) based Ebisu board
   - Remove renesas, no-ether-link property
 
 * R-Car D3 (r8a77995) based Draak board:
   - Remove unnecessary index from vin4 port
 
 * RZ/G2M (r8a774a1) based HiHope main and sub-boards:
   - Initial support
   - Describe CPU capacity and topoligy
   - Enable CMT, HDMI, LEDs, PCIe RWDT, SCIF, SDHI, TMU, and USB 2.0 and 3.0
 
 * RZ/G2E (r8a774c0) SoC based EK874 board:
   - Clean up CPU compatible strings
   - Enable: Bluetooth, HDMI audio and video, TPU, USB 3.0 and WLAN
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4nzZofWswv9L/nKF189kaWo3T74FAl0MmxcACgkQ189kaWo3
 T75kSg//b3cCgBVkwq8CnUeoWG8qOXXSFU0YyigRv0sAsZEKpBik4cmPyB4KW/Kn
 BDfM3PCm9Xnq6e6O9xr4r+KHqw4Q27QYTcIIBVgkKqzx1iZi4lytO6H2R12Qjuap
 rFIEBRUlyXfKM/9iNcwiRRMLmYHgY/sYNOcWvn2Vb6X6B4uRA/2QkTL/mGo4XYMv
 FeOVlb1sIZravrru1RVE9wc1nLGk3t0Q9W5okZLMwVrfCIg8o8GwSxK7YOYKfB+p
 q7sA7rQOik61+2VDz2XdYRcS6BwlGJQXOTA/BgD457vsqLKI5wlmO66JcMMnEQo9
 efl0dJS+T/8AiEO11jG1lmT5gsU+nCAI8wK2r7Pa59EnDBZGIrwX67sd/wi9YE8K
 CZ/mP9yd/S/g4Ai/pEiVLlsWJOs0/hmXT3MxZhThvk3vdQ7oq3ada6JUUn17lhPS
 davs6l5wtKfcKSxAXja0Wc5g1TXGQ0UMsSMNJmqX6T3zfgwIb7y3Wvrx8P1B3/q4
 GYpnwBS2d7HISWhYQvaCbA3a5wnsbssjg2BmvOr0Nv0RgX0+qfmxADc2/vx9lcD7
 VlEbjTtWWTV2FtbvsOZSFfMYDXP/LXdI+VWXSu5NHKcybooC/cuUYzNVOBsYda/k
 pSOW/EIou8kC4XlRGh3Vf/JNU4PagujDRVojhUwkztcjm+dteeY=
 =Qsip
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm64-dt-for-v5.3' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/dt

Renesas ARM64 Based SoC DT Updates for v5.3

* Renesas SoCs
  - Revise usb2_phy nodes and phys properties according to updated bindings
  - Use ip=on for bootargs

* R-Car Gen 3 and RZ/G2M (r8a774a1) SoCs
  - Add dynamic power coefficient
  - Create thermal zone to support IPA

* R-Car E3 (r8a77990) and D3 (r8a77995) SoCs
  - Point LVDS0 to its companion LVDS1

* R-Car E3 (r8a77990) SoC
  - Corresct register range of DU

* R-Car E3 (r8a77990) based Ebisu board
  - Remove renesas, no-ether-link property

* R-Car D3 (r8a77995) based Draak board:
  - Remove unnecessary index from vin4 port

* RZ/G2M (r8a774a1) based HiHope main and sub-boards:
  - Initial support
  - Describe CPU capacity and topoligy
  - Enable CMT, HDMI, LEDs, PCIe RWDT, SCIF, SDHI, TMU, and USB 2.0 and 3.0

* RZ/G2E (r8a774c0) SoC based EK874 board:
  - Clean up CPU compatible strings
  - Enable: Bluetooth, HDMI audio and video, TPU, USB 3.0 and WLAN

* tag 'renesas-arm64-dt-for-v5.3' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (53 commits)
  arm64: dts: renesas: hihope-common: Remove "label" from LEDs
  arm64: dts: renesas: hihope-common: Add HDMI support
  arm64: dts: renesas: r8a774a1: Add HDMI encoder instance
  arm64: dts: renesas: r8a774a1: Add dynamic power coefficient
  arm64: dts: renesas: r8a774a1: Create thermal zone to support IPA
  arm64: dts: renesas: r8a774a1: Add CPU capacity-dmips-mhz
  arm64: dts: renesas: r8a774a1: Add CPU topology on r8a774a1 SoC
  arm64: dts: renesas: hihope-common: Add LEDs support
  arm64: dts: renesas: hihope-common: Enable USB3.0
  arm64: dts: renesas: hihope-common: Add USB 2.0 support
  arm64: dts: renesas: r8a774a1: Fix USB 2.0 clocks
  arm64: dts: renesas: r8a774a1: Add TMU device nodes
  arm64: dts: renesas: r8a774a1: Add CMT device nodes
  arm64: dts: renesas: hihope-common: Add uSD and eMMC
  arm64: dts: renesas: r8a77990: Fix register range of display node
  arm64: dts: renesas: cat874: Enable usb role switch support
  arm64: dts: renesas: cat874: Enable USB3.0 host/peripheral device node
  arm64: dts: renesas: r8a7799[05]: Point LVDS0 to its companion LVDS1
  arm64: dts: renesas: hihope-common: Add RWDT support
  arm64: dts: renesas: hihope-rzg2-ex: Enable PCIe support
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 04:45:45 -07:00
Olof Johansson 8fbf1bb715 This time we only have a single patch for our command branch between
arm and arm64, a fix for the array syntax raised by our DT schemas.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCXQyRegAKCRDj7w1vZxhR
 xQ7SAP9gWeCGiyq+N2lvgFUOMVUezlDcJx2IVjoJvSQcyjeD2QD/W0m+fldHe7BB
 PEv3s5BbYAYFHe+krqTPejcLK+c5hwg=
 =4UQl
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-h3-h5-for-5.3-201906210812' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt

This time we only have a single patch for our command branch between
arm and arm64, a fix for the array syntax raised by our DT schemas.

* tag 'sunxi-h3-h5-for-5.3-201906210812' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  ARM: dts: sunxi: h3/h5: Fix GPIO regulator state array

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 04:42:05 -07:00
Olof Johansson 3264c72dcc Our usual bunch of arm64 DT changes, this time with:
- Some fixes for the DT schemas that were added during this release
   - Wifi support for the H6
   - LRADC suppport for the A64
   - Some background work on A64 boards, to enable various devices such
     as touchscreens, PMIC, audio, wifi, etc.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCXQyQcQAKCRDj7w1vZxhR
 xbybAP9uAJcwix86BmYLIA3I7n1fT1oLooS+WfPL4btmqYBykAD/fK7Nn1g3alWg
 7c61AEJKDHZwObU1dNpxjvsjT+/u+Qc=
 =B/U5
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt64-for-5.3-201906210808' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt

Our usual bunch of arm64 DT changes, this time with:
  - Some fixes for the DT schemas that were added during this release
  - Wifi support for the H6
  - LRADC suppport for the A64
  - Some background work on A64 boards, to enable various devices such
    as touchscreens, PMIC, audio, wifi, etc.

* tag 'sunxi-dt64-for-5.3-201906210808' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: dts: allwinner: h6: Add DMA node
  arm64: dts: allwinner: a64: Add lradc node
  dt-bindings: input: sun4i-lradc-keys: Add A64 compatible
  arm64: dts: allwinner: h6: add r_watchog node
  arm64: dts: allwinner: h6: add watchdog node
  dt-bindings: watchdog: add Allwinner H6 watchdog
  arm64: dts: allwinner: a64: Enable audio on Teres-I
  arm64: dts: allwinner: a64: bananapi-m64: Enable PMIC USB power supply
  arm64: dts: allwinner: axp803: add USB power supply node
  arm64: dts: allwinner: a64: Add pinmux for RGB666 LCD
  arm64: dts: allwinner: a64: orangepi-win: Add wifi and bluetooth nodes
  arm64: dts: allwinner: h6: add PIO VCC bank supplies for Pine H64
  arm64: dts: allwinner: a64-oceanic-5205-5inmfd: Enable GT911 CTP
  arm64: dts: allwinner: a64-amarula-relic: Add GT5663 CTP node
  arm64: dts: allwinner: a64: move I2C pinctrl to dtsi

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 04:41:39 -07:00
Olof Johansson 750ee7858f Qualcomm ARM64 Updates for v5.3
* Switch to use second gen PON on PM8998
 * Add PSCI cupidle states for MSM8996, MSM8998,and SDM845
 * Add MSM8996 UFS phy reset controller
 * Add propre cpu capacity scaling on MSM8996
 * Fixups for APR domain, legacy clocks, and PSCI entry latency on MSM8996
 * Enable SMMUs on MSM8996
 * Add Dragonboard 845C
 * Add Q6V5, GPU, GMU, and AOSS QMP node on SDM845
 * Fixup CPU topology on SDM845
 * Change USB1 to be peripheral on SDM845 MTP
 * Add PCIe Phy, RC nodes, ANOC1 SMMU, and RPMPD node on MSM8998
 * Update coresight bindings for MSM8916
 * Update idle state names and entry-method on MSM8916
 * Add PCIe, RPMPD, LPASS, Q6, TCSR, TuringCC, PSCI cpuidle states,
   and CDSP on QCS404
 * Add reset-cells property to QCS404 GCC node
 * Fixup s3 max voltage, l3 min voltage, drive strength typo, and
   s3 supply definition on QCS404-evb
 * Fixup ADC outputs and VADC calibration on PMS405
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJdCxE1AAoJEFKiBbHx2RXV4C0P/iL1rMy36S+SNYPCQgBGwtNn
 NcgZ+3SFQpXjTKAQ7U0bnRHaEm3vQeMicD5A5sBg39XCVBvSu3/ilx0RoYnYc294
 daP41C0ux0zXq/xPAoISCdK7ifJfGMpM0w4VPTKF1jis0hVsS74wUDHvMZc0cuzU
 CA2Dsj1QMx0h6OhOgeM+J7n1kkhQnI6V1Pn7d3cFPf4jU4owsBP4HqN3X1yBvR0J
 SeGKvdfEL+hpOVANmUZWDpXKOGWpJc/njChbl/9ylIhKbgenEpuz5rAegYVg2qgZ
 E1EBJgZrLBMDPu9mE4OqngkEeP1LMQs5E3f7SGTyyLWivDGTimfKYJIb5OJVuv3x
 tvvi0jgfVGs2LEHyONFugZgRaz3MpzAO5QjYyhyfJOe33BGDew762swCA4xwIyB0
 xYkCqJCTDz/aTaa2sjH9hYMX5vTKMcvXJyL2YUfPTOL6zOfWn4kdQFmLF3cGjEp2
 qrjWe2odrc51KKFPB5v0AhAeoA6WSvh1oCGa1DypkzKw0yg0N5g9QG2iAhNwvEoA
 fH49DStRYUaXu1YohmtDBj02DlzruYB3CUMQ5KMFT/Tjpk+v1TfnVQQJjwttA4gr
 GsDkgy/njWsexwykdH3oGDBKInId2umgN5bAKBf2p70sd0Zq+JIAer4yWvhwqoSe
 0Ves83rt9vN1s5kS18KB
 =1nUY
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dt

Qualcomm ARM64 Updates for v5.3

* Switch to use second gen PON on PM8998
* Add PSCI cupidle states for MSM8996, MSM8998,and SDM845
* Add MSM8996 UFS phy reset controller
* Add propre cpu capacity scaling on MSM8996
* Fixups for APR domain, legacy clocks, and PSCI entry latency on MSM8996
* Enable SMMUs on MSM8996
* Add Dragonboard 845C
* Add Q6V5, GPU, GMU, and AOSS QMP node on SDM845
* Fixup CPU topology on SDM845
* Change USB1 to be peripheral on SDM845 MTP
* Add PCIe Phy, RC nodes, ANOC1 SMMU, and RPMPD node on MSM8998
* Update coresight bindings for MSM8916
* Update idle state names and entry-method on MSM8916
* Add PCIe, RPMPD, LPASS, Q6, TCSR, TuringCC, PSCI cpuidle states,
  and CDSP on QCS404
* Add reset-cells property to QCS404 GCC node
* Fixup s3 max voltage, l3 min voltage, drive strength typo, and
  s3 supply definition on QCS404-evb
* Fixup ADC outputs and VADC calibration on PMS405

* tag 'qcom-arm64-for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (39 commits)
  arm64: dts: qcom: qcs404-evb: fix vdd_apc supply
  arm64: dts: qcom: pm8998: Use qcom,pm8998-pon binding for second gen pon
  arm64: dts: qcom: msm8996: Enable SMMUs
  arm64: dts: qcom: msm8996: Correct apr-domain property
  arm64: dts: qcom: Add Dragonboard 845c
  arm64: dts: qcom: qcs404-evb: Enable PCIe
  arm64: dts: qcom: qcs404: Add PCIe related nodes
  arm64: dts: qcom: msm8998: Add PCIe PHY and RC nodes
  arm64: dts: qcom: msm8998: Add ANOC1 SMMU node
  arm64: dts: qcom: msm8996: Stop using legacy clock names
  arm64: dts: msm8996: fix PSCI entry-latency-us
  arm64: dts: qcom: msm8998: Add PSCI cpuidle low power states
  arm64: dts: qcom: sdm845: Add Q6V5 MSS node
  arm64: dts: qcom: Add AOSS QMP node
  arm64: dts: qcom-qcs404: Add reset-cells to GCC node
  arm64: dts: qcom-msm8916: Update coresight DT bindings
  arm64: dts: qcom: msm8998: Add rpmpd node
  arm64: dts: qcom: qcs404: Add rpmpd node
  arm64: dts: qcom: qcs404: Move lpass and q6 into soc
  arm64: dts: qcom: qcs404: Fully describe the CDSP
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 04:31:37 -07:00
Olof Johansson 80f7f92c16 ARM64: DT: Hisilicon SoCs DT updates for v5.3
* Hi3660 SoC and related boards:
   - Added CoreSight trace components
 
 * Hi6220 SoC and related boards:
   - Updated CoreSight funnel and replicator using new bindings to fix warning
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJdClO7AAoJEAvIV27ZiWZcHyUP/AiRfT+Z6HofsnA1G+hq+6tJ
 AMHp6cYxuyZW0Bfx/sfRUNVZL6l4go4wX3XO4KW6D7UQjXwmyenHRlfei1SEeXtl
 pTbq2WCprmElESj33ByruIPRxT8Rk3VTgjhE8rooociA+1t8+ATAwoj/zJLSXnPP
 V9MZDWKAmSBAE9uhVWo2EGORZmUJOnIl5yRjGpCdadl5ZA6epQginIPfI1HMZCtL
 LzMbt08bxTiLD9mbSeSJdTxvwMEUhCcXaC9zOyYcoLqsSwYatfK8XVFJxQjmetbt
 HDDbKY78Ya0ZXmgCsUpn/I0gzxGPhAIHyA7wi1ogf6rkP4kHy1cUtjgugMp4ZqLP
 9Jnc671o2x4OSc/2R7tZzFsCQE7ebJ9zaeQ6ZKwfyy6Tr1xaYXqmAa8m5g0AEu7+
 iwiRv6Sl6/lSvN285RFS6uuMR+gH/oQjOATlgJqOVarRkbG/wEkM+We+QZiwK5fu
 M60qsCeZfmFY7VxO9KvSxI53j6etGiAlITOF6/TV+QG8VdrlUyyfoLVcxSjTESlE
 u82+GM6iGNLRYUcqllDQ70roUSy1N5LA4nOu4LsJxc96su/tm+jdqD7BqpiKOMIX
 pfq+n3+ZYafrV2zKIS0Qf6j+4eW2NszdtSZty5LktaGNHl9zlq1+De+qjajCiMN5
 f4rrCYsEdYp8PV5VTLTg
 =GTKf
 -----END PGP SIGNATURE-----

Merge tag 'hisi-arm64-dt-for-5.3' of git://github.com/hisilicon/linux-hisi into arm/dt

ARM64: DT: Hisilicon SoCs DT updates for v5.3

* Hi3660 SoC and related boards:
  - Added CoreSight trace components

* Hi6220 SoC and related boards:
  - Updated CoreSight funnel and replicator using new bindings to fix warning

* tag 'hisi-arm64-dt-for-5.3' of git://github.com/hisilicon/linux-hisi:
  arm64: dts: hi3660: Add CoreSight support
  arm64: dts: hi6220: Update coresight DT bindings

Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 04:30:13 -07:00
Marcin Juszkiewicz e737f13b50 arm64 defconfig: enable LVM support
W dniu 19.06.2019 o 16:21, Olof Johansson pisze:
> On Mon, Jun 17, 2019 at 06:04:09PM +0200, Marcin Juszkiewicz wrote:
>> Follow x86-64 defconfig on enabling basic LVM support.
>>
>> Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
>
> Do you need this to be =y? If you use LVM, you usually boot with a ramdisk that
> will hold modules.

Right. Forgot to change.

From 63003d0047062949a1231f67e1efdcb96b54323a Mon Sep 17 00:00:00 2001
From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Date: Mon, 27 May 2019 20:14:34 +0200
Subject: [PATCH 1/3] arm64 defconfig: enable LVM support

Follow x86-64 defconfig on enabling basic LVM support.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
2019-06-25 04:17:53 -07:00
Anson Huang 124ecd6658 dt-bindings: imx: Add pinctrl binding doc for i.MX8MN
Add binding doc for i.MX8MN pinctrl driver.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Acked-by: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2019-06-25 10:39:39 +02:00
Nick Desaulniers 8049672bb1 arm64: defconfig: enable CONFIG_RANDOMIZE_BASE
For testing coverage and improved defense in depth, enable KASLR by
default.

Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Will Deacon <will@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Suggested-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-25 09:33:06 +01:00
Catalin Marinas faaa73bcec arm64: ARM64_MODULES_PLTS must depend on MODULES
Otherwise, selecting it without MODULES leads to build failures.

Fixes: 58557e486f ("arm64: Allow user selection of ARM64_MODULE_PLTS")
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-25 09:32:11 +01:00
Krzysztof Kozlowski 4dc2a25d05 arm64: dts: exynos: Add GPU/Mali T760 node to Exynos7
Add nodes for GPU (Mali T760) to Exynos7.  Current support for Exynos7
misses a lot, including proper clocks, power domains, frequency and
voltage scaling and cooling.  However this still can provide basic GPU
description.  Not tested on HW.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2019-06-24 19:52:48 +02:00
Krzysztof Kozlowski f0a6208b90 arm64: dts: exynos: Add GPU/Mali T760 node to Exynos5433
Add nodes for GPU (Mali T760) to Exynos5433.  Missing element is the
cooling device.  Not tested on HW.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2019-06-24 19:52:25 +02:00
Ard Biesheuvel 3f75070648 arm64: bpf: do not allocate executable memory
The BPF code now takes care of mapping the code pages executable
after mapping them read-only, to ensure that no RWX mapped regions
are needed, even transiently. This means we can drop the executable
permissions from the mapping at allocation time.

Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-24 18:10:39 +01:00
Ard Biesheuvel f83b4f8860 arm64/kprobes: set VM_FLUSH_RESET_PERMS on kprobe instruction pages
In order to avoid transient inconsistencies where freed code pages
are remapped writable while stale TLB entries still exist on other
cores, mark the kprobes text pages with the VM_FLUSH_RESET_PERMS
attribute. This instructs the core vmalloc code not to defer the
TLB flush when this region is unmapped and returned to the page
allocator.

Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-24 18:10:39 +01:00
Ard Biesheuvel 4739d53fcd arm64/mm: wire up CONFIG_ARCH_HAS_SET_DIRECT_MAP
Wire up the special helper functions to manipulate aliases of vmalloc
regions in the linear map.

Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-24 18:10:39 +01:00
Ard Biesheuvel 7dfac3c5f4 arm64: module: create module allocations without exec permissions
Now that the core code manages the executable permissions of code
regions of modules explicitly, it is no longer necessary to create
the module vmalloc regions with RWX permissions, and we can create
them with RW- permissions instead, which is preferred from a
security perspective.

Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-24 18:10:39 +01:00
Florian Fainelli 58557e486f arm64: Allow user selection of ARM64_MODULE_PLTS
Make ARM64_MODULE_PLTS a selectable Kconfig symbol, since some people
might have very big modules spilling out of the dedicated module area
into vmalloc. Help text is copied from the ARM 32-bit counterpart and
modified to a mention of KASLR and specific ARM errata workaround(s).

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-24 18:10:39 +01:00
Ard Biesheuvel 2af22f3ec3 acpi/arm64: ignore 5.1 FADTs that are reported as 5.0
Some Qualcomm Snapdragon based laptops built to run Microsoft Windows
are clearly ACPI 5.1 based, given that that is the first ACPI revision
that supports ARM, and introduced the FADT 'arm_boot_flags' field,
which has a non-zero field on those systems.

So in these cases, infer from the ARM boot flags that the FADT must be
5.1 or later, and treat it as 5.1.

Acked-by: Sudeep Holla <sudeep.holla@arm.com>
Tested-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Graeme Gregory <graeme.gregory@linaro.org>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Hanjun Guo <guohanjun@huawei.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-24 18:10:38 +01:00
Joerg Roedel ceedd5f74d Linux 5.2-rc6
-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAl0Os1seHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGtx4H/j6i482XzcGFKTBm
 A7mBoQpy+kLtoUov4EtBAR62OuwI8rsahW9di37QKndPoQrczWaKBmr3De6LCdPe
 v3pl3O6wBbvH5ru+qBPFX9PdNbDvimEChh7LHxmMxNQq3M+AjZAZVJyfpoiFnx35
 Fbge+LZaH/k8HMwZmkMr5t9Mpkip715qKg2o9Bua6dkH0AqlcpLlC8d9a+HIVw/z
 aAsyGSU8jRwhoAOJsE9bJf0acQ/pZSqmFp0rDKqeFTSDMsbDRKLGq/dgv4nW0RiW
 s7xqsjb/rdcvirRj3rv9+lcTVkOtEqwk0PVdL9WOf7g4iYrb3SOIZh8ZyViaDSeH
 VTS5zps=
 =huBY
 -----END PGP SIGNATURE-----

Merge tag 'v5.2-rc6' into generic-dma-ops

Linux 5.2-rc6
2019-06-24 10:23:16 +02:00
Chen-Yu Tsai 0bb9d1876c arm64: dts: allwinner: h6: Pine H64: Add interrupt line for RTC
The external PCF8563 RTC chip's interrupt line is connected to the NMI
line on the SoC.

Add the interrupt line to the device tree.

Fixes: 17ebc33afc ("arm64: allwinner: h6: add PCF8563 RTC on Pine H64 board")
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
2019-06-24 16:07:14 +08:00
Angus Ainslie (Purism) 01407158e4 arm64: dts: librem5: enable the SNVS power key
Enable the snvs power key.

Signed-off-by: Angus Ainslie (Purism) <angus@akkea.ca>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-24 10:07:00 +08:00
Angus Ainslie (Purism) 8155b786b6 arm64: dts: librem5: Limit the USB to 5V
The charge controller can handle 14V but the PTC on the devkit can only
handle 6V so limit the negotiated voltage to 5V.

Signed-off-by: Angus Ainslie (Purism) <angus@akkea.ca>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-24 10:06:56 +08:00
Frank Li 6ab6e92370 arm64: dts: imx8qxp: added ddr performance monitor nodes
Add ddr performance monitor

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-24 09:59:30 +08:00
Shawn Guo 107529cf2e arm64: dts: imx8qxp: sort LSIO subsystem devices
We prefer to sort device nodes under simple bus in order of unit
address.  Let's sort the devices under lsio_subsys properly.

Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-24 09:03:00 +08:00
Shawn Guo 74d82a3020 arm64: dts: imx8qxp: sort alias alphabetically
We prefer to sort alias entries alphabetically, so let's move serial0
to the right place.

Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-24 09:00:49 +08:00
Daniel Baluta 93b2106baf arm64: dts: imx8qxp: Add lsio_mu13 node
lsio_mu13 node is used to communicate with DSP.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-24 08:56:32 +08:00
Daniel Baluta 13f3b9fdef arm64: dts: imx8mm-evk: Enable audio codec wm8524
i.MX8MM has one wm8524 audio codec connected with
SAI3 digital audio interface.

This patch uses simple-card machine driver in order
to enable wm8524 codec.

We need to set:
	* SAI3 pinctrl configuration
	* codec reset gpio pinctrl configuration
	* clock hierarchy
	* codec node
	* simple-card configuration

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-06-23 15:35:48 +08:00
Vincenzo Frascino bfe801ebe8 arm64: vdso: Enable vDSO compat support
Add vDSO compat support to the arm64 build system.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-16-vincenzo.frascino@arm.com
2019-06-22 21:21:09 +02:00
Vincenzo Frascino f01703b3d2 arm64: compat: Get sigreturn trampolines from vDSO
When the compat vDSO is enabled, the sigreturn trampolines are not
anymore available through [sigpage] but through [vdso].

Add the relevant code the enable the feature.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-15-vincenzo.frascino@arm.com
2019-06-22 21:21:09 +02:00
Vincenzo Frascino 1e3f17f55a arm64: elf: VDSO code page discovery
Like in normal vDSOs, when compat vDSOs are enabled the auxiliary
vector symbol AT_SYSINFO_EHDR needs to point to the address of the
vDSO code, to allow the dynamic linker to find it.

Add the necessary code to the elf arm64 module to make this possible.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-14-vincenzo.frascino@arm.com
2019-06-22 21:21:09 +02:00
Vincenzo Frascino 7c1deeeb01 arm64: compat: VDSO setup for compat layer
If CONFIG_GENERIC_COMPAT_VDSO is enabled, compat vDSO is installed in a
compat (32 bit) process instead of sigpage.

Add the necessary code to setup the vDSO required pages.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-13-vincenzo.frascino@arm.com
2019-06-22 21:21:08 +02:00
Vincenzo Frascino c7aa2d7102 arm64: vdso: Refactor vDSO code
Most of the code for initializing the vDSOs in arm64 and compat will be
shared, hence refactoring of the current code is required to avoid
duplication and to simplify maintainability.

No functional change.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-12-vincenzo.frascino@arm.com
2019-06-22 21:21:08 +02:00
Vincenzo Frascino a7f71a2c89 arm64: compat: Add vDSO
Provide the arm64 compat (AArch32) vDSO in kernel/vdso32 in a similar
way to what happens in kernel/vdso.

The compat vDSO leverages on an adaptation of the arm architecture code
with few changes:

 - Use of lib/vdso for gettimeofday
 - Implement a syscall based fallback
 - Introduce clock_getres() for the compat library
 - Implement trampolines
 - Implement elf note

To build the compat vDSO a 32 bit compiler is required and needs to be
specified via CONFIG_CROSS_COMPILE_COMPAT_VDSO.

The code is not yet enabled as other prerequisites are missing.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-11-vincenzo.frascino@arm.com
2019-06-22 21:21:08 +02:00
Vincenzo Frascino f14d8025d2 arm64: compat: Generate asm offsets for signals
Update asm-offsets for arm64 to generate the correct offsets for
compat signals.

They will be useful for the implementation of the compat sigreturn
trampolines in vDSO context.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-9-vincenzo.frascino@arm.com
2019-06-22 21:21:07 +02:00
Vincenzo Frascino 206c0dfa3c arm64: compat: Expose signal related structures
The compat signal data structures are required as part of the compat
vDSO implementation in order to provide the unwinding information for
the sigreturn trampolines.

Expose these data structures as part of signal32.h.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-8-vincenzo.frascino@arm.com
2019-06-22 21:21:07 +02:00
Vincenzo Frascino 53c489e1df arm64: compat: Add missing syscall numbers
vDSO requires gettimeofday() and clock_gettime() syscalls to implement the
fallback mechanism.

Add the missing syscall numbers to unistd.h for arm64.

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-7-vincenzo.frascino@arm.com
2019-06-22 21:21:07 +02:00
Peter Collingbourne 98cd3c3f83 arm64: vdso: Build vDSO with -ffixed-x18
The vDSO needs to be built with x18 reserved in order to accommodate
userspace platform ABIs built on top of Linux that use the register
to carry inter-procedural state, as provided for by the AAPCS.
An example of such a platform ABI is the one that will be used by an
upcoming version of Android.

Although this change is currently a no-op due to the fact that the vDSO
is currently implemented in pure assembly on arm64, it is necessary
in order to prepare for using the generic C implementation of the vDSO.

[ tglx: Massaged changelog ]

Signed-off-by: Peter Collingbourne <pcc@google.com>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Cc: Mark Salyzyn <salyzyn@google.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-6-vincenzo.frascino@arm.com
2019-06-22 21:21:06 +02:00
Vincenzo Frascino 28b1a824a4 arm64: vdso: Substitute gettimeofday() with C implementation
To take advantage of the commonly defined vdso interface for gettimeofday()
the architectural code requires an adaptation.

Re-implement the gettimeofday VDSO in C in order to use lib/vdso.

With the new implementation arm64 gains support for CLOCK_BOOTTIME
and CLOCK_TAI.

[ tglx: Reformatted the function line breaks ]

Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Shijith Thotton <sthotton@marvell.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Huw Davies <huw@codeweavers.com>
Link: https://lkml.kernel.org/r/20190621095252.32307-5-vincenzo.frascino@arm.com
2019-06-22 21:21:06 +02:00
David S. Miller 92ad6325cb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Minor SPDX change conflict.

Signed-off-by: David S. Miller <davem@davemloft.net>
2019-06-22 08:59:24 -04:00
Benjamin Herrenschmidt 85dc04136e arm64: PCI: Preserve firmware configuration when desired
If we must preserve the firmware resource assignments, claim the existing
resources rather than reassigning everything.

Link: https://lore.kernel.org/r/20190615002359.29577-4-benh@kernel.crashing.org
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[bhelgaas: commit log]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2019-06-21 18:11:54 -05:00
Benjamin Herrenschmidt 3e8ba96866 arm64: PCI: Allow resource reallocation if necessary
Call pci_assign_unassigned_root_bus_resources() instead of the simpler:

  pci_bus_size_bridges(bus);
  pci_bus_assign_resources(bus);

pci_assign_unassigned_root_bus_resources() calls:

  __pci_bus_size_bridges(bus, add_list);
  __pci_bus_assign_resources(bus, add_list, &fail_head);

so this should be equivalent as long as we're able to assign everything.
If we were unable to assign something, previously we did nothing and left
it unassigned, but after this patch, we will attempt to do some
reallocation.

Once we start honoring FW resource allocations, this will bring up the
"reallocation" feature which can help making room for SR-IOV when
necessary.

Link: https://lore.kernel.org/r/20190615002359.29577-1-benh@kernel.crashing.org
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[bhelgaas: commit log]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
2019-06-21 18:11:54 -05:00
Linus Torvalds c884d8ac7f SPDX update for 5.2-rc6
Another round of SPDX updates for 5.2-rc6
 
 Here is what I am guessing is going to be the last "big" SPDX update for
 5.2.  It contains all of the remaining GPLv2 and GPLv2+ updates that
 were "easy" to determine by pattern matching.  The ones after this are
 going to be a bit more difficult and the people on the spdx list will be
 discussing them on a case-by-case basis now.
 
 Another 5000+ files are fixed up, so our overall totals are:
 	Files checked:            64545
 	Files with SPDX:          45529
 
 Compared to the 5.1 kernel which was:
 	Files checked:            63848
 	Files with SPDX:          22576
 This is a huge improvement.
 
 Also, we deleted another 20000 lines of boilerplate license crud, always
 nice to see in a diffstat.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCXQyQYA8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ymnGQCghETUBotn1p3hTjY56VEs6dGzpHMAnRT0m+lv
 kbsjBGEJpLbMRB2krnaU
 =RMcT
 -----END PGP SIGNATURE-----

Merge tag 'spdx-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx

Pull still more SPDX updates from Greg KH:
 "Another round of SPDX updates for 5.2-rc6

  Here is what I am guessing is going to be the last "big" SPDX update
  for 5.2. It contains all of the remaining GPLv2 and GPLv2+ updates
  that were "easy" to determine by pattern matching. The ones after this
  are going to be a bit more difficult and the people on the spdx list
  will be discussing them on a case-by-case basis now.

  Another 5000+ files are fixed up, so our overall totals are:
	Files checked:            64545
	Files with SPDX:          45529

  Compared to the 5.1 kernel which was:
	Files checked:            63848
	Files with SPDX:          22576

  This is a huge improvement.

  Also, we deleted another 20000 lines of boilerplate license crud,
  always nice to see in a diffstat"

* tag 'spdx-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx: (65 commits)
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 507
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 506
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 505
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 504
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 503
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 502
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 501
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 498
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 496
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 495
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 491
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 490
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 489
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 488
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 487
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 486
  treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 485
  ...
2019-06-21 09:58:42 -07:00
Michael Mei de1033881e arm64: dts: mt8183: add efuse and Mediatek Chip id node to read
support for reading chip ID and efuse

Signed-off-by: Michael Mei <michael.mei@mediatek.com>
Signed-off-by: Erin Lo <erin.lo@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2019-06-21 17:50:12 +02:00
Erin Lo 8e2dd0f924 arm64: dts: mt8183: add spi node
Add spi DTS node to the mt8183 and mt8183-evb.

Signed-off-by: Mengqi Zhang <Mengqi.Zhang@mediatek.com>
Signed-off-by: Erin Lo <erin.lo@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2019-06-21 17:47:56 +02:00
Zhiyong Tao eb59b35331 arm64: dts: mt8183: Add auxadc device node
Add auxadc device node for MT8183

Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com>
Signed-off-by: Erin Lo <erin.lo@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2019-06-21 17:41:38 +02:00
Zhiyong Tao da719a3567 arm64: dts: mt8183: add pinctrl device node
The commit adds pinctrl device node for mt8183

Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com>
Signed-off-by: Erin Lo <erin.lo@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2019-06-21 17:39:51 +02:00
Hsin-Yi, Wang cc216dfd56 arm64: dts: mt8183: add capacity-dmips-mhz
Pinned the frequency to the max and run dhrystone to get the value.
little cpu: 11071 (max freq: 1989000)
big cpu: 15293 (max freq: 1989000)

11071 : 15293 ~= 741 : 1024

Signed-off-by: Erin Lo <erin.lo@mediatek.com>
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2019-06-21 17:39:14 +02:00
Julien Thierry 2a438ffa74 arm64: Allow selecting Pseudo-NMI again
Now that Pseudo-NMI are fixed, allow the use of that option again

This reverts commit 96a13f57b9 ("arm64:
Kconfig: Make ARM64_PSEUDO_NMI depend on BROKEN for now").

Cc: Will Deacon <will.deacon@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-21 15:50:23 +01:00
Wei Li e1d22385ea arm64: fix kernel stack overflow in kdump capture kernel
When enabling ARM64_PSEUDO_NMI feature in kdump capture kernel, it will
report a kernel stack overflow exception:

[    0.000000] CPU features: detected: IRQ priority masking
[    0.000000] alternatives: patching kernel code
[    0.000000] Insufficient stack space to handle exception!
[    0.000000] ESR: 0x96000044 -- DABT (current EL)
[    0.000000] FAR: 0x0000000000000040
[    0.000000] Task stack:     [0xffff0000097f0000..0xffff0000097f4000]
[    0.000000] IRQ stack:      [0x0000000000000000..0x0000000000004000]
[    0.000000] Overflow stack: [0xffff80002b7cf290..0xffff80002b7d0290]
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.19.34-lw+ #3
[    0.000000] pstate: 400003c5 (nZcv DAIF -PAN -UAO)
[    0.000000] pc : el1_sync+0x0/0xb8
[    0.000000] lr : el1_irq+0xb8/0x140
[    0.000000] sp : 0000000000000040
[    0.000000] pmr_save: 00000070
[    0.000000] x29: ffff0000097f3f60 x28: ffff000009806240
[    0.000000] x27: 0000000080000000 x26: 0000000000004000
[    0.000000] x25: 0000000000000000 x24: ffff000009329028
[    0.000000] x23: 0000000040000005 x22: ffff000008095c6c
[    0.000000] x21: ffff0000097f3f70 x20: 0000000000000070
[    0.000000] x19: ffff0000097f3e30 x18: ffffffffffffffff
[    0.000000] x17: 0000000000000000 x16: 0000000000000000
[    0.000000] x15: ffff0000097f9708 x14: ffff000089a382ef
[    0.000000] x13: ffff000009a382fd x12: ffff000009824000
[    0.000000] x11: ffff0000097fb7b0 x10: ffff000008730028
[    0.000000] x9 : ffff000009440018 x8 : 000000000000000d
[    0.000000] x7 : 6b20676e69686374 x6 : 000000000000003b
[    0.000000] x5 : 0000000000000000 x4 : ffff000008093600
[    0.000000] x3 : 0000000400000008 x2 : 7db2e689fc2b8e00
[    0.000000] x1 : 0000000000000000 x0 : ffff0000097f3e30
[    0.000000] Kernel panic - not syncing: kernel stack overflow
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.19.34-lw+ #3
[    0.000000] Call trace:
[    0.000000]  dump_backtrace+0x0/0x1b8
[    0.000000]  show_stack+0x24/0x30
[    0.000000]  dump_stack+0xa8/0xcc
[    0.000000]  panic+0x134/0x30c
[    0.000000]  __stack_chk_fail+0x0/0x28
[    0.000000]  handle_bad_stack+0xfc/0x108
[    0.000000]  __bad_stack+0x90/0x94
[    0.000000]  el1_sync+0x0/0xb8
[    0.000000]  init_gic_priority_masking+0x4c/0x70
[    0.000000]  smp_prepare_boot_cpu+0x60/0x68
[    0.000000]  start_kernel+0x1e8/0x53c
[    0.000000] ---[ end Kernel panic - not syncing: kernel stack overflow ]---

The reason is init_gic_priority_masking() may unmask PSR.I while the
irq stacks are not inited yet. Some "NMI" could be raised unfortunately
and it will just go into this exception.

In this patch, we just write the PMR in smp_prepare_boot_cpu(), and delay
unmasking PSR.I after irq stacks inited in init_IRQ().

Fixes: e793218838 ("arm64: Switch to PMR masking when starting CPUs")
Cc: Will Deacon <will.deacon@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Wei Li <liwei391@huawei.com>
[JT: make init_gic_priority_masking() not modify daif, rebase on other
     priority masking fixes]
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-21 15:50:23 +01:00
Julien Thierry 48ce8f80f5 arm64: irqflags: Introduce explicit debugging for IRQ priorities
Using IRQ priority masking to enable/disable interrupts is a bit
sensitive as it requires to deal with both ICC_PMR_EL1 and PSR.I.

Introduce some validity checks to both highlight the states in which
functions dealing with IRQ enabling/disabling can (not) be called, and
bark a warning when called in an unexpected state.

Since these checks are done on hotpaths, introduce a build option to
choose whether to do the checking.

Cc: Will Deacon <will.deacon@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-21 15:50:23 +01:00
Julien Thierry bd82d4bd21 arm64: Fix incorrect irqflag restore for priority masking
When using IRQ priority masking to disable interrupts, in order to deal
with the PSR.I state, local_irq_save() would convert the I bit into a
PMR value (GIC_PRIO_IRQOFF). This resulted in local_irq_restore()
potentially modifying the value of PMR in undesired location due to the
state of PSR.I upon flag saving [1].

In an attempt to solve this issue in a less hackish manner, introduce
a bit (GIC_PRIO_IGNORE_PMR) for the PMR values that can represent
whether PSR.I is being used to disable interrupts, in which case it
takes precedence of the status of interrupt masking via PMR.

GIC_PRIO_PSR_I_SET is chosen such that (<pmr_value> |
GIC_PRIO_PSR_I_SET) does not mask more interrupts than <pmr_value> as
some sections (e.g. arch_cpu_idle(), interrupt acknowledge path)
requires PMR not to mask interrupts that could be signaled to the
CPU when using only PSR.I.

[1] https://www.spinics.net/lists/arm-kernel/msg716956.html

Fixes: 4a503217ce ("arm64: irqflags: Use ICC_PMR_EL1 for interrupt masking")
Cc: <stable@vger.kernel.org> # 5.1.x-
Reported-by: Zenghui Yu <yuzenghui@huawei.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Wei Li <liwei391@huawei.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Christoffer Dall <christoffer.dall@arm.com>
Cc: James Morse <james.morse@arm.com>
Cc: Suzuki K Pouloze <suzuki.poulose@arm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-21 15:50:10 +01:00
Julien Thierry 17ce302f31 arm64: Fix interrupt tracing in the presence of NMIs
In the presence of any form of instrumentation, nmi_enter() should be
done before calling any traceable code and any instrumentation code.

Currently, nmi_enter() is done in handle_domain_nmi(), which is much
too late as instrumentation code might get called before. Move the
nmi_enter/exit() calls to the arch IRQ vector handler.

On arm64, it is not possible to know if the IRQ vector handler was
called because of an NMI before acknowledging the interrupt. However, It
is possible to know whether normal interrupts could be taken in the
interrupted context (i.e. if taking an NMI in that context could
introduce a potential race condition).

When interrupting a context with IRQs disabled, call nmi_enter() as soon
as possible. In contexts with IRQs enabled, defer this to the interrupt
controller, which is in a better position to know if an interrupt taken
is an NMI.

Fixes: bc3c03ccb4 ("arm64: Enable the support of pseudo-NMIs")
Cc: <stable@vger.kernel.org> # 5.1.x-
Cc: Will Deacon <will.deacon@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-21 15:49:58 +01:00
Julien Thierry f57065782f arm64: irqflags: Add condition flags to inline asm clobber list
Some of the inline assembly instruction use the condition flags and need
to include "cc" in the clobber list.

Fixes: 4a503217ce ("arm64: irqflags: Use ICC_PMR_EL1 for interrupt masking")
Cc: <stable@vger.kernel.org> # 5.1.x-
Suggested-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-21 15:49:30 +01:00
Vidya Sagar a586c88eab arm64: tegra: Enable PCIe slots in P2972-0000 board
Enable PCIe controller nodes to enable respective PCIe slots on
P2972-0000 board. Following is the ownership of slots by different
PCIe controllers.
Controller-0 : M.2 Key-M slot
Controller-1 : On-board Marvell eSATA controller
Controller-3 : M.2 Key-E slot

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-21 16:06:00 +02:00
Vidya Sagar 2602c32f15 arm64: tegra: Add P2U and PCIe controller nodes to Tegra194 DT
Add P2U (PIPE to UPHY) and PCIe controller nodes to device tree.
The Tegra194 SoC contains six PCIe controllers and twenty P2U instances
grouped into two different PHY bricks namely High-Speed IO (HSIO-12 P2Us)
and NVIDIA High Speed (NVHS-8 P2Us) respectively.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-21 16:04:53 +02:00
Manikanta Maddireddy 871be845df arm64: tegra: Add PEX DPD states as pinctrl properties
Add PEX deep power down states as pinctrl properties to set in PCIe driver.
In Tegra210, BIAS pads are not in power down mode when clamps are applied.
To set the pads in DPD, pass the PEX DPD states as pinctrl properties to
PCIe driver.

Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-21 16:04:52 +02:00
Sameer Pujar 9a182db457 arm64: tegra: Enable ACONNECT, ADMA and AGIC
Enable ACONNECT, ADMA and AGIC devices on Jetson TX2 and Jetson AGX
Xavier.

Verified driver probe path and devices get registered fine.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-21 16:04:52 +02:00
Sameer Pujar 5d2249dda0 arm64: tegra: Add ACONNECT, ADMA and AGIC nodes
Add device tree nodes for the ACONNECT, ADMA and AGIC devices on
Tegra186 and Tegra194.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-21 16:04:36 +02:00
Ben Ho e526c9bc11 arm64: dts: Add Mediatek SoC MT8183 and evaluation board dts and Makefile
Add basic chip support for Mediatek 8183, include
uart node with correct uart clocks, pwrap device

Add clock controller nodes, include topckgen, infracfg,
apmixedsys and subsystem.

Signed-off-by: Ben Ho <Ben.Ho@mediatek.com>
Signed-off-by: Erin Lo <erin.lo@mediatek.com>
Signed-off-by: Seiya Wang <seiya.wang@mediatek.com>
Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
Signed-off-by: Eddie Huang <eddie.huang@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2019-06-21 14:31:06 +02:00
Julien Thierry 19c36b185a arm64: irqflags: Pass flags as readonly operand to restore instruction
Flags are only read by the instructions doing the irqflags restore
operation. Pass the operand as read only to the asm inline instead of
read-write.

Cc: Will Deacon <will.deacon@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Mark Rutland <mark.rutland@ar.com>
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-21 11:19:16 +01:00
Julien Thierry 9034f62515 arm64: Do not enable IRQs for ct_user_exit
For el0_dbg and el0_error, DAIF bits get explicitly cleared before
calling ct_user_exit.

When context tracking is disabled, DAIF gets set (almost) immediately
after. When context tracking is enabled, among the first things done
is disabling IRQs.

What is actually needed is:
- PSR.D = 0 so the system can be debugged (should be already the case)
- PSR.A = 0 so async error can be handled during context tracking

Do not clear PSR.I in those two locations.

Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: James Morse <james.morse@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-06-21 11:19:12 +01:00
Christian Brauner d68dbb0c9a
arch: handle arches who do not yet define clone3
This cleanly handles arches who do not yet define clone3.

clone3() was initially placed under __ARCH_WANT_SYS_CLONE under the
assumption that this would cleanly handle all architectures. It does
not.
Architectures such as nios2 or h8300 simply take the asm-generic syscall
definitions and generate their syscall table from it. Since they don't
define __ARCH_WANT_SYS_CLONE the build would fail complaining about
sys_clone3 missing. The reason this doesn't happen for legacy clone is
that nios2 and h8300 provide assembly stubs for sys_clone. This seems to
be done for architectural reasons.

The build failures for nios2 and h8300 were caught int -next luckily.
The solution is to define __ARCH_WANT_SYS_CLONE3 that architectures can
add. Additionally, we need a cond_syscall(clone3) for architectures such
as nios2 or h8300 that generate their syscall table in the way I
explained above.

Fixes: 8f3220a806 ("arch: wire-up clone3() syscall")
Signed-off-by: Christian Brauner <christian@brauner.io>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Kees Cook <keescook@chromium.org>
Cc: David Howells <dhowells@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Adrian Reber <adrian@lisas.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: linux-api@vger.kernel.org
Cc: linux-arch@vger.kernel.org
Cc: x86@kernel.org
2019-06-21 01:54:53 +02:00
Linus Torvalds b3e978337b Fixes for ARM and x86, plus selftest patches and nicer structs
for nested state save/restore.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQEcBAABAgAGBQJdC7NHAAoJEL/70l94x66DHm0H/R8L80sWe1OJbHHK8caPpwm2
 mPt6JNcG/ysbG/uoMuVsdRAjZsg9l8JZB9xfA2m/ZPQQThjSG/WX0rU+gWMMI3X8
 8ZbN4BCFoiNpOzOkhmStwzMWnvovKvMfhFW0BAI3HLUfM9A+XyVvNM/JbLOvEMRk
 WB2SxYRc38ZvIbi8eXgsoFrVyLFB2Fj/0jps4FbKnkjkl37PTDehYLWQ1pt9KsWS
 2KdGoXm7/18ottqf0DPfLe0hiiiDuK3akKz7WQBMsAJHi4Fm5j39NuseeRdlablk
 uE4vM/sVaLn4xwM9JfrsBl9TzZ2qHsOTRlMQG4iNWjEAuPKa45lt0Jo7OBs6DSY=
 =Lzxe
 -----END PGP SIGNATURE-----

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull kvm fixes from Paolo Bonzini:
 "Fixes for ARM and x86, plus selftest patches and nicer structs for
  nested state save/restore"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
  KVM: nVMX: reorganize initial steps of vmx_set_nested_state
  KVM: arm/arm64: Fix emulated ptimer irq injection
  tests: kvm: Check for a kernel warning
  kvm: tests: Sort tests in the Makefile alphabetically
  KVM: x86/mmu: Allocate PAE root array when using SVM's 32-bit NPT
  KVM: x86: Modify struct kvm_nested_state to have explicit fields for data
  KVM: fix typo in documentation
  KVM: nVMX: use correct clean fields when copying from eVMCS
  KVM: arm/arm64: vgic: Fix kvm_device leak in vgic_its_destroy
  KVM: arm64: Filter out invalid core register IDs in KVM_GET_REG_LIST
  KVM: arm64: Implement vq_present() as a macro
2019-06-20 13:50:37 -07:00
Linus Torvalds e929387449 arm64 fixes for -rc6
- Fix use of #include in UAPI headers for compatability with musl libc
 
 - Update email addresses in MAINTAINERS
 
 - Fix initialisation of pgd_cache due to name collision with weak symbol
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEPxTL6PPUbjXGY88ct6xw3ITBYzQFAl0LgWIACgkQt6xw3ITB
 YzTyYgf7BByaUUDxHTBkUA2fBrZ66L9sHsBzunF6SqIzZqQfC5JdIqq2Iz+eiw8a
 0DUARr1jxeC7xsAjkmhIUzpnQjsZab4Gn/T0syTKD0dR4zxoK/g6hrScmSnoTw6t
 0AW9UnwMB98aol+yKBwiPYtG9HUzXnMet77LgcQdCby5xiRyJ4xv3vNr0lSmXjSO
 +ANC5IFHZz+oyy2n9UZRYbkLwth8uoc1pZJTKLbykDp4ApGXFtayctR0l4Q5L29v
 pqxivQgNsQ8QaxCeJ1+UICOG8hnVr6adH5xoWzcev+3sXlX9IoNu78hfrKO7u0J4
 +rWacwopqq0fGgo7anzUEx9nznXaDg==
 =yyJV
 -----END PGP SIGNATURE-----

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fixes from Will Deacon:
 "This is mainly a couple of email address updates to MAINTAINERS, but
  we've also fixed a UAPI build issue with musl libc and an accidental
  double-initialisation of our pgd_cache due to a naming conflict with a
  weak symbol.

  There are a couple of outstanding issues that have been reported, but
  it doesn't look like they're new and we're still a long way off from
  fully debugging them.

  Summary:

   - Fix use of #include in UAPI headers for compatability with musl libc

   - Update email addresses in MAINTAINERS

   - Fix initialisation of pgd_cache due to name collision with weak symbol"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64/mm: don't initialize pgd_cache twice
  MAINTAINERS: Update my email address
  arm64/sve: <uapi/asm/ptrace.h> should not depend on <uapi/linux/prctl.h>
  arm64: ssbd: explicitly depend on <linux/prctl.h>
  MAINTAINERS: Update my email address to use @kernel.org
2019-06-20 12:04:57 -07:00
Thor Thayer 109d789922 arm64: dts: stratix10: Add SDMMC EDAC node
Add the Stratix10 SDMMC EDAC node.

Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Dinh Nguyen <dinguyen@kernel.org>
Cc: devicetree@vger.kernel.org
Cc: James Morse <james.morse@arm.com>
Cc: linux-edac <linux-edac@vger.kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: mchehab@kernel.org
Cc: Rob Herring <robh+dt@kernel.org>
Link: https://lkml.kernel.org/r/1556030197-24534-5-git-send-email-thor.thayer@linux.intel.com
2019-06-20 11:44:36 -07:00
Thor Thayer 3c4fcb89db arm64: dts: stratix10: Add OCRAM EDAC node
Add the OCRAM ECC node with Stratix10 compatible string.

Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Dinh Nguyen <dinguyen@kernel.org>
Cc: devicetree@vger.kernel.org
Cc: James Morse <james.morse@arm.com>
Cc: linux-edac <linux-edac@vger.kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: mchehab@kernel.org
Cc: Rob Herring <robh+dt@kernel.org>
Link: https://lkml.kernel.org/r/1556030197-24534-3-git-send-email-thor.thayer@linux.intel.com
2019-06-20 11:44:36 -07:00
Paolo Bonzini b21e31b253 KVM/arm fixes for 5.2, take #2
- SVE cleanup killing a warning with ancient GCC versions
 - Don't report non-existent system registers to userspace
 - Fix memory leak when freeing the vgic ITS
 - Properly lower the interrupt on the emulated physical timer
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCgAzFiEEn9UcU+C1Yxj9lZw9I9DQutE9ekMFAl0KZfsVHG1hcmMuenlu
 Z2llckBhcm0uY29tAAoJECPQ0LrRPXpDYC4QAMT5bo9uOuZJVdktgD4f+19iOgH6
 1sEpoPgYAdh6YwQoMWinG12di2eChksPY153OyN1SPO2suEa8ZuwTt/ZSKv8IFqW
 5i+p38FstA9jXyfiCrMOi0ZLlCTYFlt1HVWdSopi9OhNl/TCNLDXBYwp0kKi7HS5
 /y2yJDCvdzPLazkeYyDzsZ50a2dPre7LKoauQiVEwKzzpyyXN94iy0U4Iy5NJG+9
 JyHIDRx1wVnw5cVYyxt5vCyal2hMVOIJklGp9znaRwm78c/w73nSZgih4Nq5QCPv
 CDp7rKa287InuwnXrMfCk5eDW7Cwg21SqlAHWLmQ7/saD1/QXrLO8fpwEcOu9gpv
 02vM4dNkm7oFclk2lv5uKJUcoKBKsdwDA6iRvKs2Y/6vZ/2BTKywNrAGUvAq51Ws
 r+oLMBRLULVWPmnxkeELjJeKOF0tr7TJWStq0wwsGfPrw7fZalAvdAG1Z3qW8Aso
 5wjJUWc0ummPj0ftGZHx99LoVkbY7wDYSe/WeROZvnccW1KAgfYPw4TAnyTlFLKn
 VGl+9kgORwfkzi8loPXpzefFAd65d0cKdVcZMlbmNux/vHD/xbd3U1JEHcQXLGFh
 3imJb19zLWOmSkLiC5qmg8tWfygoGHJoHl5IXlzG6hgeIeNt94Ge/58wKjGsKfch
 RW3qMGCaLxz3UELV
 =8ttW
 -----END PGP SIGNATURE-----

Merge tag 'kvmarm-fixes-for-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD

KVM/arm fixes for 5.2, take #2

- SVE cleanup killing a warning with ancient GCC versions
- Don't report non-existent system registers to userspace
- Fix memory leak when freeing the vgic ITS
- Properly lower the interrupt on the emulated physical timer
2019-06-20 18:24:18 +02:00
Vidya Sagar 01d6fb565b arm64: defconfig: Add Tegra194 PCIe driver
Add PCIe host controller driver for DesignWare core based PCIe
controller IP present in Tegra194.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-20 13:02:27 +02:00
Leo Yan b04832ed1f arm64: dts: sc9860: Update coresight DT bindings
CoreSight DT bindings have been updated, thus the old compatible strings
are obsolete and the drivers will report warning if DTS uses these
obsolete strings.

This patch switches to the new bindings for CoreSight dynamic funnel,
so can dismiss warning during initialisation.

Change-Id: Ifcc4394589f1307e92b113ebeda098b461fe085a
Cc: Chunyan Zhang <zhang.chunyan@linaro.org>
Cc: Orson Zhai <orsonzhai@gmail.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Chunyan Zhang <zhang.lyra@gmail.com>
2019-06-20 18:44:54 +08:00
Leo Yan b8b89a8407 arm64: dts: sc9836: Update coresight DT bindings
CoreSight DT bindings have been updated, thus the old compatible strings
are obsolete and the drivers will report warning if DTS uses these
obsolete strings.

This patch switches to the new bindings for CoreSight dynamic funnel,
so can dismiss warning during initialisation.

Change-Id: I2f7072bacf76aac0bb2fc891d5d71352d99e6ea8
Cc: Chunyan Zhang <zhang.chunyan@linaro.org>
Cc: Orson Zhai <orsonzhai@gmail.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Chunyan Zhang <zhang.lyra@gmail.com>
2019-06-20 18:43:45 +08:00
Thierry Reding 541d7c4406 arm64: tegra: Sort device tree nodes alphabetically
Device tree nodes without unit-address are to be sorted alphabetically.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-20 11:33:05 +02:00
Jon Hunter 434e8aedea arm64: tegra: Fix Jetson Nano GPU regulator
There are a few issues with the GPU regulator defined for Jetson Nano
which are:

1. The GPU regulator is a PWM based regulator and not a fixed voltage
   regulator.
2. The output voltages for the GPU regulator are not correct.
3. The regulator enable ramp delay is too short for the regulator and
   needs to be increased. 2ms should be sufficient.
4. This is the same regulator used on Jetson TX1 and so make the ramp
   delay and settling time the same as Jetson TX1.

Cc: stable@vger.kernel.org
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Fixes: 6772cd0eac ("arm64: tegra: Add NVIDIA Jetson Nano Developer Kit support")
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-20 11:18:30 +02:00
Jon Hunter ece6031ece arm64: tegra: Update Jetson TX1 GPU regulator timings
The GPU regulator enable ramp delay for Jetson TX1 is set to 1ms which
not sufficient because the enable ramp delay has been measured to be
greater than 1ms. Furthermore, the downstream kernels released by NVIDIA
for Jetson TX1 are using a enable ramp delay 2ms and a settling delay of
160us. Update the GPU regulator enable ramp delay for Jetson TX1 to be
2ms and add a settling delay of 160us.

Cc: stable@vger.kernel.org
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Fixes: 5e6b9a89af ("arm64: tegra: Add VDD_GPU regulator to Jetson TX1")
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-20 11:17:03 +02:00
Jon Hunter ba24eee668 arm64: tegra: Fix AGIC register range
The Tegra AGIC interrupt controller is an ARM GIC400 interrupt
controller. Per the ARM GIC device-tree binding, the first address
region is for the GIC distributor registers and the second address
region is for the GIC CPU interface registers. The address space for
the distributor registers is 4kB, but currently this is incorrectly
defined as 8kB for the Tegra AGIC and overlaps with the CPU interface
registers. Correct the address space for the distributor to be 4kB.

Cc: stable@vger.kernel.org
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Fixes: bcdbde4335 ("arm64: tegra: Add AGIC node for Tegra210")
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-20 11:17:03 +02:00
Nicolin Chen 08c7c74b09 arm64: tegra: Add INA3221 channel info for Jetson TX2
There are four INA3221 chips on the Jetson TX2 (p3310 + p2771).
And each INA3221 chip has three input channels to monitor power.

So this patch adds these 12 channels to the DT of Jetson TX2, by
following the DT binding of INA3221 and official documents from
https://developer.nvidia.com/embedded/downloads

tegra186-p3310:
https://developer.nvidia.com/embedded/dlc/jetson-tx2-series-modules-oem-product-design-guide

tegra186-p2771-0000:
http://developer.nvidia.com/embedded/dlc/jetson-tx1-tx2-developer-kit-carrier-board-spec-20180618

Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-20 11:17:02 +02:00
Thierry Reding d87764daed arm64: tegra: Enable PWM on Jetson Nano
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-06-20 11:17:02 +02:00
Jorge Ramirez-Ortiz 2410fd450c arm64: dts: qcom: qcs404-evb: fix vdd_apc supply
The invalid definition in the supply causes the Qualcomm's EVB-1000
and EVB-4000 not to boot.

Fix the boot issue by correctly defining the supply: vdd_s3 (namely
"vdd_apc") is actually connected to vph_pwr.

Reported-by: Niklas Cassel <niklas.cassel@linaro.org>
Tested-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <agross@kernel.org>
2019-06-19 23:50:52 -05:00
Martin Blumenstingl 50b617a618 arm64: dts: meson: g12a: x96-max: add the Ethernet PHY interrupt line
X96 Max has the PHY reset and interrupt lines are identical to the
Odroid-N2:
- GPIOZ_14 is the interrupt on X96 Max
- GPIOZ_15 is the reset line on X96 Max

Add GPIOZ_14 as PHY interrupt line on the X96 Max so we don't have to
poll for the PHY status.

Suggested-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-06-19 20:37:04 -07:00
Martin Blumenstingl 98ba71c94e arm64: dts: meson: g12b: odroid-n2: add the Ethernet PHY interrupt line
The interrupt line of the RTL8211F PHY is routed to the GPIOZ_14 pad.
Describe this in the device tree so the PHY framework doesn't have to
poll the PHY status.

Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-06-19 20:37:03 -07:00
Martin Blumenstingl 658e4129bb arm64: dts: meson: g12b: odroid-n2: add the Ethernet PHY reset line
The reset line of the RTL8211F PHY is routed to the GPIOZ_15 pad.
Describe this in the device tree so the PHY framework can bring the PHY
into a known state when initializing it. GPIOZ_15 doesn't support
driving the output HIGH (to take the PHY out of reset, only output LOW
to reset the PHY is supported). The datasheet states it's an "3.3V input
tolerant open drain (OD) output pin". Instead there's a pull-up resistor
on the board to take the PHY out of reset. The GPIO itself will be set
to INPUT mode to take the PHY out of reset and LOW to reset the PHY,
which is achieved with the flags (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN).

Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-06-19 20:34:14 -07:00
Martin Blumenstingl f29cabf240 arm64: dts: meson: use the generic Ethernet PHY reset GPIO bindings
The snps,reset-gpio bindings are deprecated in favour of the generic
"Ethernet PHY reset" bindings.

Replace snps,reset-gpio from the &ethmac node with reset-gpios in the
ethernet-phy node. The old snps,reset-active-low property is now encoded
directly as GPIO flag inside the reset-gpios property.

snps,reset-delays-us is converted to reset-assert-us and
reset-deassert-us. reset-assert-us is the second cell from
snps,reset-delays-us while reset-deassert-us was the third cell.

Instead of blindly copying the old values (which seems strange since
they gave the PHY one second to come out of reset) over this also
updates the delays based on the datasheets:
- the Realtek RTL8211F PHY needs a 10ms assert delay (the datasheet
  mentions: "For a complete PHY reset, this pin must be asserted low
  for at least 10ms") and a 30ms deassert delay (the datasheet
  mentions: "Wait for a further 30ms (for internal circuits settling
  time) before accessing the PHY register". This applies to the
  following boards: GXBB NanoPi K2, GXBB Odroid-C2, GXBB Vega S95
  variants, GXBB Wetek variants, GXL P230, GXM Khadas VIM2, GXM Nexbox
  A1, GXM Q200, GXM RBox Pro boards.
- the ICPlus IP101GR PHY needs a 10ms assert delay (the datasheet
  mentions: "Trst | Reset period | 10ms") and a deassert delay of 10ms
  as well (the datasheet mentions: "Tclk_MII_rdy | MII/RMII clock
  output ready after reset released | 10ms"). This applies to the GXBB
  Nexbox A95X board.
- the Micrel KSZ9031 seems to require a 100us delay but use the same
  (seemingly safe) values from RTL8211F due to lack of a board to verify
  this. This applies to the GXBB P200 board.

The GXBB P201 board is left out from this conversion because it doesn't
have a dedicated PHY node (because it's not clear which PHY is used on
that board).

Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-06-19 20:34:14 -07:00