Commit Graph

8252 Commits

Author SHA1 Message Date
Johannes Weiner
7b0eb6b41a arm64: fix vmemmap BUILD_BUG_ON() triggering on !vmemmap setups
Arnd reports the following arm64 randconfig build error with the PSI
patches that add another page flag:

  /git/arm-soc/arch/arm64/mm/init.c: In function 'mem_init':
  /git/arm-soc/include/linux/compiler.h:357:38: error: call to
  '__compiletime_assert_618' declared with attribute error: BUILD_BUG_ON
  failed: sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT)

The additional page flag causes other information stored in
page->flags to get bumped into their own struct page member:

  #if SECTIONS_WIDTH+ZONES_WIDTH+NODES_SHIFT+LAST_CPUPID_SHIFT <=
  BITS_PER_LONG - NR_PAGEFLAGS
  #define LAST_CPUPID_WIDTH LAST_CPUPID_SHIFT
  #else
  #define LAST_CPUPID_WIDTH 0
  #endif

  #if defined(CONFIG_NUMA_BALANCING) && LAST_CPUPID_WIDTH == 0
  #define LAST_CPUPID_NOT_IN_PAGE_FLAGS
  #endif

which in turn causes the struct page size to exceed the size set in
STRUCT_PAGE_MAX_SHIFT. This value is an an estimate used to size the
VMEMMAP page array according to address space and struct page size.

However, the check is performed - and triggers here - on a !VMEMMAP
config, which consumes an additional 22 page bits for the sparse
section id. When VMEMMAP is enabled, those bits are returned, cpupid
doesn't need its own member, and the page passes the VMEMMAP check.

Restrict that check to the situation it was meant to check: that we
are sizing the VMEMMAP page array correctly.

Says Arnd:

    Further experiments show that the build error already existed before,
    but was only triggered with larger values of CONFIG_NR_CPU and/or
    CONFIG_NODES_SHIFT that might be used in actual configurations but
    not in randconfig builds.

    With longer CPU and node masks, I could recreate the problem with
    kernels as old as linux-4.7 when arm64 NUMA support got added.

Reported-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Arnd Bergmann <arnd@arndb.de>
Cc: stable@vger.kernel.org
Fixes: 1a2db30034 ("arm64, numa: Add NUMA support for arm64 platforms.")
Fixes: 3e1907d5bf ("arm64: mm: move vmemmap region right below the linear region")
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-25 13:32:30 +01:00
Dirk Mueller
dc0e36581e arm64: Check for errata before evaluating cpu features
Since commit d3aec8a28b ("arm64: capabilities: Restrict KPTI
detection to boot-time CPUs") we rely on errata flags being already
populated during feature enumeration. The order of errata and
features was flipped as part of commit ed478b3f9e ("arm64:
capabilities: Group handling of features and errata workarounds").

Return to the orginal order of errata and feature evaluation to
ensure errata flags are present during feature evaluation.

Fixes: ed478b3f9e ("arm64: capabilities: Group handling of
    features and errata workarounds")
CC: Suzuki K Poulose <suzuki.poulose@arm.com>
CC: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Dirk Mueller <dmueller@suse.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-25 13:30:04 +01:00
Jerome Brunet
f2ac479f0d arm64: dts: meson-axg: add spdif-dit codec
Add the SPDIF playback codec to the axg s400 board

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-25 04:38:22 -07:00
Jerome Brunet
154b912c01 arm64: dts: meson-axg: add lineout codec
Add the es7154 digital to analog converter which supplies the
lienout jack of the s400

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-25 04:38:22 -07:00
Jerome Brunet
cfc34f041b arm64: dts: meson-axg: add linein codec
Add the es7241 analog to digital converter which is fed by the
lienin jack of the s400

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-25 04:38:21 -07:00
Jerome Brunet
08307aabe0 arm64: dts: meson-axg: add tdm interfaces
Add the devices reponsible for managing the i2s/tdm clocks and pads

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-25 04:38:21 -07:00
Jerome Brunet
fd91673926 arm64: dts: meson-axg: add tdmout formatters
Add the tdm devices responsible for serializing audio samples
for i2s/tdm interfaces

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-25 04:38:20 -07:00
Jerome Brunet
bf8e479003 arm64: dts: meson-axg: add tdmin formatters
Add the tdm devices responsible for decoding the data provided
through audio serial interface.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-25 04:38:20 -07:00
Jerome Brunet
f08c52de81 arm64: dts: meson-axg: add spdifout
Add the SPDIF output device of the axg audio subsystem

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-25 04:38:19 -07:00
Shohei Maruyama
0fbfe10fa9 arm64: dts: rockchip: add led support for Firefly-RK3399
This commit adds led support for the Firefly-RK3399. The board has two
leds, this commit enables them.

Signed-off-by: Shohei Maruyama <cheat.sc.linux@outlook.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2018-07-25 12:19:41 +02:00
Enric Balletbo i Serra
5b64d06133 arm64: dts: rockchip: remove deprecated Type-C PHY properties on rk3399
Commit 0fbc47d9e4 ("phy: rockchip-typec: deprecate some DT properties
for various register fields.") deprecates some Rockchip Type-C
properties. As these are now not needed, remove from the device tree
file.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2018-07-25 12:14:53 +02:00
Shohei Maruyama
24e5b85a1c arm64: dts: rockchip: add power button support for Firefly-RK3399
This commit adds power button support for the Firefly-RK3399.

Signed-off-by: Shohei Maruyama <cheat.sc.linux@outlook.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2018-07-25 12:14:53 +02:00
Ingo Molnar
93081caaae Merge branch 'perf/urgent' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-07-25 11:47:02 +02:00
Jerome Brunet
66d58a8f57 arm64: dts: meson-axg: add audio arb reset controller
Add the audio memory arbiter which control the access of the audio
fifos to the DDR.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-24 15:53:55 -07:00
Jerome Brunet
fd1a3b7e51 arm64: dts: meson-axg: add usb power regulator
The usb power regulator is supplied by the vcc 5v regulator and
controlled by a GPIO. This will be needed to enable usb.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-24 15:53:55 -07:00
Jerome Brunet
ff36932e03 arm64: dts: meson-axg: add vcc 5v regulator on the s400
This regulator is controlled by a GPIO and supplies various devices
on the board, such as the lineout codec, the usb supply or the lcd
controller.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-24 15:53:54 -07:00
Jerome Brunet
9f2619d5f5 arm64: dts: meson-axg: improve power supplies description
Add the parent supply of the s400 power supplies.
Also add 'regulator-always-on' property on the regulators which can't
be disabled

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-24 15:53:54 -07:00
Arnd Bergmann
2c870e6113 arm64: fix ACPI dependencies
Kconfig reports a warning on x86 builds after the ARM64 dependency
was added.

drivers/acpi/Kconfig:6:error: recursive dependency detected!
drivers/acpi/Kconfig:6:       symbol ACPI depends on EFI

This rephrases the dependency to keep the ARM64 details out of the
shared Kconfig file, so Kconfig no longer gets confused by it.

For consistency, all three architectures that support ACPI now
select ARCH_SUPPORTS_ACPI in exactly the configuration in which
they allow it. We still need the 'default x86', as each one
wants a different default: default-y on x86, default-n on arm64,
and always-y on ia64.

Fixes: 5bcd44083a ("drivers: acpi: add dependency of EFI for arm64")
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-24 12:34:48 +01:00
AKASHI Takahiro
09ffcb0d71 arm64: acpi: fix alignment fault in accessing ACPI
This is a fix against the issue that crash dump kernel may hang up
during booting, which can happen on any ACPI-based system with "ACPI
Reclaim Memory."

(kernel messages after panic kicked off kdump)
	   (snip...)
	Bye!
	   (snip...)
	ACPI: Core revision 20170728
	pud=000000002e7d0003, *pmd=000000002e7c0003, *pte=00e8000039710707
	Internal error: Oops: 96000021 [#1] SMP
	Modules linked in:
	CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.14.0-rc6 #1
	task: ffff000008d05180 task.stack: ffff000008cc0000
	PC is at acpi_ns_lookup+0x25c/0x3c0
	LR is at acpi_ds_load1_begin_op+0xa4/0x294
	   (snip...)
	Process swapper/0 (pid: 0, stack limit = 0xffff000008cc0000)
	Call trace:
	   (snip...)
	[<ffff0000084a6764>] acpi_ns_lookup+0x25c/0x3c0
	[<ffff00000849b4f8>] acpi_ds_load1_begin_op+0xa4/0x294
	[<ffff0000084ad4ac>] acpi_ps_build_named_op+0xc4/0x198
	[<ffff0000084ad6cc>] acpi_ps_create_op+0x14c/0x270
	[<ffff0000084acfa8>] acpi_ps_parse_loop+0x188/0x5c8
	[<ffff0000084ae048>] acpi_ps_parse_aml+0xb0/0x2b8
	[<ffff0000084a8e10>] acpi_ns_one_complete_parse+0x144/0x184
	[<ffff0000084a8e98>] acpi_ns_parse_table+0x48/0x68
	[<ffff0000084a82cc>] acpi_ns_load_table+0x4c/0xdc
	[<ffff0000084b32f8>] acpi_tb_load_namespace+0xe4/0x264
	[<ffff000008baf9b4>] acpi_load_tables+0x48/0xc0
	[<ffff000008badc20>] acpi_early_init+0x9c/0xd0
	[<ffff000008b70d50>] start_kernel+0x3b4/0x43c
	Code: b9008fb9 2a000318 36380054 32190318 (b94002c0)
	---[ end trace c46ed37f9651c58e ]---
	Kernel panic - not syncing: Fatal exception
	Rebooting in 10 seconds..

(diagnosis)
* This fault is a data abort, alignment fault (ESR=0x96000021)
  during reading out ACPI table.
* Initial ACPI tables are normally stored in system ram and marked as
  "ACPI Reclaim memory" by the firmware.
* After the commit f56ab9a5b7 ("efi/arm: Don't mark ACPI reclaim
  memory as MEMBLOCK_NOMAP"), those regions are differently handled
  as they are "memblock-reserved", without NOMAP bit.
* So they are now excluded from device tree's "usable-memory-range"
  which kexec-tools determines based on a current view of /proc/iomem.
* When crash dump kernel boots up, it tries to accesses ACPI tables by
  mapping them with ioremap(), not ioremap_cache(), in acpi_os_ioremap()
  since they are no longer part of mapped system ram.
* Given that ACPI accessor/helper functions are compiled in without
  unaligned access support (ACPI_MISALIGNMENT_NOT_SUPPORTED),
  any unaligned access to ACPI tables can cause a fatal panic.

With this patch, acpi_os_ioremap() always honors memory attribute
information provided by the firmware (EFI) and retaining cacheability
allows the kernel safe access to ACPI tables.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Reviewed-by: James Morse <james.morse@arm.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reported-by and Tested-by: Bhupesh Sharma <bhsharma@redhat.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-23 15:34:12 +01:00
James Morse
50d7ba36b9 arm64: export memblock_reserve()d regions via /proc/iomem
There has been some confusion around what is necessary to prevent kexec
overwriting important memory regions. memblock: reserve, or nomap?
Only memblock nomap regions are reported via /proc/iomem, kexec's
user-space doesn't know about memblock_reserve()d regions.

Until commit f56ab9a5b7 ("efi/arm: Don't mark ACPI reclaim memory
as MEMBLOCK_NOMAP") the ACPI tables were nomap, now they are reserved
and thus possible for kexec to overwrite with the new kernel or initrd.
But this was always broken, as the UEFI memory map is also reserved
and not marked as nomap.

Exporting both nomap and reserved memblock types is a nuisance as
they live in different memblock structures which we can't walk at
the same time.

Take a second walk over memblock.reserved and add new 'reserved'
subnodes for the memblock_reserved() regions that aren't already
described by the existing code. (e.g. Kernel Code)

We use reserve_region_with_split() to find the gaps in existing named
regions. This handles the gap between 'kernel code' and 'kernel data'
which is memblock_reserve()d, but already partially described by
request_standard_resources(). e.g.:
| 80000000-dfffffff : System RAM
|   80080000-80ffffff : Kernel code
|   81000000-8158ffff : reserved
|   81590000-8237efff : Kernel data
|   a0000000-dfffffff : Crash kernel
| e00f0000-f949ffff : System RAM

reserve_region_with_split needs kzalloc() which isn't available when
request_standard_resources() is called, use an initcall.

Reported-by: Bhupesh Sharma <bhsharma@redhat.com>
Reported-by: Tyler Baicar <tbaicar@codeaurora.org>
Suggested-by: Akashi Takahiro <takahiro.akashi@linaro.org>
Signed-off-by: James Morse <james.morse@arm.com>
Fixes: d28f6df130 ("arm64/kexec: Add core kexec support")
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
CC: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-23 15:30:32 +01:00
Olof Johansson
c931d34ea0 arm64: build with baremetal linker target instead of Linux when available
Not all toolchains have the baremetal elf targets, RedHat/Fedora ones
in particular. So, probe for whether it's available and use the previous
(linux) targets if it isn't.

Reported-by: Laura Abbott <labbott@redhat.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Paul Kocialkowski <contact@paulk.fr>
Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-23 15:30:19 +01:00
Mark Rutland
14d6e289a8 arm64: fix possible spectre-v1 write in ptrace_hbp_set_event()
It's possible for userspace to control idx. Sanitize idx when using it
as an array index, to inhibit the potential spectre-v1 write gadget.

Found by smatch.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-23 14:49:14 +01:00
Enric Balletbo i Serra
365e660fc8 arm64: defconfig: Enable more peripherals for Samsung Chromebook Plus.
Enable the Rockchip sound driver with MAX98357A/RT5514/DA7219 codecs,
Infineon TPM security chip (compliant with TCG TIS 1.2 TPM specification),
vctrl regulators for dynamic CPU voltages, UVC camera support and SBS-
compliant gas gauges needed for the Samsung Chromebook Plus.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2018-07-23 12:36:03 +02:00
Lukas Wunner
c4db9c1e8c efi: Deduplicate efi_open_volume()
There's one ARM, one x86_32 and one x86_64 version of efi_open_volume()
which can be folded into a single shared version by masking their
differences with the efi_call_proto() macro introduced by commit:

  3552fdf29f ("efi: Allow bitness-agnostic protocol calls").

To be able to dereference the device_handle attribute from the
efi_loaded_image_t table in an arch- and bitness-agnostic manner,
introduce the efi_table_attr() macro (which already exists for x86)
to arm and arm64.

No functional change intended.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20180720014726.24031-7-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-07-22 14:13:43 +02:00
Olof Johansson
94dee3861f TI AM654 support for v4.19 merge window
This branch adds initial support for new Texas Instruments AM654
 quad core A53 ARMv8 SoC. It's the first device for TI K3 multicore SoC
 architecture.
 
 Initially only basic devices are configured, support for more devices
 will follow later on. And many of the internal devices familiar from
 earlier TI SoCs should work with existing kernel device drivers.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAltSy5YRHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXMh2hAAqKkW9SbJJnPwFVafBn2W+mXsDG7wNq04
 3dvMueGZ4S2wuTOcB4fZLFIAW4N5C3P/d66PL2f/dTZHGBr23Qk9LW5UIPp3A+A7
 4jTXBSD2Hv6pLChuy3Mr6grGXKGXKfwptef04UZK2XLydQ/AJwEx6Lhj1nXXgT8x
 92C1F/9v7hogO+Iz1uUk/AhNeim7DYA/J6AajVcDjj0TO6a2lnLLxO7mKvZgqgg8
 2awuZ5aWuSvAOZ5GIAHksGyg8Z4yJslfM2lmTMZQZ5Wr/mO1Nl4LY9OrR+Cw9ctR
 R8k+blJ3iB11eGZglArvEdLIRG88Qi2GHJ69WtAXaHdytrT7v1O3vLwAd3CeEQG4
 GWX22X5qkIe6e66LLb/DKT799nZwwKnlH+mErDMF4ug/dbvLfvp6FztQ4URvd7dU
 +qRUl8mOS6690/vFKef1vIuK7W4z7T1VxxYssR6eWGXtY4aXVRmU+zVl1J/ymrC+
 5WDy9IihHgCYQtof3O/Drx5Go9xWVKrow4AF1onpnawM1N4g4QoPwUuL4bzsIqAk
 JcxaAErW1/DLGspkWFNXv70U7/EDYhGKuNMc9SoOYcq3kj1QW86AUmcAWm3LMGYV
 eYthnm1oTTD4AVyriMYEaRGhQICJ9zeivQO8dntCtBA4DTZ1MbrO2v+LhpQ45/hp
 rsW/9t77QSw=
 =pkLC
 -----END PGP SIGNATURE-----

Merge tag 'am654-for-v4.19-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt

TI AM654 support for v4.19 merge window

This branch adds initial support for new Texas Instruments AM654
quad core A53 ARMv8 SoC. It's the first device for TI K3 multicore SoC
architecture.

Initially only basic devices are configured, support for more devices
will follow later on. And many of the internal devices familiar from
earlier TI SoCs should work with existing kernel device drivers.

* tag 'am654-for-v4.19-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  arm64: dts: ti: Add support for AM654 EVM base board
  soc: ti: Add Support for AM654 SoC config option
  arm64: dts: ti: Add Support for AM654 SoC
  arm64: Add support for TI's K3 Multicore SoC architecture
  dt-bindings: arm: ti: Add bindings for AM654 SoC

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-21 15:06:03 -07:00
Olof Johansson
fb5c81931a Renesas ARM64 Based SoC Defconfig Updates for v4.19
* Enable BD9571MWV regulator in ARM64 defconfig
 
   This is to allow wider testing of the BD9571 PMIC which is
   present on boards with Renesas R-Car Gen3 SoCs
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4nzZofWswv9L/nKF189kaWo3T74FAltRsGwACgkQ189kaWo3
 T74vfg//cAnaw8SDbrtUcyP2P3heQ76ggI6x1qIYIdIB7+z4dCSSc3N9UCNthdkN
 vvu8jvcRfeHA1bxMC/6cey1W7FMwXy4cMnxQ2YxgxUHs7mEHLhpH20jmENsVoveW
 EX7w5BR+Ahfy8XuHg+4rzrnB2wJ47QUex9gemeyb+eLBX998bu/+Q6IKsR133U1f
 AFYrCOcPmu48kvybvplPIq7reohj6iIKueqjuRc1e3Wp7IWpbNcArIG8/52zDK8s
 o+udlmIXyHsx1CxsQ+iDi3sUeyNLzJHyLOLDXLkNjVGBOEcP9ml6L9jExn4w7otV
 EknlTBgYv8PNVWJmbjuK53PrPNcgWr3z0D/8lEF3M0hBCBVO8jcuL1/SGohG0ctk
 akczeoGnvbZUqVxJQIYWm9gRg76F8rMIycaLwxut2eo4u0zG/kIMozXznOSiuKzI
 PBU/X41rQKCXAYuaUwDOj6lRTVm9fm7r/x24KkqpGP4rX6EOInraMnV8GnnRDMw6
 BTXC9sIjemiupYjetdcV/hI5iTOj8gp8o37htdnTOU4AF49mmtCFiAg8M9Xa8eZf
 3VlyUAL914oPxUDbJ4u7TxsJC7magd5PS+LO/e4AX1VJ9U+Vb4r+YYaeeJkDfYGP
 4eZrX3XZ2/kY9mnyHtB3W79yngixNxj1Mgegd9ikIxc2oqt6lA8=
 =BkCA
 -----END PGP SIGNATURE-----

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

Renesas ARM64 Based SoC Defconfig Updates for v4.19

* Enable BD9571MWV regulator in ARM64 defconfig

  This is to allow wider testing of the BD9571 PMIC which is
  present on boards with Renesas R-Car Gen3 SoCs

* tag 'renesas-arm64-defconfig-for-v4.19' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  arm64: defconfig: Enable BD9571MWV regulator

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-21 14:58:40 -07:00
Olof Johansson
f156d3a0b8 Freescale arm64 device tree update for 4.19:
- Update device tree sources to use SPDX identifiers for license.
  - Add cooling device property '#cooling-cells' for all CPUs of
    a cluster.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJbUpInAAoJEFBXWFqHsHzOVXAH/Rp2MvE/TQckMeB1HVUczu30
 Lp3Q/SkdE8TRBdYmXscfMZtvzftZK127c+1NLb6Reo6HVvuGAnVIJgbkexj5Zq3N
 BaPwsVO5GzVZn5IL6cWAyWerNpq/bQKRLkj/AkMtVDha1sAUK0Mudxjc1YJU1r7n
 ZaIVxMNaaHK0gCVmK3PgQs8d/tHiszp2rWWuyoRFMMUlQFqHr5VseK8QLzk5dfUa
 Ieva2igKpoL4TIyFfbVhUD9J9FJrve9W1TQZpreOZBgZmkSEGqj5vAmEVqDD4O4y
 CwNKgemjQ9mfBCHH29lMl1xh1sPMSORVBVbzS5XUvVXypViOMNghGpL/I2OIk5o=
 =2P5W
 -----END PGP SIGNATURE-----

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

Freescale arm64 device tree update for 4.19:
 - Update device tree sources to use SPDX identifiers for license.
 - Add cooling device property '#cooling-cells' for all CPUs of
   a cluster.

* tag 'imx-dt64-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: dts: freescale: Add missing cooling device properties for CPUs
  arm64: dts: freescale: Update to use SPDX identifiers

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-21 14:56:39 -07:00
Olof Johansson
88657e9012 Amlogic 64-bit DT updates for v4.19
- new SoC: S805x
 - new board: S805x-based P241 board from Amlogic
 - AXG: add ADC support w/buttons, add pins for PDM, SPDIF
 - AXG: s400 board: preliminary support for audio
 - GX: nanopi-k2: add HDMI, CEC, CVBS support
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAltR/bgACgkQWTcYmtP7
 xmU66A//Zd528TID0tJ3xWkOexkfFrlscJteba/NT7ruGRXf56Kbe0pTc2z/8RuL
 ItcyLVTvPOxEro1w/imwNZXjFoXrrEmPRltjI2CKpCkEOijMp6MBJO08lSom82ti
 VN5OgWVQbtsx6XgsT5RfcJNvrBPobEuJzWirTQmrpt319rUnDIDYBa/spJCzY4TD
 jrI7Q5fY9NkxV2dVKjAsKrnjNWLFo0i6OF1eM0EyCCTYoa4vJ2Z6sAY2MZe0zXD3
 zteFJ4DriDP5VnYVTnbi/fnZEouPY7KuD8kcwxCCjmZu9jaKg7wsrSciIXKHf7AV
 zaNdFvVXPFKrRQXYaGsSAkP1QsxwE05FqnOkfKFU3CdxA+aeXDBcIRMwIxmovMS8
 Uuc1+qcINLaYRaypija9/D9SuMZz0QZz9Ga8g0oI44UEKsTKyf6DunN3UNIQVWwQ
 PFn43xRqpjEr9vGdTGas19bBtwkju16S2/xKn9wl+eaU4BEK5FL4PD3Oo2wHBsnv
 TMdWrlJ1hsmTO4ZvFS58zoQY938t4YXqAPBpcmlCsDDY857/t5J6Rke1Xhid/amT
 kV2JSWQ39Ow2fm5gf2ol3nKZ92qu6w1uCKvmA1yX370KQD48F/+eKb23QnA450Wp
 SWsOAozL77y5MHClbTfkHwKTKWBag1mAyTTcC8WruAaDhcGHHd4=
 =2Ab9
 -----END PGP SIGNATURE-----

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

Amlogic 64-bit DT updates for v4.19
- new SoC: S805x
- new board: S805x-based P241 board from Amlogic
- AXG: add ADC support w/buttons, add pins for PDM, SPDIF
- AXG: s400 board: preliminary support for audio
- GX: nanopi-k2: add HDMI, CEC, CVBS support

* tag 'amlogic-dt64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  ARM64: dts: meson-axg: add pdm pins
  ARM64: dts: meson-axg: add spdif input pins
  ARM64: dts: meson-axg: remove spdif out from gpio a7
  ARM64: dts: meson-axg: add adc buttons the S400
  ARM64: dts: meson-axg: remove vddio_ao18 from SoC dtsi
  ARM64: dts: meson-axg: add saradc support
  ARM64: dts: add S805X based P241 board
  dt-bindings: amlogic: Add support for GXL S805X and the P241 board
  ARM64: dts: amlogic: Add missing cooling device properties for CPUs
  ARM64: dts: meson-axg: add spdif output pins
  ARM64: dts: meson-axg: add s400 speaker amplifier
  ARM64: dts: meson-axg: add s400 main 12v supply
  ARM64: dts: meson-axg: add s400 microphone card leds
  ARM64: dts: meson-gxbb-nanopi-k2: Add HDMI, CEC and CVBS nodes
  ARM64: dts: meson-gx-p23x-q20x: move the wifi node to each board's .dts
  ARM64: dts: meson: enable the saradc node in meson-gx-p23x-q20x.dtsi

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-21 14:49:25 -07:00
Olof Johansson
1bf9350460 Second Round of Renesas ARM64 Based SoC DT Updates for v4.19
Corrections:
 
 * Remove non-existing STBE region from Ether-AVB node in DT of
   R-Car E3 (r8a77990) SoC
 
   This region does not exist on this SoC
 
 Cleanups:
 
 * Consistently use rwdt as label for Renesas Watchdog Timer devices
 
 * Add second port to rcar_sound placeholder in DT of R-Car M3-N (r8a77965) SoC
 
   Nodes with #address-cells/#size-cells should have more than one child node
 
 * Fix adv7482 decimal unit addresses in DT of Salvator-X and -XS boards
 
   Addresses are assumed to be hex by dtc, thus it is not valid to use
   decimal
 
 Enhancements:
 
 * Describe in DT:
   - INTC-EX of R-Car V3H (r8a77980) SoC
   - USB3.0 of R-Car E3 (r8a77980) SoC
   - All SCIF and HSCIF devices of R-Car D3 (r8a77995) SoC.
     Previously only SCIF2, used as the debug consile, was described.
   - All IPMMU devicesof R-Car M3-N (r8a77965), V3H (r8a77980) and
     E3 (r8a77990) SoCs
 
 * Enable USB3.0 in DT of R-Car E3 (r8a77980) based Ebisu board
 
 * Prefer HSCIF1 over SCIF1 in DT of Salvator-X and -XS boards
 
   HSCIF is superior to SCIF (larger FIFOs, more accurate and wider
   supported range of bitrates).
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4nzZofWswv9L/nKF189kaWo3T74FAltRy/kACgkQ189kaWo3
 T75YAw//dZT9bQPdLMGieRr72DbqjYKnje5BJJ+kou5qWY9Q4J1m0M6YIkMLUoWU
 Aon0ohO2XKKfaiR9HS/rpsXeUqaOmYxVMXr5nlA9CloeGoZGlTudE4hxoR3sMRZu
 /uJ/CiqrWchGp5XE9BZpN2NER0mW6Hwsha2nM5pWsO/zQix+X3nqJ+vcOQEvrO5L
 CIQ0W+In1tHDrKQdsQwxRRwWq+UqqdHNEsuyHLa05RpPCrGE1un2Y7ijeNRsHRt6
 TWsfZPWsnwz1skGRJRRtvSNu+0TFbza08qBv8ZMtxWzZjj1cVBFKWcH1gZL9JFhu
 HHS1G9axWzwohyVcpTYb8sziJugsEBBAbq3CuCJXF2TRflfzMWGNuU3eh2PT4r/f
 tqE4MUNio7xywhnWZObyKFxHQqjm/yBKfr///n7qw+VyJonVBoSdv3tluk9HGRQM
 KxZ+tEHNRJSCYJTZrpwfITkvRhXvOo3+S3k3w5wqz4sn0UjXJacvzHd7E97nXKQE
 7Mi0VZg4h2HDLzXwFRYKt7d1a7iwR1vpM3tVmmxaUviKs03739MtAJnNiSNDQm98
 quCwGKIJxVXwXbzgQgXyud8n6xIHj++moTzoqG3NwEzMDX30w9jJ0EUmuAx2hMA5
 DpIvBjRHt7ctSKcAAuondW/aAaTJOzlFzJbPjuG31vkA1CltBY0=
 =yZLk
 -----END PGP SIGNATURE-----

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

Second Round of Renesas ARM64 Based SoC DT Updates for v4.19

Corrections:

* Remove non-existing STBE region from Ether-AVB node in DT of
  R-Car E3 (r8a77990) SoC

Cleanups:

* Consistently use rwdt as label for Renesas Watchdog Timer devices
* Add second port to rcar_sound placeholder in DT of R-Car M3-N (r8a77965) SoC
* Fix adv7482 decimal unit addresses in DT of Salvator-X and -XS boards

Enhancements:

* Describe in DT:
  - INTC-EX of R-Car V3H (r8a77980) SoC
  - USB3.0 of R-Car E3 (r8a77980) SoC
  - All SCIF and HSCIF devices of R-Car D3 (r8a77995) SoC.
    Previously only SCIF2, used as the debug consile, was described.
  - All IPMMU devicesof R-Car M3-N (r8a77965), V3H (r8a77980) and
    E3 (r8a77990) SoCs
* Enable USB3.0 in DT of R-Car E3 (r8a77980) based Ebisu board
* Prefer HSCIF1 over SCIF1 in DT of Salvator-X and -XS boards

* tag 'renesas-arm64-dt2-for-v4.19' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  arm64: dts: renesas: r8a77980: add INTC-EX support
  arm64: dts: renesas: r8a77990: Enable USB3.0 host for Ebisu board
  arm64: dts: renesas: r8a77995: Add SCIF {0,1,3,4,5} and all HSCIF device nodes
  arm64: dts: renesas: r8a779{65,80,90}: Add IPMMU devices nodes
  arm64: dts: renesas: Unify the labels for RWDT
  arm64: dts: renesas: salvator-common: Prefer HSCIF1 over SCIF1
  arm64: dts: renesas: r8a77965: Add second port to rcar_sound placeholder
  arm64: dts: renesas: salvator-common: Fix adv7482 decimal unit addresses
  arm64: dts: renesas: r8a77990: Remove non-existing STBE region

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-21 14:35:40 -07:00
Olof Johansson
4d4ef9c422 ARM64: DT: Hisilicon SoC DT updates for 4.19v2
- Tidy up MMC properties for hi3660
 - Remove keep-power-in-suspend on hikey and hikey960 to
   avoid keeping wifi power during suspend and let the
   user enable it if required
 - Update idle states for hikey960
 - Add missing cooling device properties for cpus on hi6220
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJbUGAEAAoJEAvIV27ZiWZc85wQAKQkr3xovlKaFbFgRjo07qaN
 +VV5/Fe0i6NQpvjg+dxwNqrUQHvgUEPNhLn70a5UM9/1CV3Iltx6DkImC50deIor
 V3fy/IYi5Ud/qYRRTt/J498SPR1zSdLrDVt7gLrAjg3ipREh5MT9TYh6ADOSdfx5
 SHLbzC6BTfAR9it5hTrZb2P2zKicA1LNHVfTzmJaHk5eOoqN2S9F0KXni7a9nv5q
 LtZS7opR7Kx47iy++E1IOuorNQIFFCKQJWyNvKGzTBkCEKI9xa8pXlSyueKOPPuh
 f6ClYSUZnHIM+s6Kly54aFPoPx00Y5djr0svh1j3hJ4IPGQ8nCF9gMYk3G5eO5Rf
 /SuCgYhkkBZTXWg/L4I1jkRzfn99yFu+X6Uh/bafOrBVYEzehgucisgNi+T1urTY
 oKBQdXaq7LYES3S/PLIVBTat7NkGBN+sbe4cLtBc4RBHcmzI1iy+hKxr+uruhoOC
 lh10KCfpfQ3uazAi8kxAu8iJq6LEDfml2ymT5EMNSVKr8IQCxTLTcAJBR7HbFlY+
 xSkOqcVj5pHu89UArF34Dwm9TFcujhqdjp6rI/OXIK1CbvWihgMU4/TvBcYu9yZv
 TvOox4fQsGAzHAhDJZjTOBZ7IiU8hIVX+/irBP77LEyltczL8yM9PNsyIsgyLkGY
 teK3K2epJUzpIMe30oZg
 =070t
 -----END PGP SIGNATURE-----

Merge tag 'hisi-arm64-dt-for-4.19v2' of git://github.com/hisilicon/linux-hisi into next/dt

ARM64: DT: Hisilicon SoC DT updates for 4.19v2

- Tidy up MMC properties for hi3660
- Remove keep-power-in-suspend on hikey and hikey960 to
  avoid keeping wifi power during suspend and let the
  user enable it if required
- Update idle states for hikey960
- Add missing cooling device properties for cpus on hi6220

* tag 'hisi-arm64-dt-for-4.19v2' of git://github.com/hisilicon/linux-hisi:
  arm64: dts: hisilicon: Add missing cooling device properties for CPUs
  arm64: hikey960: update idle-states
  arm64: dts: hikey: Remove keep-power-in-suspend property
  arm64: dts: hikey960: Remove keep-power-in-suspend property
  arm64: dts: hikey960: Clean up MMC properties and move to proper file
  arm64: dts: hikey960: Remove deprecated MMC properties

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-21 14:28:31 -07:00
Olof Johansson
b68f95a5ec arm: dts: zynqmp: DT changes for v4.19
- Use serdev for BT in zcu100
 - Remove ep108
 - Fix gpio-keys binding
 - Add suport for Ultra96
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iEYEABECAAYFAltQQncACgkQykllyylKDCGrfwCdGu2vhgN9ydfYvzpzBZPoj9/e
 IyYAn362LTeqkYOBUzAebB6XrS1kBSA9
 =Np12
 -----END PGP SIGNATURE-----

Merge tag 'zynqmp-dt-for-v4.19-v2' of https://github.com/Xilinx/linux-xlnx into next/dt

arm: dts: zynqmp: DT changes for v4.19

- Use serdev for BT in zcu100
- Remove ep108
- Fix gpio-keys binding
- Add suport for Ultra96

* tag 'zynqmp-dt-for-v4.19-v2' of https://github.com/Xilinx/linux-xlnx:
  arm64: dts: zynqmp: Add support for Avnet Ultra96 rev1 board
  arm64: dts: zynqmp: Remove #address/#size-cells from gpio-keys
  arm64: dts: zynqmp: Remove ep108 board
  arm64: dts: zynqmp: Use serdev for zcu100 BT

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-21 14:27:26 -07:00
Olof Johansson
7f502f8b34 UniPhier ARM64 SoC DT updates for v4.19
- Add missing #cooling-cells properties
 
 - Add hp-det-gpio property to detect headphone via GPIO
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJbT8GAAAoJED2LAQed4NsGqwAQAJ/Vy/lcv/PwJJjShgrackM7
 WkGdflO8C3xQ035EikAxCwv2g6SCqpIosRM4PKCxtUfJWC/mBQISGPaCuLA9HR8S
 E3yA7pS4RTfHzIni3NEmyfHjRjLsDe9PZUseAoci0JbZMUzdj59RkBDO5ofvYv9v
 40AUXRVk/sxd2G+cusXrYzGncd77jgghqgpKWx6jRyiJkczPV1a0iRdIJHZb+yz7
 9oYJtibuJCEAFBV2tGiEFtiBXFQPwaZ/+z8q2vPSjzH+raqhG2ntNCqMq+TQop03
 Ym6mt0eBOd4VXMFBizhzebxBcg5+FTn7k6ia3L6BtqitRoqTvLfCkMHjP1Aqd290
 /xKExPYduI8uOBTm5rIDueUunbOPRnGWf0butmVsik3s3r8TP74tCmUlNH053tmo
 IEtoIFNh1L0ZcpyZT7tI7z5r/LSZ2/E0Yg3t8NhsydHBodSIIF2NdXAN3TjLmmfn
 JUkeJcoT9HjON7VyxY01yg6LiklCJvGfEWhseoW40RBKj/UDtMbC5Og6id2IwEC/
 7KH8O/KU0lLC5/3k+eAtREU1XJrScpgRZ1NUlj98QB7oBbo2IDxm1Wg6LnNW/2zV
 NsAvD+mi6F1GROMat005HmPwb9BFLqbBZ/i2F27BAqDR009zxwrjsKmt4ACRdmPA
 ZtonsGGGKg2/vdgqTNpu
 =nV/9
 -----END PGP SIGNATURE-----

Merge tag 'uniphier-dt64-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier into next/dt

UniPhier ARM64 SoC DT updates for v4.19

- Add missing #cooling-cells properties

- Add hp-det-gpio property to detect headphone via GPIO

* tag 'uniphier-dt64-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier:
  arm64: dts: uniphier: add headphone detect gpio for LD11 global board
  arm64: dts: uniphier: add headphone detect gpio for LD20 global board
  arm64: dts: uniphier: Add missing cooling device properties for CPUs

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-21 14:26:49 -07:00
Loic Poulain
e53db01831 arm64: dts: qcom: db410c: Fix Bluetooth LED trigger
Current LED trigger, 'bt', is not known/used by any existing driver.
Fix this by renaming it to 'bluetooth-power' trigger which is
controlled by the Bluetooth subsystem.

Fixes: 9943230c88 ("arm64: dts: qcom: Add apq8016-sbc board LED's related device nodes")
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 15:31:02 -05:00
Douglas Anderson
499ff1165d arm64: dts: sdm845: Default qupv3_id_0 as "disabled" like _id_1
In commit 8e4947ee477d ("arm64: dts: qcom: sdm845: Add I2C, SPI, and
UART9 nodes") I accidentally forgot to add the line:

  status = "disabled";

to qupv3_id_0 to match qupv3_id_1.  Add it now.  NOTE: right now the
only sdm845 board with a device tree in mainline is MTP and that board
currently doesn't have any peripherals under qupv3_id_0.  If any board
was currently using peripherals under qupv3_id_0 then that board would
need to add this snippet to their board dts file:

  &qupv3_id_0 {
     status = "okay";
  };

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 15:31:01 -05:00
Niklas Cassel
6192052350 arm64: dts: msm8916: drop legacy suffix for clocks used by MSM DRM driver
Drop legacy suffix for clocks used by MSM DRM driver.

The _clk suffix has been deprecated since commit 20c3bb80235 ("drm/msm:
drop _clk suffix from clk names").

Fixes: 720c3bb802 (drm/msm: drop _clk suffix from clk names)

The following warnings during boot have been seen since the referenced
fixes commit:

msm_dsi_phy 1a98300.dsi-phy: Using legacy clk name binding.  Use "iface" instead of "iface_clk"
msm 1a00000.mdss: Using legacy clk name binding.  Use "iface" instead of "iface_clk"
msm 1a00000.mdss: Using legacy clk name binding.  Use "bus" instead of "bus_clk"
msm 1a00000.mdss: Using legacy clk name binding.  Use "vsync" instead of "vsync_clk"
msm_mdp 1a01000.mdp: Using legacy clk name binding.  Use "bus" instead of "bus_clk"
msm_mdp 1a01000.mdp: Using legacy clk name binding.  Use "iface" instead of "iface_clk"
msm_mdp 1a01000.mdp: Using legacy clk name binding.  Use "core" instead of "core_clk"
msm_mdp 1a01000.mdp: Using legacy clk name binding.  Use "vsync" instead of "vsync_clk"
msm_dsi 1a98000.dsi: Using legacy clk name binding.  Use "mdp_core" instead of "mdp_core_clk"
msm_dsi 1a98000.dsi: Using legacy clk name binding.  Use "iface" instead of "iface_clk"
msm_dsi 1a98000.dsi: Using legacy clk name binding.  Use "bus" instead of "bus_clk"
msm_dsi 1a98000.dsi: Using legacy clk name binding.  Use "byte" instead of "byte_clk"
msm_dsi 1a98000.dsi: Using legacy clk name binding.  Use "pixel" instead of "pixel_clk"
msm_dsi 1a98000.dsi: Using legacy clk name binding.  Use "core" instead of "core_clk"

Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
Reviewed-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 15:30:51 -05:00
Abhishek Sahu
f8120d61ce arm64: defconfig: Enable CONFIG_MTD_NAND_QCOM for IPQ8074
QCOM IPQ8074 boards contain NAND flash memory for which
this config needs to be enabled.

Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 15:19:09 -05:00
Manivannan Sadhasivam
f63d609b60 arm64: dts: qcom: db820c: Add gpio-line-names property
Add gpio-line-names property for Dragonboard820c based on APQ8096 SoC.
There are 4 gpio-controllers present on this board, including the
APQ8096 SoC, PM8994 (GPIO and MPP) and PMI8994 (GPIO).

Lines names are derived from 96Boards CE Specification 1.0, Appendix
"Expansion Connector Signal Description". Line names for PMI8994 MPP
pins are not added due to the absence of the gpio-controller support.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 13:54:04 -05:00
Douglas Anderson
717f2013a4 arm64: dts: sdm845: Add rpmh-clk node
This adds the rpmh-clk node to sdm845 based on the examples in the
bindings.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 13:30:24 -05:00
Douglas Anderson
c83545d953 arm64: dts: sdm845: Add rpmh-rsc node
This adds the rpmh-rsc node to sdm845 based on the examples in the
bindings.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Lina Iyer <ilina@codeaurora.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 13:30:13 -05:00
Douglas Anderson
994356cfa9 arm64: dts: qcom: sdm845: Enable debug UART and I2C10 on sdm845-mtp
The debug UART is very useful to have.  I2C10 is enabled as an example
of a I2C port we can talk on for now.  Eventually we'll want to put
peripherals under it.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Tested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 13:29:54 -05:00
Douglas Anderson
897cf34e73 arm64: dts: qcom: sdm845: Add I2C, SPI, and UART9 nodes
This adds nodes to SDM845-dtsi for all the I2C ports, all the SPI
ports, and UART9.  Note that I2C / SPI / UART are a bit strange on
sdm845 because each "serial engine" has 4 pins associated with it and
depending on which firmware has been loaded into the serial engine
(loaded by the BIOS) the serial engine can behave like an I2C port, a
SPI port, or a UART.  As per the landed bindings that means that we
need to create one node for each possible mode that the port could be
in.  With 16 serial engines that means 16 x 3 = 48 nodes.

We get away with only creating 33 nodes for now because it seems very
likely that SDM845-based boards will actually all use the same UART
(UART 9) for debug purposes.  While another UART could be used for
something like Bluetooth communication we can cross that path when we
come to it.  Some documentation that I saw implied that using a UART
for "high speed" communications actually needs yet another different
serial engine firmware anyway.

Note that quick measurements adding all these nodes adds <10k of extra
space per dtb that they're included with.  If this becomes a problem
we may need to think of a different way to structure this so that
boards only get the nodes they need (or figure out how to get dtc to
strip 'disabled' nodes).  For now it seems OK.

These nodes were programmatically generated with a fairly dumb python
script.  See http://crosreview.com/1091631 for the source.

NOTE: at the moment SPI chip select doesn't appear to work in my tests
with the latest posted SPI driver.  All testing of SPI with this patch
has been done by hacking SPI to GPIO chip select.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 13:29:36 -05:00
Stephen Boyd
8ea4ffca89 arm64: dts: qcom: Add pm8005 and pm8998 support
Add basic support for the pm8005 and pm8998 PMICs. For now just support
the GPIO controllers.

Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Evan Green <evgreen@chromium.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 13:29:24 -05:00
James Morse
539aee0edb KVM: arm64: Share the parts of get/set events useful to 32bit
The get/set events helpers to do some work to check reserved
and padding fields are zero. This is useful on 32bit too.

Move this code into virt/kvm/arm/arm.c, and give the arch
code some underscores.

This is temporarily hidden behind __KVM_HAVE_VCPU_EVENTS until
32bit is wired up.

Signed-off-by: James Morse <james.morse@arm.com>
Reviewed-by: Dongjiu Geng <gengdongjiu@huawei.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2018-07-21 16:02:31 +01:00
Dongjiu Geng
be26b3a734 arm64: KVM: export the capability to set guest SError syndrome
For the arm64 RAS Extension, user space can inject a virtual-SError
with specified ESR. So user space needs to know whether KVM support
to inject such SError, this interface adds this query for this capability.

KVM will check whether system support RAS Extension, if supported, KVM
returns true to user space, otherwise returns false.

Signed-off-by: Dongjiu Geng <gengdongjiu@huawei.com>
Reviewed-by: James Morse <james.morse@arm.com>
[expanded documentation wording]
Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2018-07-21 16:02:31 +01:00
Dongjiu Geng
b7b27facc7 arm/arm64: KVM: Add KVM_GET/SET_VCPU_EVENTS
For the migrating VMs, user space may need to know the exception
state. For example, in the machine A, KVM make an SError pending,
when migrate to B, KVM also needs to pend an SError.

This new IOCTL exports user-invisible states related to SError.
Together with appropriate user space changes, user space can get/set
the SError exception state to do migrate/snapshot/suspend.

Signed-off-by: Dongjiu Geng <gengdongjiu@huawei.com>
Reviewed-by: James Morse <james.morse@arm.com>
[expanded documentation wording]
Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2018-07-21 16:02:30 +01:00
Marc Zyngier
9bc03f1df3 arm64: KVM: Cleanup tpidr_el2 init on non-VHE
When running on a non-VHE system, we initialize tpidr_el2 to
contain the per-CPU offset required to reach per-cpu variables.

Actually, we initialize it twice: the first time as part of the
EL2 initialization, by copying tpidr_el1 into its el2 counterpart,
and another time by calling into __kvm_set_tpidr_el2.

It turns out that the first part is wrong, as it includes the
distance between the kernel mapping and the linear mapping, while
EL2 only cares about the linear mapping. This was the last vestige
of the first per-cpu use of tpidr_el2 that came in with SDEI.
The only caller then was hyp_panic(), and its now using the
pc-relative get_host_ctxt() stuff, instead of kimage addresses
from the literal pool.

It is not a big deal, as we override it straight away, but it is
slightly confusing. In order to clear said confusion, let's
set this directly as part of the hyp-init code, and drop the
ad-hoc HYP helper.

Reviewed-by: James Morse <james.morse@arm.com>
Acked-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2018-07-21 16:02:17 +01:00
Stephen Boyd
000c4662ab arm64: dts: qcom: Add pmu node to sdm845
Add the CPU PMU on sdm845 to get perf support for hardware events.

Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-07-21 00:56:28 -05:00
David S. Miller
c4c5551df1 Merge ra.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux
All conflicts were trivial overlapping changes, so reasonably
easy to resolve.

Signed-off-by: David S. Miller <davem@davemloft.net>
2018-07-20 21:17:12 -07:00
Martin Blumenstingl
aaa080fa7e ARM64: dts: meson-gxl: add support for the Oranth Tanix TX3 Mini
The Tanix TX3 Mini is a TV box based on the Amlogic S905W chipset.
There are two variants:
- 1 GiB or 2 GiB of DDR3 memory
- 8 GB or 16 GB eMMC flash

Both variants come with:
- 802.11 b/g/n wifi (Silicon Valley Microelectronics SSV6051, does not
  support Bluetooth)
- an LED 7 segment display with an FD628 controller
- HDMI and AV (CVBS) output
- 2x USB (utilizing both USB ports provided by the SoC)
- micro SD card slot
- serial console (uart_AO) has to be soldered after opening the case

The board seems to be very similar to the P23x and Q20x reference
boards, which is why it includes meson-gx-p23x-q20x.dtsi:
- eMMC reset routed to BOOT_9
- the SDIO wifi chip's reset line is routed to GPIOX_6 and the reference
  clock is 32.768KHz on PWM_E
- SD card detection is routed to CARD_6
- vqmmc of all MMC controllers is hard-wired to 1.8V (VDDIO_BOOT)
- uart_AO can be accessed after opening the case and soldering RX, TX
  and GND lines onto the exposed solder points (marked with RX, TX and
  GND)

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 09:02:22 -07:00
Martin Blumenstingl
e3b8b7d49e ARM64: dts: meson-gxl: add support for the S905W SoC and the P281 board
S905W is a new SoC from the GXL series. It is a cost-reduced version of
the S905X.
The P281 development board from Amlogic uses the same layout as the P231
(S905D development board). Thus the new P281 board inherits
meson-gx-p23x-q20x.dtsi to avoid code-duplication.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 09:02:22 -07:00
Jerome Brunet
8909e72270 ARM64: dts: meson-axg: add the audio clock controller
Add the audio clock controller which is part of the audio bus
This controller takes 8 input plls, and the usual clock gate, from the
main clock controller. It provides the clocs for the all the devices of
the audio subsystem, such as tdms, spdif, pdm, etc.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 09:02:22 -07:00
Manivannan Sadhasivam
a873996921 arm64: dts: Add Mediatek X20 Development Board support
Add initial device tree support for Mediatek X20 Development Board
based on MT6797 Deca core SoC. This board is one of the 96Boards
Consumer Edition platform.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2018-07-20 17:46:46 +02:00
Jerome Brunet
89803e8b26 ARM64: dts: meson-axg: add pdm pins
Add pdm input pin definitions to meson AXG

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:37 -07:00
Jerome Brunet
c67ee0a88a ARM64: dts: meson-axg: add spdif input pins
Add spdif input pin definitions to meson AXG

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:37 -07:00
Jerome Brunet
399ac14ba5 ARM64: dts: meson-axg: remove spdif out from gpio a7
Spdif out in not multiplexed on gpio A7 (spdif in is)
Remove this entry to fix the problem.

Fixes: 53c03b0aff36 ("ARM64: dts: meson-axg: add spdif output pins")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:36 -07:00
Jerome Brunet
aabe5d2d4f ARM64: dts: meson-axg: add adc buttons the S400
Add the 6 adc buttons of the amlogic S400

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:36 -07:00
Jerome Brunet
65b7591a1e ARM64: dts: meson-axg: remove vddio_ao18 from SoC dtsi
Regulator should not be defined inside the SoC dtsi file.
vddio_ao18 is already defined in the S400 board dts anyway.

Fixes: bb8a2ebd0498 ("ARM64: dts: meson-axg: add saradc support")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:35 -07:00
Xingyu Chen
a51b74ea78 ARM64: dts: meson-axg: add saradc support
Add the DT info for SAR ADC of the Amlogic's Meson-AXG SoC.

Signed-off-by: Xingyu Chen <xingyu.chen@amlogic.com>
Signed-off-by: Yixun Lan <yixun.lan@amlogic.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:34 -07:00
Neil Armstrong
fd47716479 ARM64: dts: add S805X based P241 board
The Amlogic P241 board is the Reference Design board for the S805X
variant of the Amlogic Meson GXL SoC family.

The P241 board has the following features :
- 1GiB DDR4 Memory
- HDMI Connector with CEC
- A/V jack with Stereo Audio and CVBS
- 10/100 Ethernet
- 2x USB2.0 Type-A
- On-board WiFi SDIO Module
- On-board eMMC storage
- Infraread Received
- Factory Reset button
- UART connector

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:34 -07:00
Viresh Kumar
e3128cea8b ARM64: dts: amlogic: Add missing cooling device properties for CPUs
The cooling device properties, like "#cooling-cells" and
"dynamic-power-coefficient", should either be present for all the CPUs
of a cluster or none. If these are present only for a subset of CPUs of
a cluster then things will start falling apart as soon as the CPUs are
brought online in a different order. For example, this will happen
because the operating system looks for such properties in the CPU node
it is trying to bring up, so that it can register a cooling device.

Add such missing properties.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
[khilman: s/arm64/ARM64/ in Subject]
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:33 -07:00
Jerome Brunet
70d4b64f6c ARM64: dts: meson-axg: add spdif output pins
Add the different pin configurations for the spdif output

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:32 -07:00
Jerome Brunet
a90193b9a0 ARM64: dts: meson-axg: add s400 speaker amplifier
Add the first of the two tas5707 power amplifier present on the
speaker daughter board.

According to the schematics of the S400 v3, only I2SB_DIN3 and
I2SC_DOUT2 will be available to the speaker board.

9R83, 9R84 and 9R18 are not connected so no audio signal will be
provided to the second amplifier. There is no point in enabling it
even if it is visible on the i2c bus.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:32 -07:00
Jerome Brunet
e120289cc0 ARM64: dts: meson-axg: add s400 main 12v supply
Add a fixed regulator for the main 12v which is the main power supply
of the board.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:31 -07:00
Jerome Brunet
6279f6669d ARM64: dts: meson-axg: add s400 microphone card leds
The microphone card connected to the s400 has 6 leds controlled
through an additional i2c gpio controller.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:30 -07:00
Neil Armstrong
d1b5a0a8ff ARM64: dts: meson-gxbb-nanopi-k2: Add HDMI, CEC and CVBS nodes
The Amlogic Meson GXBB based Nanopi-K2 board has an HDMI connector
with CEC and CVBS available on the 40pin header.
This patch adds the nodes to enable HDMI, CEC and CVBS functionnalities.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:30 -07:00
Martin Blumenstingl
1b2b1e752d ARM64: dts: meson-gx-p23x-q20x: move the wifi node to each board's .dts
meson-gx-p23x-q20x.dtsi is currently used by five boards:
- Amlogic P230 and P231 (which should be identical, apart from the
  external RGMII PHY on P230 whereas P231 can only use the internal PHY)
- Amlogic Q200 (identical to P230 but with an S912 GXM SoC instead of a
  GXL S905D SoC) and Q201 (identical to P231 but with an S912 GXM SoC
  instead of a GXL S905D SoC)
- NEXBOX A1 (based on the S912 GXM SoC)

The Amlogic P230 board uses a Broadcom BCM4356 SDIO wifi chip. Since the
other Amlogic reference design boards are very similar it's safe to
assume that these also use a Broadcom based SDIO wifi chip (which is
also how it was configured in meson-gx-p23x-q20x.dtsi).

However, NEXBOX A1 comes with a "longsys LTM8830" SDIO wifi module,
which is based on the "Qualcomm Atheros QCA9377-3(QCA1023-0)" chipset.

Thus move the wifi node from meson-gx-p23x-q20x.dtsi to each of the
four Amlogic reference board's .dts files.
There are no devicetree bindings for the QCA9377 SDIO wifi module yet,
so nothing is added to meson-gxm-nexbox-a1.dts.

Fixes: f51b454549 ("ARM64: dts: meson-gxm: Add support for the Nexbox A1")
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:22 -07:00
Martin Blumenstingl
41ed2e0db4 ARM64: dts: meson: enable the saradc node in meson-gx-p23x-q20x.dtsi
meson-gxl-s905d-p230.dts and meson-gxm-q200.dts enable the saradc node
(and configure it's vref-supply "VDDIO_AO18") in their corresponding
.dts file.
Move both (the saradc node as well as the VDDIO_AO18 regulator) to
remove some duplicate code.

As a positive side-effect this enables the saradc also for the P231 (GXL
S905D) and Q201 (GXM S912) development boards which are similar to the
P230/Q200 boards (P231 and Q201 use the internal 100Mbit/s PHY, while
P230 and Q200 have an external RGMII PHY).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2018-07-20 08:18:11 -07:00
Sergei Shtylyov
9a6c158f62 arm64: dts: renesas: r8a77980: add INTC-EX support
Describe the INTC-EX interrupt controller in the R8A77980 device tree.

Based on the original (and large) patch by Vladimir Barinov.

Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2018-07-20 13:47:34 +02:00
Yoshihiro Shimoda
fe1bc94a27 arm64: dts: renesas: r8a77990: Enable USB3.0 host for Ebisu board
This patch adds and USB3.0 host device node and enable it for
R-Car E3 Ebisu board.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2018-07-20 13:47:33 +02:00
Takeshi Kihara
30316c4f7f arm64: dts: renesas: r8a77995: Add SCIF {0,1,3,4,5} and all HSCIF device nodes
This patch adds the device nodes for SCIF {0,1,3,4,5} and all HSCIF serial
ports, incl. clocks, power domain and DMAs.

Signed-off-by: Takeshi Kihara <takeshi.kihara.df@renesas.com>
Signed-off-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
2018-07-20 13:47:16 +02:00
liwei
7ee7ef24d0 scsi: arm64: defconfig: enable configs for Hisilicon ufs
Signed-off-by: Li Wei <liwei213@huawei.com>
Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Signed-off-by: Guodong Xu <guodong.xu@linaro.org>
Tested-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-07-19 21:57:39 -04:00
liwei
360249d2ae scsi: arm64: dts: add ufs dts node
arm64: dts: add ufs node for Hisilicon.

Signed-off-by: Li Wei <liwei213@huawei.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Tested-by: John Stultz <john.stultz@linaro.org>
Acked-by: Wei Xu <xuwei5@hisilicon.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-07-19 21:57:39 -04:00
Icenowy Zheng
ecbd611882
arm64: allwinner: h6: enable MMC0/2 on Pine H64
The Pine H64 board have a MicroSD slot connected to MMC0 controller of
the H6 SoC and a eMMC slot connected to MMC2.

Enable them in the device tree.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2018-07-19 16:50:33 +02:00
Icenowy Zheng
8f54bd1595
arm64: allwinner: h6: add device tree nodes for MMC controllers
The Allwinner H6 SoC have 3 MMC controllers.

Add device tree nodes for them.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2018-07-19 16:50:30 +02:00
Corentin Labbe
22f3d86f0d
arm64: dts: allwinner: a64: Remove unused address-cells/size-cells of dwmac-sun8i
address-cells/size-cells is unnecessary for dwmac-sun8i node.
It was in early days, but since a mdio node is used, it could be
removed.

This patch fix the following DT warning:
Warning (avoid_unnecessary_addr_size): /soc/ethernet@1c50000: unnecessary #address-cells/#size-cells without "ranges" or child "reg" property

Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2018-07-19 16:37:23 +02:00
Michal Simek
41ee3e3883 arm64: dts: zynqmp: Add support for Avnet Ultra96 rev1 board
Avnet Ultra96 rev1 board is commercialized Xilinx zcu100 revC/D
internal board. The patch is reusing zcu100 revC files but changing
model description and compatible strings which are used for example by
libmraa.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2018-07-19 09:48:30 +02:00
Michal Simek
e4c986bb46 arm64: dts: zynqmp: Remove #address/#size-cells from gpio-keys
dts reports incorrect usage of these properties in gpio-keys node.
Warning (avoid_unnecessary_addr_size): /gpio-keys: unnecessary

The patch is removing these useless properties.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2018-07-19 09:48:23 +02:00
Michal Simek
d724778640 arm64: dts: zynqmp: Remove ep108 board
ZynqMP Emulation board is no longer tested and there is no reason to
keep maintaining it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2018-07-19 09:48:16 +02:00
Michal Simek
a5c2ed4829 arm64: dts: zynqmp: Use serdev for zcu100 BT
Mainline started to use serdev interface for uart attached devices.
Change description to reflect it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2018-07-19 09:48:01 +02:00
Katsuhiro Suzuki
1470075d5e arm64: dts: uniphier: add headphone detect gpio for LD11 global board
This patch adds GPIO for headphone detection on LD11 global board.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-07-19 06:43:12 +09:00
Katsuhiro Suzuki
97e10f5ae8 arm64: dts: uniphier: add headphone detect gpio for LD20 global board
This patch adds GPIO for headphone detection on LD20 global board.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-07-19 06:43:11 +09:00
Viresh Kumar
af0e09d0c6 arm64: dts: uniphier: Add missing cooling device properties for CPUs
The cooling device properties, like "#cooling-cells" and
"dynamic-power-coefficient", should either be present for all the CPUs
of a cluster or none. If these are present only for a subset of CPUs of
a cluster then things will start falling apart as soon as the CPUs are
brought online in a different order. For example, this will happen
because the operating system looks for such properties in the CPU node
it is trying to bring up, so that it can register a cooling device.

Add such missing properties.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-07-19 06:43:11 +09:00
Nishanth Menon
d0a064bec7 arm64: dts: ti: Add support for AM654 EVM base board
The EValuation Module(EVM) platform for AM654 consists of a
common Base board + one or more of daughter cards, which include:
a) "Personality Modules", which can be specific to a profile, such as
 ICSSG enabled or Multi-media (including audio).
b) SERDES modules, which may be 2 lane PCIe or two port PCIe + USB2
c) Camera daughter card
d) various display panels

Among other options. There are two basic configurations defined which
include an "EVM" configuration and "IDK" (Industrial development kit)
which differ in the specific combination of daughter cards that are
used.

To simplify support, we choose to support just the base board as the
core device tree file and all daughter cards would be expected to be
device tree overlays.

Reviewed-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2018-07-18 11:48:36 -07:00
Nishanth Menon
ea47eed33a arm64: dts: ti: Add Support for AM654 SoC
The AM654 SoC is a lead device of the K3 Multicore SoC architecture
platform, targeted for broad market and industrial control with aim to
meet the complex processing needs of modern embedded products.

Some highlights of this SoC are:
* Quad ARMv8 A53 cores split over two clusters
* GICv3 compliant GIC500
* Configurable L3 Cache and IO-coherent architecture
* Dual lock-step capable R5F uC for safety-critical applications
* High data throughput capable distributed DMA architecture under NAVSS
* Three Gigabit Industrial Communication Subsystems (ICSSG), each with dual
  PRUs and dual RTUs
* Hardware accelerator block containing AES/DES/SHA/MD5 called SA2UL
* Centralized System Controller for Security, Power, and Resource
  management.
* Dual ADCSS, eQEP/eCAP, eHRPWM, dual CAN-FD
* Flash subsystem with OSPI and Hyperbus interfaces
* Multimedia capability with CAL, DSS7-UL, SGX544, McASP
* Peripheral connectivity including USB3, PCIE, MMC/SD, GPMC, I2C, SPI,
  GPIO

See AM65x Technical Reference Manual (SPRUID7, April 2018)
for further details: http://www.ti.com/lit/pdf/spruid7

NOTE:
1. AM654 is the first of the device variants, hence we introduce a
   generic am65.dtsi.
2. We indicate the proper bus topology, the ranges are elaborated in
   each bus segment instead of using the top level ranges to make sure
   that peripherals in each segment use the address space accurately.
3. Peripherals in each bus segment is maintained in a separate dtsi
   allowing for reuse in different bus segment representation from a
   different core such as R5. This is also the reason for maintaining a
   1-1 address map in the ranges.
4. Cache descriptions follow the ARM64 standard description.

Further tweaks may be necessary as we introduce more complex devices,
but can be introduced in context of the device introduction.

Reviewed-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Benjamin Fair <b-fair@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2018-07-18 11:48:36 -07:00
Nishanth Menon
c77245722f arm64: Add support for TI's K3 Multicore SoC architecture
Add support for Texas Instrument's K3 Multicore SoC architecture
processors.

Reviewed-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2018-07-18 11:48:36 -07:00
Olof Johansson
3de0a6b986 ARM64: hisilicon: defconfig updates for 4.18
- Enable uncore pmu for some hisilicon SoCs
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJbT0erAAoJEAvIV27ZiWZcM7gP/AhMhnRWbny+zdts1KcezReE
 WyCuKe+eH5Egs4VsJQ7tHu0xkZ15etfyggghyHVIhfoBU4GiklsV/f1qUbr2E0fp
 5x8Cq5afQaLhH8bDZhJP/LkC+2FpHDDD497KqFuhgfXRE1BAt/IOR2dcE++TwlxX
 IlT1xHBa/OL1vd6y/snmydWLB3jVHUT0XySj7aCwDucjCof0QjD4J5Mlvwtz4Aaz
 a+HeOaX6BriyOM0yjKvIbWbghlPJ6xAxMgPhLEEe5nMGJR9X+LfQcJM+mCviRHcj
 H6radAnER/e5Lnj+LiWLDa78DyY34b4rtgTp/5A5Rd0nZdz/VIsxPMxjhUs+l49a
 HmTr/PFe3FB/LIo1pX5KuIBuEbpfIDSpJKgVULg/kTZCUIWmvN9mZtqz8yCc374X
 v7belVHM9t+4xNtNol/LShgeqD9aT1UwXFPTKFFfxjAb6jXuRuqP5Kz0h3J75fk1
 TheHFPZlXb8XsyTH7fsjNo9G8VGBifAxZ8o0cBkpYJ1VcJCEjWe4J1WfApBExUZk
 7qEOKmppgViX0qvDWF7qPjnI+2SyHvoocCAf7t1dVnQBxCvjhCjsYbeX3rh+GSu7
 Tj4hAiwBnYl3nukv3+sva2HNtlmBTSx9jWNXKA6IXll3GRlg01yhjjUFKjMtI4K6
 7tycL84gUz4g85/1vLrR
 =nik/
 -----END PGP SIGNATURE-----

Merge tag 'hisi-defconfig-for-4.19' of git://github.com/hisilicon/linux-hisi into next/defconfig

ARM64: hisilicon: defconfig updates for 4.18

- Enable uncore pmu for some hisilicon SoCs

* tag 'hisi-defconfig-for-4.19' of git://github.com/hisilicon/linux-hisi:
  arm64: defconfig: enable HiSilicon PMU driver

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-18 08:53:22 -07:00
Laura Abbott
efa75c4923 arm64: Add build salt to the vDSO
The vDSO needs to have a unique build id in a similar manner
to the kernel and modules. Use the build salt macro.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-07-18 01:18:05 +09:00
Zhou Wang
cc4493faf4 arm64: defconfig: enable HiSilicon PMU driver
Signed-off-by: Zhou Wang <wangzhou1@hisilicon.com>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
2018-07-17 14:06:16 +01:00
Viresh Kumar
4d4585c21f arm64: dts: hisilicon: Add missing cooling device properties for CPUs
The cooling device properties, like "#cooling-cells" and
"dynamic-power-coefficient", should either be present for all the CPUs
of a cluster or none. If these are present only for a subset of CPUs of
a cluster then things will start falling apart as soon as the CPUs are
brought online in a different order. For example, this will happen
because the operating system looks for such properties in the CPU node
it is trying to bring up, so that it can register a cooling device.

Add such missing properties.

Do minor rearrangement as well to keep ordering consistent.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
2018-07-17 13:56:45 +01:00
Vincent Guittot
a5956defe5 arm64: hikey960: update idle-states
Update entry/exit latency and residency time of hikey960 to use more
realistic figures based on unitary tests done on the platform.

The complete results (in us) :
                  big cluster
                  cluster  CPU
max entry latency     800  400
max exit latency     2900  550
residency  903Mhz    5000 1500
residency 2363Mhz       0 1500

                  little cluster
                  cluster  CPU
max entry latency     500  400
max exit latency     1600  650
residency  533Mhz    8000 4500
residency 1844Mhz       0 1500

We can see that the residency time depends of the running OPP which is not
handled for now. Then we also have to take into account the constraint of
a residency time shorter than the tick to get full advantage of idle loop
reordering(tick is stopped if idle duration is higher than tick period).
Finally the selected residency value are :
                 big cluster
                  cluster  CPU
residency            3700 1500

                  little cluster
                  cluster  CPU
residency            3500 1500

A simple test with a task waking up every 11.111ms shows improvement:
- 5% a lowest OPP
- 22% at highest OPP

The period has been chosen:
- to be shorter than old cluster residency time and longer than new
residency time of cluster off C-state
- to prevent any sync with tick (4ms) when running tests that can add
some variances between tests

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
2018-07-17 12:19:25 +01:00
oscardagrach
8883ac1db3 arm64: dts: hikey: Remove keep-power-in-suspend property
Remove the keep-power-in-suspend property because it keeps wifi power
on during suspend. This property is only required when enabling WoWLAN
and should only be enabled based on need.

Signed-off-by: Ryan Grachek <ryan@edited.us>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
2018-07-17 12:02:30 +01:00
oscardagrach
8a368657fe arm64: dts: hikey960: Remove keep-power-in-suspend property
Remove the keep-power-in-suspend property because it keeps wifi power
on during suspend. This property is only required when enabling WoWLAN
and should only be enabled based on need. Also remove dupplicate property

Signed-off-by: Ryan Grachek <ryan@edited.us>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
2018-07-17 12:02:30 +01:00
oscardagrach
f0ab786fad arm64: dts: hikey960: Clean up MMC properties and move to proper file
Certain properties should be moved to the board file to reflect
the specific properties of the board, and not the SoC. Move these
properties to proper location and organize properties in both files.

Signed-off-by: Ryan Grachek <ryan@edited.us>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
2018-07-17 12:02:30 +01:00
oscardagrach
52ac6f2a88 arm64: dts: hikey960: Remove deprecated MMC properties
Remove deprecated MMC properties for hi3660

Signed-off-by: Ryan Grachek <ryan@edited.us>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
2018-07-17 12:01:33 +01:00
Ryder Lee
2b519747ae arm64: dts: mt7622: update a clock property for UART0
The input clock of UART0 should be CLK_PERI_UART0_PD.

Fixes: 13f36c326c ("arm64: dts: mt7622: turn uart0 clock to real ones")
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2018-07-17 09:56:11 +02:00
Ingo Molnar
37c45b2354 Linux 4.18-rc5
-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAltLpVUeHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGWisH/ikONMwV7OrSk36Y
 5rxzTFUoBk0Qffct88gtSNuRVCxaVb1ofCndvFJE6A6HfJkWpbBzH6eq90aakmJi
 f7uFcu4YmsQpeQaf9lpftWmY2vDf2fIadVTV0RnSMXks57wMax1cpBe7LJGpz13e
 f+g5XRVs1MdlZVtr6tG2SU3Y5AqVVVsYe/0DBPonEqeh9/JJbPFCuNkFOxxzAqPu
 VTnjyoOqG8qtZzjklNtR5rZn0Gv592tWX36eiWTQdThNmVFkGEAJwsHCQlY4OQYK
 61QN4UhOHiu8e1ZuGDNEDhNVRnKtaaYUPFeWL1wLRW73ul4P3ZkpvpS8QTMwcFJI
 JjzNOkI=
 =ckcO
 -----END PGP SIGNATURE-----

Merge tag 'v4.18-rc5' into x86/mm, to pick up fixes

Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-07-17 09:31:30 +02:00
Ingo Molnar
52b544bd38 Linux 4.18-rc5
-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAltLpVUeHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGWisH/ikONMwV7OrSk36Y
 5rxzTFUoBk0Qffct88gtSNuRVCxaVb1ofCndvFJE6A6HfJkWpbBzH6eq90aakmJi
 f7uFcu4YmsQpeQaf9lpftWmY2vDf2fIadVTV0RnSMXks57wMax1cpBe7LJGpz13e
 f+g5XRVs1MdlZVtr6tG2SU3Y5AqVVVsYe/0DBPonEqeh9/JJbPFCuNkFOxxzAqPu
 VTnjyoOqG8qtZzjklNtR5rZn0Gv592tWX36eiWTQdThNmVFkGEAJwsHCQlY4OQYK
 61QN4UhOHiu8e1ZuGDNEDhNVRnKtaaYUPFeWL1wLRW73ul4P3ZkpvpS8QTMwcFJI
 JjzNOkI=
 =ckcO
 -----END PGP SIGNATURE-----

Merge tag 'v4.18-rc5' into locking/core, to pick up fixes

Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-07-17 09:27:43 +02:00
Icenowy Zheng
eb28fb9e47 arm64: dts: allwinner: h6: enable AXP805 PMIC on Pine H64
Pine H64 board has an AXP805 PMIC on it, wired up in standalone, or
self-working, mode.

Enable it in the device tree.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Reviewed-by: Icenowy Zheng <icenowy@aosc.io>
Tested-by: Icenowy Zheng <icenowy@aosc.io>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
2018-07-17 10:07:41 +08:00
Chen-Yu Tsai
de2b5552ae arm64: dts: allwinner: h6: Use macros for R_CCU clock and reset indices
Now that the device tree binding headers for the R_CCU have been merged,
we can use the macros, instead of raw numbers.

Switch to R_CCU macros for clock and reset indices.

Reviewed-by: Icenowy Zheng <icenowy@aosc.io>
Tested-by: Icenowy Zheng <icenowy@aosc.io>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
2018-07-17 10:07:29 +08:00
Heiko Stuebner
d3a537e9a7 arm64: dts: rockchip: drop out-of-tree properties from rk3399-ficus regulator
The pwm-regulator for vdd_log uses additional unreviewed properties in the
vendor kernel, which slipped in with the devicetree.
As written, they are unreviewed and unused in all mainline implementations
so drop them again.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2018-07-16 18:52:44 +02:00
Enric Balletbo i Serra
34e05c2ee5 arm64: dts: rockchip: add voltage properties for vcc3v3_pcie on rk3399 ficus
The vcc3v3_pcie regulator supplies 3.3V so add voltage properties
for it.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
[split off from original patch]
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2018-07-16 18:50:25 +02:00
Enric Balletbo i Serra
65abc84587 arm64: dts: rockchip: add USB 2.0 and 3.0 support on Ficus board
The board exposes two types A ports, one is USB 3.0, up to 5.0Gbps and
another one is USB 2.0 up to 480Mbps. Enable the USB PHYs and the USB
controllers to enable theses devices.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2018-07-16 18:45:52 +02:00
Sean Wang
c0d9f9ad4f arm64: dts: mt7622: add earlycon to mt7622-rfb1 board
Add earlycon to mt7622-rfb1 as to know what was going on when a certain
fault is happening at the early initialization stage.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2018-07-16 15:35:36 +02:00
Sean Wang
aa54a84f83 arm64: dts: mt7622: use gpio-ranges to pinctrl device
Using gpio-ranges property represent which GPIOs correspond to which pins
on MT7622 pin controllers. For details, we can see section 2.1 of
Documentation/devicetree/bindings/gpio/gpio.txt to know how to bind pinctrl
and gpio drivers via the "gpio-ranges" property.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2018-07-16 15:35:36 +02:00
Magnus Damm
55697cbb44 arm64: dts: renesas: r8a779{65,80,90}: Add IPMMU devices nodes
Add IPMMU device nodes for the R-Car M3-N (r8a77965),
V3H (r8a77980) and E3 (r8a77990) SoCs.

* The r8a77965 IPMMU is quite similar to r8a7796 however VP0
  has been added and PV1 has been removed. Also the IMSSTR
  bit assignment has been reworked.

* The r8a77980 IPMMU is quite similar to r8a77970 however VC0
  has been added. The IMSSTR bit assignment has also been
  reworked. Power domains are also quite different however the
  the documentation is rather unclear about this topic.

  Until we know better VC0 gets assigned to R8A77980_PD_ALWAYS_ON.

* The r8a77990 IPMMU is similar to r8a77995. Power domains are
  however different and the public documentation is still unclear.

  Based on preliminary information from the hardware team the R-Car E3
  SoC comes with an IPMMU-VP0 device in an Always-on power domain and
  the IPMMU-VC0 is placed as expected in the A3VC power domain.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2018-07-16 09:44:13 +02:00
Olof Johansson
96a63ce040 mvebu dt64 for 4.19 (part 1)
Armada 3700
  - Add default memory reservation for ATF
  - Add a node for AVS support
 Fix eth3 connector name on the Macchiatobin
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCW0hwpQAKCRALBhiOFHI7
 1WtcAKCGbi1l3gHxOT0WdMtx3vjxIlySYgCgknnIsyIO3uDuujsEOH9nGhzyDAo=
 =KfNs
 -----END PGP SIGNATURE-----

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

mvebu dt64 for 4.19 (part 1)

Armada 3700
 - Add default memory reservation for ATF
 - Add a node for AVS support
Fix eth3 connector name on the Macchiatobin

* tag 'mvebu-dt64-4.19-1' of git://git.infradead.org/linux-mvebu:
  arm64: dts: marvell: armada-37xx: reserve memory for ATF
  arm64: dts: marvell: armada-37xx: add the node allowing AVS support
  arm64: dts: marvell: mcbin: fix eth3 connector name

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-14 14:26:48 -07:00
Olof Johansson
eb3203ab92 Samsung DTS ARM64 changes for v4.19
Cleanup from old properties and code-style warnings.
 -----BEGIN PGP SIGNATURE-----
 
 iQItBAABCAAXBQJbR4N9EBxrcnprQGtlcm5lbC5vcmcACgkQwTdm5oaLg9c52g//
 R2TRjLuba33ICAG2HGz9oeoDcBxSDqzSkvUEB2vglby1ezXSNHnaKK6Ucw8HGZbB
 vSActvOMsRJr5B4lH2fuqGLyfw4G9XucLPMcLYxwGSSNqCCyaa3vYGD8hCwLIZxz
 8GsM1s8WsH7kcq/kBxiB+NOA6/dVWpUX5bR2MPGA0Ra4F+4QWSSVinoIpZvJHBIn
 jgZOAfmWnegLh+fafTvs3uN/T3A9oNbCbWYNrO/J0G4BeYbIM0XxB88dKZ0FdViN
 XpbZuMo8ZatAH/wlRjk2aaj8+0Q4mQZ208a9Gs831EqQyG5zr0gf+6OOHx304y5h
 BCURW4jc2O3m3AiLHEhNUyptiRmuSGScZNjVgeOnM6bLn8NPzprvq5Nh+Xhsx34r
 LqU4LaAGo1AIDx3WlVIBcdPDN6DsWfcUZCY3zM4PrwDGFvxZInMQ/hPl2/snqg7F
 nUkRkFEZO42BQqCqMNrZW1icnksxQ3UnBh5BemVoxl3vtnBT9pkgGJf20vczexDg
 mDSHUWFioydI/No6R4RB7tYXwcYD/49y9OGRQF6c+yhCeKLE+oBbcKZU5y4YqxzO
 rqqUqY5Mif9lVi2neV1cypqC6pSYODik/kMAHhipIQw2IpRdAUdYx2zHCC8R2OV4
 sAo4O+6/EeJIOLutM64HSfy/+23lfAtR+W7RKHeUb6g=
 =Wb+u
 -----END PGP SIGNATURE-----

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

Samsung DTS ARM64 changes for v4.19

Cleanup from old properties and code-style warnings.

* tag 'samsung-dt64-4.19' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: exynos: Remove leading 0x from unit addresses in Exynos5433
  arm64: dts: exynos: Remove no longer needed samsung thermal properties

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-14 14:23:15 -07:00
Olof Johansson
4167ff9fe9 arm64: tegra: Device tree changes for v4.19-rc1
These changes enable the GPIO controllers on Tegra194 SoCs, which in
 turn allows the SD card detection and ethernet controllers to be enabled
 as well. The Tegra194 device tree is also extended with the list of CPUs
 and a PSCI node to inform the kernel about the presence of PSCI capable
 firmware.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAltHc6kTHHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zoTPjD/wP8mhtCt99tLlDwieuksk3iV4PNiwm
 riBIrvy0g486UviGOr57tDczd/utPQgUDrkAZnewEXP2220jPBtI6OWwHKrkm8ZE
 ZEQdI9G5N2rTYQd9r/u/rwjTPNp6zHqARLAASDysoeoecuHIbU/qpcH/WFjB75fk
 25IkALhQ1zN9l4dRmrTjbwQGXkNl1F4QPBJ7ZaVuU5KNxZ8aquy9lU0N8QQXrTQ0
 1+SczZtEFJPpTmqeYq6Nc+ZZqGN/pFW75+ouhi13BkZn5zOXhKEHeMLD17CNCGIp
 KYikaqfOoj2BwwStJiBUfQw8PT5ovu0hzjUnIIAiHHganj1ubEplfG1hGrSIZVsZ
 wP4UZ10r61VxrdCl0hKj0283J7Y1ixFbPMpkJz8t+WYk1vTQA+V9Vi48ZhFTyg+L
 cZ4MFw1m9YtZS3s7jdt+cETSmmOKPl7Z5PGnlwEmDPdi5qaJE2M0mYFNSyR1YfuB
 vAYD5NK13KLBB7ohpGxdSHqgKZ7JDlD29NnAUgBsKCKZ/LbyXh6cLs89BKnWCeJv
 hsquCwQRDdqkpFDeT4UZFbL3ds2yY7jayXTOkG3RnyGKHf0W9aKfb/CysZIVGnI3
 yf+voR+oVeXohQANowbrmVLEHxDbKBrxFRJb132mfbUVxmSgLMUNjefrAMsMGsUU
 V341/MFBDSkFsg==
 =DE66
 -----END PGP SIGNATURE-----

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

arm64: tegra: Device tree changes for v4.19-rc1

These changes enable the GPIO controllers on Tegra194 SoCs, which in
turn allows the SD card detection and ethernet controllers to be enabled
as well. The Tegra194 device tree is also extended with the list of CPUs
and a PSCI node to inform the kernel about the presence of PSCI capable
firmware.

* tag 'tegra-for-4.19-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  arm64: tegra: Add CPU nodes to Tegra194 device tree
  arm64: tegra: Add ethernet controller on Tegra194
  arm64: tegra: Enable card detect for SD card on P2888
  arm64: tegra: Add GPIO controller on Tegra194

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-14 14:21:32 -07:00
Olof Johansson
f9228c3836 This pull request contains Broadcom ARM64-based SoCs Device Tree changes
for 4.19, please pull the following:
 
 - Scott does a bunch of updates to the Stingray DTS and DTS include
   files to better support the addition of new boards. Scott also adds
   the Stingray OTP Device Tree node
 
 - Pramod updates the Stingray clocks such that they match the latest
   revision of the ASIC and datasheets
 
 - Ray sets the Stingray initial watchdog timeout to 60 seconds to give
   sufficient time for the kernel to boot and then adds PAXC (internal
   PCIe) support to the Stingray base DTS files
 
 - Vladimir adds support for the Stingray smart NIC PS225 boards variants
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJbSLiKAAoJEIfQlpxEBwcEDkYQAKXLAq/k5hZa3vRc86Hd0bqS
 9tMBuqsL/o5rFP0gXgtjnZ8vOVpFtan8a16pldIlm13sS6bMUePTLF/ek7O+Ug+6
 ScbTG/oKeZ9ztWnttSy5o20c2E1U2IN/ZwRSV1QPOOLsw+fDhUrv+sH3uEF2nbqK
 DVfQCoI+XhVauPDMVIJtM+4xor1YYPG4LCBvMUr9uqQX12XENd55IjHH8GSiTyvF
 +mUXPQtudceCnuZlYJDTnEJv3a9QwT2Jut+IFf25MNjQl/C2OiJZDCBsLJ8Di164
 O5KnZ+NlZFjyxtgl5OTYDYw9n7AeitYyF8+fji7d2PqhD2/cRPOVEmpGpTXJva5R
 WSzfXmb4kGncAT48QlUfWZxjdLfC9SzZ0FO80rlAa1L5V8wEBYWzbEqder2/bLG3
 DuwgfFzVX6Chvdb6U+Mky/DjWBWDv1BkqYJEUpgSf3vmHzVSFxHuNw4vj1p6Dmom
 lCzqdP8EuYBEKObrOkBs4/f/Uy7bwC4l8WMLrHXtXJj753LT/YsByS5W0h15A/2e
 0q989PpcLoM5umijzi25DDJLLH1ZfjttsAydccDF500fSj+FhH6Q9YkVLClNOmyw
 6o4Jxx/ukcEAB85UiQ9kg8v1iylgONhau2eFGMdnsHHYY9jWEsca28pDIMtPB5zS
 GvPZn9pS85230UJVbsLO
 =wh6F
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-4.19/devicetree-arm64' of https://github.com/Broadcom/stblinux into next/dt

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

- Scott does a bunch of updates to the Stingray DTS and DTS include
  files to better support the addition of new boards. Scott also adds
  the Stingray OTP Device Tree node

- Pramod updates the Stingray clocks such that they match the latest
  revision of the ASIC and datasheets

- Ray sets the Stingray initial watchdog timeout to 60 seconds to give
  sufficient time for the kernel to boot and then adds PAXC (internal
  PCIe) support to the Stingray base DTS files

- Vladimir adds support for the Stingray smart NIC PS225 boards variants

* tag 'arm-soc/for-4.19/devicetree-arm64' of https://github.com/Broadcom/stblinux:
  arm64: dts: stingray: add bcm958802a802x dts
  arm64: dts: stingray: add PAXC support
  arm64: dts: set initial SR watchdog timeout to 60 seconds
  arm64: dts: Update Stingray clock DT nodes
  arm64: dts: stingray: Add OTP device node
  arm64: dts: stingray: move common board components to stingray-board-base

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-14 14:11:41 -07:00
Olof Johansson
9a90f4db4f This pull request contains Broadcom ARM64-based SoCs defconfig changes
for 4.19, please pull the following changes:
 
 - Stefan enables the Raspberry Pi voltage sensor driver (HWMON) in the
   arm64 defconfig file
 
 - Ray enables the ARM SP805 watchdog driver in the arm64 defconfig file
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJbSLfuAAoJEIfQlpxEBwcEC/sQANiHh/s0X0rcUTBB77cgZwC/
 45YyBRWwpJa3YGlEvcA1GOksprbEDJssdb82Ej3DUvVgTXJb1H8iQKdJBom7mrni
 9wTNQDUAHBhMyiH5G15fmJ8IwRk+ikz9Z+QG4HajLTDL7UtCcH10072EE15zMgxz
 x7OnFOjvT1iqNhbSAdh2xLSNe/vEkLlfmAv9TRnb84la/iNVVi26RmHejM0vKazc
 l6tsqZz1msaaE4/vt7NzbR4IY7mTTAwyz9wjGwvxp5suEaB8qNw9MTz/ouZ9Cshz
 lK1Ub74NUrN2zIHYnrbWkn2J1A1bZWu4T09Yap/6/D1kiAeYD5MU6x9wIu1HiMJu
 IleRcB5xV+pxUhInP0FMNu0PBW7gQPxhZ4VfH+Znsi6XI+vXAPx/j8EUtUOMOCGz
 9sIml/U0RoAdEebm9Guh7nQMXdWWRKErNYb7MA1E31O+8OhLL7Xg5Oytic89nak7
 FGOGbFedRCtArudT1qIL3S3ypcnCAT4hGBrLci0ib3IyCxiPjd0BpocL+4XwyVjz
 nZqnBecyMg+YlXv+spkc/LUOJR0muypwgrO+x3hY0VYm0UvEefQcJV+jX9aL6m2R
 i7Z++7BRZeLpV9zrRVPeIUsEzuO8ZdZYFRDyRsKYLobZ6/m7+CnDgP35pipOMfp/
 U2ebbZiDa6QtejZu1WFk
 =DLo+
 -----END PGP SIGNATURE-----

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

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

- Stefan enables the Raspberry Pi voltage sensor driver (HWMON) in the
  arm64 defconfig file

- Ray enables the ARM SP805 watchdog driver in the arm64 defconfig file

* tag 'arm-soc/for-4.19/defconfig-arm64' of https://github.com/Broadcom/stblinux:
  arm64: defconfig: add CONFIG_ARM_SP805_WATCHDOG
  arm64: defconfig: Enable RPi voltage sensor

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-14 14:08:17 -07:00
Olof Johansson
5665ab3ac5 SPDX conversion for existing devicetree files. New board is Gru-Bob
the Chromebook Flip C101PA which also got some stuff moved around
 to make room for Scarlet once its display pipeline makes some more
 advances.
 Also included are some general sound improvements for rk3399
 including enabling hdmi-sound on the sapphire board and some
 misc fixes like missing cooling device properties and wrong
 clock-names for the uart1 on rk3328.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAltGDh0QHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgYhLB/9X2ICbvSw51i1N/4nmuik4t8bXG9l68NtG
 E9sGvNI0/kJB8pZAodQfQFCih0+kw++mDQoRimVsIIicbc6T02slKtmF8ezRuLRB
 sDb+HTwFcJ6c4WtdNynD7YkSqonMEDJ1RZgCRRwXWjmU17kXUuYLC43FXri6EBID
 jqv38rehXt+6qNnIBHXAX52h7jKQWK2rocg8k19J+NOyESQBYB4wJ/HOAqf9nsiZ
 eh+xSSg1gmQXuBgbbFKoNu328PGGiEbQq/W7TBMHUu8kjWUKinpu+Hqjj3K8daDm
 sE6WR+Gv7aQ7J6xRkabtGo/WqiStcduk12yhuKy44mzUYlcZ3HVB
 =o2KT
 -----END PGP SIGNATURE-----

Merge tag 'v4.19-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt

SPDX conversion for existing devicetree files. New board is Gru-Bob
the Chromebook Flip C101PA which also got some stuff moved around
to make room for Scarlet once its display pipeline makes some more
advances.
Also included are some general sound improvements for rk3399
including enabling hdmi-sound on the sapphire board and some
misc fixes like missing cooling device properties and wrong
clock-names for the uart1 on rk3328.

* tag 'v4.19-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: dts: rockchip: corrected uart1 clock-names for rk3328
  arm64: dts: rockchip: add Google Bob
  arm64: dts: rockchip: move core edp from rk3399-kevin to shared chromebook
  arm64: dts: rockchip: move Chromebook-specific Gru-parts to a separate file
  arm64: dts: rockchip: add phandles to some nodes on rk3399-gru
  arm64: dts: rockchip: add some common pin-settings to rk3399
  arm64: dts: rockchip: generalize rk3399 #sound-dai-cells
  arm64: dts: rockchip: Add missing cooling device properties for CPUs
  arm64: dts: rockchip: enable hdmi sound on rk3399-sapphire
  arm64: dts: rockchip: connect hdmi sound in rk3399
  arm64: dts: rockchip: use SPDX-License-Identifier

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-07-14 14:06:42 -07:00
Vladimir Olovyannikov
e28e681630 arm64: dts: stingray: add bcm958802a802x dts
Add bcm958802a802x dts to be used on all Stingray smart NIC PS225 board
variants

Signed-off-by: Vladimir Olovyannikov <vladimir.olovyannikov@broadcom.com>
Signed-off-by: Pramod Kumar <pramod.kumar@broadcom.com>
Signed-off-by: Ray Jui <ray.jui@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2018-07-13 07:24:26 -07:00
Ray Jui
133de204e4 arm64: dts: stingray: add PAXC support
Add PAXC support to Broadcom Stingray SoC

Signed-off-by: Ray Jui <ray.jui@broadcom.com>
Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2018-07-13 07:24:19 -07:00
Antoine Tenart
c462f6c77e arm64: dts: marvell: armada-37xx: update the crypto engine compatible
New compatibles are now supported by the Inside Secure SafeXcel driver.
As they are more specific than the old ones, they should be used
whenever possible. This patch updates the Marvell Armada 37xx device
tree accordingly.

Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2018-07-13 13:42:03 +02:00
Antoine Tenart
9598918b59 arm64: dts: marvell: armada-cp110: update the crypto engine compatible
New compatibles are now supported by the Inside Secure SafeXcel driver.
As they are more specific than the old ones, they should be used
whenever possible. This patch updates the Marvell cp110 device tree
accordingly.

Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2018-07-13 13:41:56 +02:00
Will Deacon
11527b3e0b arm64: Drop asmlinkage qualifier from syscall_trace_{enter,exit}
syscall_trace_{enter,exit} are only called from C code, so drop the
asmlinkage qualifier from their definitions.

Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 15:14:23 +01:00
Mark Rutland
4378a7d4be arm64: implement syscall wrappers
To minimize the risk of userspace-controlled values being used under
speculation, this patch adds pt_regs based syscall wrappers for arm64,
which pass the minimum set of required userspace values to syscall
implementations. For each syscall, a wrapper which takes a pt_regs
argument is automatically generated, and this extracts the arguments
before calling the "real" syscall implementation.

Each syscall has three functions generated:

* __do_<compat_>sys_<name> is the "real" syscall implementation, with
  the expected prototype.

* __se_<compat_>sys_<name> is the sign-extension/narrowing wrapper,
  inherited from common code. This takes a series of long parameters,
  casting each to the requisite types required by the "real" syscall
  implementation in __do_<compat_>sys_<name>.

  This wrapper *may* not be necessary on arm64 given the AAPCS rules on
  unused register bits, but it seemed safer to keep the wrapper for now.

* __arm64_<compat_>_sys_<name> takes a struct pt_regs pointer, and
  extracts *only* the relevant register values, passing these on to the
  __se_<compat_>sys_<name> wrapper.

The syscall invocation code is updated to handle the calling convention
required by __arm64_<compat_>_sys_<name>, and passes a single struct
pt_regs pointer.

The compiler can fold the syscall implementation and its wrappers, such
that the overhead of this approach is minimized.

Note that we play games with sys_ni_syscall(). It can't be defined with
SYSCALL_DEFINE0() because we must avoid the possibility of error
injection. Additionally, there are a couple of locations where we need
to call it from C code, and we don't (currently) have a
ksys_ni_syscall().  While it has no wrapper, passing in a redundant
pt_regs pointer is benign per the AAPCS.

When ARCH_HAS_SYSCALL_WRAPPER is selected, no prototype is defines for
sys_ni_syscall(). Since we need to treat it differently for in-kernel
calls and the syscall tables, the prototype is defined as-required.

The wrappers are largely the same as their x86 counterparts, but
simplified as we don't have a variety of compat calling conventions that
require separate stubs. Unlike x86, we have some zero-argument compat
syscalls, and must define COMPAT_SYSCALL_DEFINE0() to ensure that these
are also given an __arm64_compat_sys_ prefix.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:48 +01:00
Mark Rutland
55f849265a arm64: convert compat wrappers to C
In preparation for converting to pt_regs syscall wrappers, convert our
existing compat wrappers to C. This will allow the pt_regs wrappers to
be automatically generated, and will allow for the compat register
manipulation to be folded in with the pt_regs accesses.

To avoid confusion with the upcoming pt_regs wrappers and existing
compat wrappers provided by core code, the C wrappers are renamed to
compat_sys_aarch32_<syscall>.

With the assembly wrappers gone, we can get rid of entry32.S and the
associated boilerplate.

Note that these must call the ksys_* syscall entry points, as the usual
sys_* entry points will be modified to take a single pt_regs pointer
argument.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:48 +01:00
Mark Rutland
d3516c9073 arm64: use SYSCALL_DEFINE6() for mmap
We don't currently annotate our mmap implementation as a syscall, as we
need to do to use pt_regs syscall wrappers.

Let's mark it as a real syscall.

There should be no functional change as a result of this patch.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:48 +01:00
Mark Rutland
bf4ce5cc23 arm64: use {COMPAT,}SYSCALL_DEFINE0 for sigreturn
We don't currently annotate our various sigreturn functions as syscalls,
as we need to do to use pt_regs syscall wrappers.

Let's mark them as real syscalls.

For compat_sys_sigreturn and compat_sys_rt_sigreturn, this changes the
return type from int to long, matching the prototypes in sys32.c.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:48 +01:00
Mark Rutland
3f7deccb03 arm64: remove in-kernel call to sys_personality()
With pt_regs syscall wrappers, the calling convention for
sys_personality() will change. Use ksys_personality(), which is
functionally equivalent.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:48 +01:00
Mark Rutland
80d63bc39f arm64: drop alignment from syscall tables
Our syscall tables are aligned to 4096 bytes, which allowed their
addresses to be generated with a single adrp in entry.S. This has the
unfortunate property of wasting space in .rodata for the necessary
padding.

Now that the address is generated by C code, we can rely on the compiler
to do the right thing, and drop the alignemnt.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:48 +01:00
Mark Rutland
baaa7237fe arm64: zero GPRs upon entry from EL0
We can zero GPRs x0 - x29 upon entry from EL0 to make it harder for
userspace to control values consumed by speculative gadgets.

We don't blat x30, since this is stashed much later, and we'll blat it
before invoking C code.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:47 +01:00
Mark Rutland
99ed3ed08d arm64: don't reload GPRs after apply_ssbd
Now that all of the syscall logic works on the saved pt_regs, apply_ssbd
can safely corrupt x0-x3 in the entry paths, and we no longer need to
restore them. So let's remove the logic doing so.

With that logic gone, we can fold the branch target into the macro, so
that callers need not deal with this. GAS provides \@, which provides a
unique value per macro invocation, which we can use to create a unique
label.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:47 +01:00
Mark Rutland
d9be03256d arm64: don't restore GPRs when context tracking
Now that syscalls are invoked with pt_regs, we no longer need to ensure
that the argument regsiters are live in the entry assembly, and it's
fine to not restore them after context_tracking_user_exit() has
corrupted them.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:47 +01:00
Mark Rutland
3b7142752e arm64: convert native/compat syscall entry to C
Now that the syscall invocation logic is in C, we can migrate the rest
of the syscall entry logic over, so that the entry assembly needn't look
at the register values at all.

The SVE reset across syscall logic now unconditionally clears TIF_SVE,
but sve_user_disable() will only write back to CPACR_EL1 when SVE is
actually enabled.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Dave Martin <dave.martin@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:47 +01:00
Mark Rutland
f37099b699 arm64: convert syscall trace logic to C
Currently syscall tracing is a tricky assembly state machine, which can
be rather difficult to follow, and even harder to modify. Before we
start fiddling with it for pt_regs syscalls, let's convert it to C.

This is not intended to have any functional change.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:49:47 +01:00
Mark Rutland
4141c857fd arm64: convert raw syscall invocation to C
As a first step towards invoking syscalls with a pt_regs argument,
convert the raw syscall invocation logic to C. We end up with a bit more
register shuffling, but the unified invocation logic means we can unify
the tracing paths, too.

Previously, assembly had to open-code calls to ni_sys() when the system
call number was out-of-bounds for the relevant syscall table. This case
is now handled by invoke_syscall(), and the assembly no longer need to
handle this case explicitly. This allows the tracing paths to be
simplified and unified, as we no longer need the __ni_sys_trace path and
the __sys_trace_return label.

This only converts the invocation of the syscall. The rest of the
syscall triage and tracing is left in assembly for now, and will be
converted in subsequent patches.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:43:09 +01:00
Mark Rutland
27d83e68f3 arm64: introduce syscall_fn_t
In preparation for invoking arbitrary syscalls from C code, let's define
a type for an arbitrary syscall, matching the parameter passing rules of
the AAPCS.

There should be no functional change as a result of this patch.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:40:39 +01:00
Mark Rutland
3085e1645e arm64: remove sigreturn wrappers
The arm64 sigreturn* syscall handlers are non-standard. Rather than
taking a number of user parameters in registers as per the AAPCS,
they expect the pt_regs as their sole argument.

To make this work, we override the syscall definitions to invoke
wrappers written in assembly, which mov the SP into x0, and branch to
their respective C functions.

On other architectures (such as x86), the sigreturn* functions take no
argument and instead use current_pt_regs() to acquire the user
registers. This requires less boilerplate code, and allows for other
features such as interposing C code in this path.

This patch takes the same approach for arm64.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Tentatively-reviewed-by: Dave Martin <dave.martin@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:40:39 +01:00
Mark Rutland
f9209e2629 arm64: move sve_user_{enable,disable} to <asm/fpsimd.h>
In subsequent patches, we'll want to make use of sve_user_enable() and
sve_user_disable() outside of kernel/fpsimd.c. Let's move these to
<asm/fpsimd.h> where we can make use of them.

To avoid ifdeffery in sequences like:

if (system_supports_sve() && some_condition)
	sve_user_disable();

... empty stubs are provided when support for SVE is not enabled. Note
that system_supports_sve() contains as IS_ENABLED(CONFIG_ARM64_SVE), so
the sve_user_disable() call should be optimized away entirely when
CONFIG_ARM64_SVE is not selected.

To ensure that this is the case, the stub definitions contain a
BUILD_BUG(), as we do for other stubs for which calls should always be
optimized away when the relevant config option is not selected.

At the same time, the include list of <asm/fpsimd.h> is sorted while
adding <asm/sysreg.h>.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Dave Martin <dave.martin@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:40:39 +01:00
Mark Rutland
8d370933fa arm64: kill change_cpacr()
Now that we have sysreg_clear_set(), we can use this instead of
change_cpacr().

Note that the order of the set and clear arguments differs between
change_cpacr() and sysreg_clear_set(), so these are flipped as part of
the conversion. Also, sve_user_enable() redundantly clears
CPACR_EL1_ZEN_EL0EN before setting it; this is removed for clarity.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Dave Martin <dave.martin@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:40:39 +01:00
Mark Rutland
25be597ada arm64: kill config_sctlr_el1()
Now that we have sysreg_clear_set(), we can consistently use this
instead of config_sctlr_el1().

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Dave Martin <dave.martin@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:40:38 +01:00
Mark Rutland
1c312e84c2 arm64: move SCTLR_EL{1,2} assertions to <asm/sysreg.h>
Currently we assert that the SCTLR_EL{1,2}_{SET,CLEAR} bits are
self-consistent with an assertion in config_sctlr_el1(). This is a bit
unusual, since config_sctlr_el1() doesn't make use of these definitions,
and is far away from the definitions themselves.

We can use the CPP #error directive to have equivalent assertions in
<asm/sysreg.h>, next to the definitions of the set/clear bits, which is
a bit clearer and simpler.

At the same time, lets fill in the upper 32 bits for both registers in
their respective RES0 definitions. This could be a little nicer with
GENMASK_ULL(63, 32), but this currently lives in <linux/bitops.h>, which
cannot safely be included from assembly, as <asm/sysreg.h> can.

Note the when the preprocessor evaluates an expression for an #if
directive, all signed or unsigned values are treated as intmax_t or
uintmax_t respectively. To avoid ambiguity, we define explicitly define
the mask of all 64 bits.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Dave Martin <dave.martin@arm.com>
Cc: James Morse <james.morse@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:40:38 +01:00
Mark Rutland
3eb6f1f9e6 arm64: consistently use unsigned long for thread flags
In do_notify_resume, we manipulate thread_flags as a 32-bit unsigned
int, whereas thread_info::flags is a 64-bit unsigned long, and elsewhere
(e.g. in the entry assembly) we manipulate the flags as a 64-bit
quantity.

For consistency, and to avoid problems if we end up with more than 32
flags, let's make do_notify_resume take the flags as a 64-bit unsigned
long.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Dave Martin <dave.martin@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 14:40:38 +01:00
Will Deacon
e87a4a92fb Revert "arm64: fix infinite stacktrace"
This reverts commit 7e7df71fd5.

When unwinding out of the IRQ stack and onto the interrupted EL1 stack,
we cannot rely on the frame pointer being strictly increasing, as this
could terminate the backtrace early depending on how the stacks have
been allocated.

Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-12 11:37:40 +01:00
Ezequiel Garcia
874846f1fc arm64: dts: rockchip: add 96boards RK3399 Ficus board
The RK3399 Ficus board is an Enterprise Edition board
manufactured by Vamrs Ltd., based on the Rockchip RK3399 SoC.

The board exposes a bunch of nice peripherals, including
SATA, HDMI, MIPI CSI, Ethernet, WiFi, and PCIe.

Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2018-07-12 11:23:58 +02:00
Yandong Zhao
2fd8eb4ad8 arm64: neon: Fix function may_use_simd() return error status
It does not matter if the caller of may_use_simd() migrates to
another cpu after the call, but it is still important that the
kernel_neon_busy percpu instance that is read matches the cpu the
task is running on at the time of the read.

This means that raw_cpu_read() is not sufficient.  kernel_neon_busy
may appear true if the caller migrates during the execution of
raw_cpu_read() and the next task to be scheduled in on the initial
cpu calls kernel_neon_begin().

This patch replaces raw_cpu_read() with this_cpu_read() to protect
against this race.

Cc: <stable@vger.kernel.org>
Fixes: cb84d11e16 ("arm64: neon: Remove support for nested or hardirq kernel-mode NEON")
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Dave Martin <Dave.Martin@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Yandong Zhao <yandong77520@gmail.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-11 17:02:02 +01:00
Yoshihiro Shimoda
0b65a9ad25 arm64: dts: renesas: Unify the labels for RWDT
The labels for RWDT device node were named as 2 types now:

 - wdt0: r8a7795, r8a7796, r8a77965.
 - rwdt: r8a77970, r8a77990, r8a77995.

To be made consistent, this patch unifis the labels as the hardware
name "rwdt".

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2018-07-11 15:18:31 +02:00
Will Deacon
409d5db498 arm64: rseq: Implement backend rseq calls and select HAVE_RSEQ
Implement calls to rseq_signal_deliver, rseq_handle_notify_resume
and rseq_syscall so that we can select HAVE_RSEQ on arm64.

Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-11 13:29:34 +01:00
Arnd Bergmann
54501ac150 arm64: make flatmem depend on !NUMA
Building without NUMA but with FLATMEM results in a link error
because mem_map[] is not available:

aarch64-linux-ld -EB -maarch64elfb --no-undefined -X -pie -shared -Bsymbolic --no-apply-dynamic-relocs --build-id -o .tmp_vmlinux1 -T ./arch/arm64/kernel/vmlinux.lds --whole-archive built-in.a --no-whole-archive --start-group arch/arm64/lib/lib.a lib/lib.a --end-group
init/do_mounts.o: In function `mount_block_root':
do_mounts.c:(.init.text+0x1e8): undefined reference to `mem_map'
arch/arm64/kernel/vdso.o: In function `vdso_init':
vdso.c:(.init.text+0xb4): undefined reference to `mem_map'

This uses the same trick as the other architectures, making flatmem
depend on !NUMA to avoid the broken configuration.

Fixes: e7d4bac428 ("arm64: add ARM64-specific support for flatmem")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-10 18:21:34 +01:00
Suzuki K Poulose
c132079053 arm64: perf: Add support for chaining event counters
Add support for 64bit event by using chained event counters
and 64bit cycle counters.

PMUv3 allows chaining a pair of adjacent 32-bit counters, effectively
forming a 64-bit counter. The low/even counter is programmed to count
the event of interest, and the high/odd counter is programmed to count
the CHAIN event, taken when the low/even counter overflows.

For CPU cycles, when 64bit mode is requested, the cycle counter
is used in 64bit mode. If the cycle counter is not available,
falls back to chaining.

Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-10 18:19:30 +01:00
Suzuki K Poulose
3cce50dfec arm64: perf: Disable PMU while processing counter overflows
The arm64 PMU updates the event counters and reprograms the
counters in the overflow IRQ handler without disabling the
PMU. This could potentially cause skews in for group counters,
where the overflowed counters may potentially loose some event
counts, while they are reprogrammed. To prevent this, disable
the PMU while we process the counter overflows and enable it
right back when we are done.

This patch also moves the PMU stop/start routines to avoid a
forward declaration.

Suggested-by: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-10 18:19:02 +01:00
Suzuki K Poulose
0c55d19c16 arm64: perf: Clean up armv8pmu_select_counter
armv8pmu_select_counter always returns the passed idx. So
let us make that void and get rid of the pointless checks.

Suggested-by: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-10 18:19:02 +01:00
Suzuki K Poulose
7dfc8db1d1 arm_pmu: Tidy up clear_event_idx call backs
The armpmu uses get_event_idx callback to allocate an event
counter for a given event, which marks the selected counter
as "used". Now, when we delete the counter, the arm_pmu goes
ahead and clears the "used" bit and then invokes the "clear_event_idx"
call back, which kind of splits the job between the core code
and the backend. To keep things tidy, mandate the implementation
of clear_event_idx() and add it for exisiting backends.
This will be useful for adding the chained event support, where
we leave the event idx maintenance to the backend.

Also, when an event is removed from the PMU, reset the hw.idx
to indicate that a counter is not allocated for this event,
to help the backends do better checks. This will be also used
for the chain counter support.

Cc: Will Deacon <will.deacon@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-10 18:19:02 +01:00
Suzuki K Poulose
3a95200d3f arm_pmu: Change API to support 64bit counter values
Convert the {read/write}_counter APIs to handle 64bit values
to enable supporting chained event counters. The backends still
use 32bit values and we pass them 32bit values only. So in effect
there are no functional changes.

Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-10 18:19:02 +01:00
Suzuki K Poulose
8d3e994241 arm_pmu: Clean up maximum period handling
Each PMU defines their max_period of the counter as the maximum
value that can be counted. Since all the PMU backends support
32bit counters by default, let us remove the redundant field.

No functional changes.

Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-10 18:19:02 +01:00
Laura Abbott
96f95a17c1 Revert "arm64: Use aarch64elf and aarch64elfb emulation mode variants"
This reverts commit 38fc424867.

Distributions such as Fedora and Debian do not package the ELF linker
scripts with their toolchains, resulting in kernel build failures such
as:

  |   CHK     include/generated/compile.h
  |   LD [M]  arch/arm64/crypto/sha512-ce.o
  | aarch64-linux-gnu-ld: cannot open linker script file ldscripts/aarch64elf.xr: No such file or directory
  | make[1]: *** [scripts/Makefile.build:530: arch/arm64/crypto/sha512-ce.o] Error 1
  | make: *** [Makefile:1029: arch/arm64/crypto] Error 2

Revert back to the linux targets for now, adding a comment to the Makefile
so we don't accidentally break this in the future.

Cc: Paul Kocialkowski <contact@paulk.fr>
Cc: <stable@vger.kernel.org>
Fixes: 38fc424867 ("arm64: Use aarch64elf and aarch64elfb emulation mode variants")
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-07-10 10:16:54 +01:00
Ray Jui
163efb68d1 arm64: defconfig: add CONFIG_ARM_SP805_WATCHDOG
Enable the SP805 watchdog timer

Signed-off-by: Ray Jui <ray.jui@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2018-07-09 10:40:23 -07:00
Ray Jui
71e962a0c2 arm64: dts: set initial SR watchdog timeout to 60 seconds
Set initial Stingray watchdog timeout to 60 seconds

By the time when the userspace watchdog daemon is ready and taking control
over, the watchdog timeout will then be reset to what's configured in the
daemon.

Signed-off-by: Ray Jui <ray.jui@broadcom.com>
Reviewed-by: Vladimir Olovyannikov <vladimir.olovyannikov@broadcom.com>
Reviewed-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2018-07-09 10:39:30 -07:00