Commit Graph

56792 Commits

Author SHA1 Message Date
Arnd Bergmann
2ed5c2e3f2 SoC fixes for omaps for v5.0-rc cycle
This series contains two SoC regression fixes and one uninitialized
 variable fix:
 
 - Fix inverted nirq pin handling for omap5 that started producing
   warnings with earlier GIC direction checks and took a while to
   understand and confirm. Basically there are two sys_nirq pins
   that are bypassing peripheral modules and inverted automatically
   by the SoC and need to be handled with a custom irq_set_type()
 
 - Recent ti-sysc changes caused a regression to the pwm-omap-dmtimer
   code where the device tree handling code for timer source clock
   gets confused. It looks like we can remove that code eventually,
   but for now we just drop a bogus pm_runtime_irq_safe() for the
   timers with the related quirks caused by pm_runtime_irq_safe(),
   and have the standard assigned-clocks and assigned-clock-parents
   deal with setting the source clock
 
 - Fix potentially uninitialized value for display init code if
   regmap_read() fails
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAlxR8TERHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXNhNQ/+JfJVPT4SyF0KQz8BJYYF2bVvJyFv0kBR
 XrGIi6KTdoiN9Bm3Trt1rM+YJpS2Ii2YAc2frGVE4qMHw6ZUZA1uDxDl6J6C04H+
 Eb7XrYnt0hqzuLfmx5ubX2eem92AgszWou85v8flwIk7dUJWtNkhUFTZtoDujLSM
 ZnBWcG+9MuSWGpcigu1O9Qt/ePwQerxAksE46fKlbjZrk03j/Eh3A3YCTInV7sgR
 Dl+jZhfva92GupcBzMsjWYaqLzdBG7Cq4pGfbhyTHdaapt26nK/osuNPh+zFgWZe
 ppKbyPcQQ9ph9qJWd6A/BN9uN3zQfBwwtjVWaGX0LqahsEcIQyjj6QSKMjbYdNOK
 fdXuL3Du6zMeQlez1mjS9xBU9s8B1N60F+vCVanDZW8ynkPZp7gBnG5vxC9ZEfR3
 ZVLzhWMwejmidnPi9Clm/OHiU7ExAKwS6ql7qnhZS/3l8sdzm6Rs9ZQ1UO7scdfc
 8MrB6wKNYQHPeoDLxmOa+DvSn64BPEboZtm2IoP+fvOvoJoffcM7FSxWTkkElrLO
 6jgtRRm6Raw4vJvWmSJVIH8lpzthnOmdhtf+Ni9ZKysAPmj2N2uROdcjlqgOBvCf
 xagW4iSUXMLNa2W1IgcTOxeAQs+ASVm3AvG02kx1ImMlnWrLJQO2yOW7DYdd6sCJ
 x23XUpsiFeA=
 =5oVS
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v5.0/fixes-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes

SoC fixes for omaps for v5.0-rc cycle

This series contains two SoC regression fixes and one uninitialized
variable fix:

- Fix inverted nirq pin handling for omap5 that started producing
  warnings with earlier GIC direction checks and took a while to
  understand and confirm. Basically there are two sys_nirq pins
  that are bypassing peripheral modules and inverted automatically
  by the SoC and need to be handled with a custom irq_set_type()

- Recent ti-sysc changes caused a regression to the pwm-omap-dmtimer
  code where the device tree handling code for timer source clock
  gets confused. It looks like we can remove that code eventually,
  but for now we just drop a bogus pm_runtime_irq_safe() for the
  timers with the related quirks caused by pm_runtime_irq_safe(),
  and have the standard assigned-clocks and assigned-clock-parents
  deal with setting the source clock

- Fix potentially uninitialized value for display init code if
  regmap_read() fails

* tag 'omap-for-v5.0/fixes-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized
  ARM: dts: Configure clock parent for pwm vibra
  bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe()
  ARM: OMAP5+: Fix inverted nirq pin interrupts with irq_set_type
  clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
2019-02-15 13:38:20 +01:00
Wolfram Sang
bceb26bffe at24 updates for v5.1
- finally remove legacy platform data as all users have been switched
   to using device properties and nvmem notifier chain
 - add support for the 'num-addresses' property
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEFp3rbAvDxGAT0sefEacuoBRx13IFAlxlKUgACgkQEacuoBRx
 13KYNhAAlAIEWvp41luNy5MeAhMdLue4ruWNqkUrI/VmoxAY6DFPtwiZirjRF9HT
 1XK+T+CRiHGgjiMV2YvjEh1XLZYmnuUQnTVbJ50O9UDizewcwHB4Vqi0Llyz+kaI
 RPzO+iyt61UYGbLmsE+UemOiefWnvq3BlPMHY4X3RjhOyDie/N8D+t+zePIhqDmZ
 5iEHAkkVavznyQ60x1KZMojU6bsG6zbhoLdFcSty5oDpQ1vtsTRMvnuXWwzqnama
 czTLbza9XPXOoBdB7P2TAcBQII36PptCLQdmcqY9knBvRHGM6L8JKMha0huNS0u4
 OogHod7M9jPJbMPnsh21S4JpR5z4R1UUeM95V8a7FRTjN0EC2jDFEAsQj1bbAMTn
 Zj0oYUq0lljriyuPisQ5hPkUIDV+XztOYgt/acPbo3UwtIjGe9gsCKJYVfrXM8EK
 NfIQsAXQb/r12f49b32IVgCxEIsk6jFvsRDAsWIUlreHf8wMWOD5fir7r1CjRqac
 ngQC1y9At0TgQwUN+Qzmch0oeAuOmm/yfZsroeRK3NQmKsgakRO57FfvSD0TDK6Y
 5QELKonwEazgt+oSzbFlUdDyVuMIQ39pYGXgs0HJl07lPK2oyg8od0JP44Vw4SoA
 bxUrHUG/VL238DmkPMa+UZFpEnj7v+Lb7cgcrArTg+y3M7wpke4=
 =Jbyk
 -----END PGP SIGNATURE-----

Merge tag 'at24-5.1-updates-for-wolfram' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-5.1

at24 updates for v5.1

- finally remove legacy platform data as all users have been switched
  to using device properties and nvmem notifier chain
- add support for the 'num-addresses' property
2019-02-14 18:03:21 +01:00
Wolfram Sang
338618ad2a Merge branch 'i2c/for-current' into i2c/for-5.1 2019-02-14 17:46:56 +01:00
Bartosz Golaszewski
90733530a1 Merge branch 'v5.1/eeprom-for-bartosz' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into at24/for-next 2019-02-14 09:32:05 +01:00
Paolo Bonzini
08e16754ca KVM/ARM fixes for 5.0:
- Fix the way we reset vcpus, plugging the race that could happen on VHE
 - Fix potentially inconsistent group setting for private interrupts
 - Don't generate UNDEF when LORegion feature is present
 - Relax the restriction on using stage2 PUD huge mapping
 - Turn some spinlocks into raw_spinlocks to help RT compliance
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCgAzFiEEn9UcU+C1Yxj9lZw9I9DQutE9ekMFAlxcHeIVHG1hcmMuenlu
 Z2llckBhcm0uY29tAAoJECPQ0LrRPXpD4jUP/inpLftQam7i+BNeZmaHbTEDAjOb
 6i4AXnjkZfbC5fu6Kf0GXNAEvjsbQB2OuAM3G49c6eSjPz/NeY2Y1XBJkiNblmcu
 toOWXHABRmUrFa6Lo3z6SE7MYBe4oZpBiX1By3qcWSdRDYM4sIz/9TdIFEIgtjgX
 TrlsmPwjOsGoJs/MwRPoM74ZR6oEF8D56HwKNOQHr8jGVgMdKw6cWUood4oljNyx
 ncxl63M4fuNfhc7qttp3WSyHjBK5huZvTtyoUfgfq5aPFkRkRNgTO+JOy+VHbQfy
 E99l+YBKHgWf9ZE8hioSzvqqTJisO0EMeS6sGW2NvtStEIeYwEzwV6qnjeFhy/lk
 yn0WqFlcqFsS6ip3AU5RzbyzxGnaeammTHEoyvOxHGaQZ2Tvw/VaQxdJLeAKe4z1
 I6h8JuGj8fVtVgd45mOQTrTkGER1gSkmwQcAU7kJU6nk/fVL0lvYijBD0JUeXUcx
 YR457UjgmNGUfFD2vtSfrKcff9mdZjEUvFTYTquy9G5y+nfIo8N5+EtQu3bbukDR
 PHhH6Z/9TpjN1mk6uiUB+lDDgq5lYj0Q9sKxGRngAZpm4UasyTmyXNf9dS2sehzO
 IiAuCqSlXKTg8h4exFqqigEuGzWirGuj5+NtJwhY5dmftJH9c8v+Ik1+XO5UzlN/
 rByichaaiR4ILgVX
 =PNZ5
 -----END PGP SIGNATURE-----

Merge tag 'kvm-arm-fixes-for-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master

KVM/ARM fixes for 5.0:

- Fix the way we reset vcpus, plugging the race that could happen on VHE
- Fix potentially inconsistent group setting for private interrupts
- Don't generate UNDEF when LORegion feature is present
- Relax the restriction on using stage2 PUD huge mapping
- Turn some spinlocks into raw_spinlocks to help RT compliance
2019-02-13 19:39:24 +01:00
Christoph Hellwig
34e04eedd1 of: select OF_RESERVED_MEM automatically
The OF_RESERVED_MEM can be used if we have either CMA or the generic
declare coherent code built and we support the early flattened DT.

So don't bother making it a user visible options that is selected
by most configs that fit the above category, but just select it when
the requirements are met.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Rob Herring <robh@kernel.org>
2019-02-13 19:19:47 +01:00
Christoph Hellwig
dc2acded38 dma-mapping: add a kconfig symbol for arch_teardown_dma_ops availability
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Catalin Marinas <catalin.marinas@arm.com> # arm64
2019-02-13 19:12:50 +01:00
Christoph Hellwig
347cb6af87 dma-mapping: add a kconfig symbol for arch_setup_dma_ops availability
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Paul Burton <paul.burton@mips.com> # MIPS
Acked-by: Catalin Marinas <catalin.marinas@arm.com> # arm64
2019-02-13 19:12:33 +01:00
Linus Walleij
da4f07ddc1 ARM: dts: qcom-apq8060: Fix up interrupt parents
Before we fixed up the interrupt hierarchy for the SSBI
GPIO controller, we had to use the PM8058 directly to pick
interrupts. After making the interrupt controller work properly,
we can reference the real interrupt parent.

Signed-off-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2019-02-13 09:34:28 +01:00
Brian Masney
582648f5ef arm: dts: qcom: mdm9615: add interrupt controller properties
Add interrupt controller properties now that ssbi-gpio is a proper
hierarchical IRQ chip. The interrupts property is no longer needed so
remove it.

Note that the IRQs started at 24 instead of 192 like all of the other
PMICs. This is the same IRQs as the MPP for this board. qcom-pm8xxx.c
doesn't set the shared IRQs so this is highly likely to be a copy and
paste error.

Signed-off-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2019-02-13 09:33:55 +01:00
Brian Masney
a796fab2c6 arm: dts: qcom: msm8660: add interrupt controller properties
Add interrupt controller properties now that ssbi-gpio is a proper
hierarchical IRQ chip. The interrupts property is no longer needed so
remove it.

This change was tested on an APQ8060 DragonBoard.

Signed-off-by: Brian Masney <masneyb@onstation.org>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2019-02-13 09:33:12 +01:00
Brian Masney
e2f6c88812 arm: dts: qcom: apq8064: add interrupt controller properties
Add interrupt controller properties now that ssbi-gpio is a proper
hierarchical IRQ chip. The interrupts property is no longer needed so
remove it.

This change was not tested on any hardware but the same change was
tested on an APQ8060 DragonBoard with no issues.

Signed-off-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2019-02-13 09:32:44 +01:00
Trent Piepho
27f7717e23 ARM: dts: imx7d: Add node for PCIe PHY
This adds the PHY as a new node. The PCI-e controller node gains a
phandle property that points to it.

There isn't yet any code in the kernel that uses this device's
registers, but it will be added for a PCIe PLL erratum workaround.

Signed-off-by: Trent Piepho <tpiepho@impinj.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
2019-02-12 19:17:34 +00:00
Andreas Kemnade
947b780259 ARM: dts: omap3-gta04: declare backlight in lcd node
The lcd display of the gta04 has a backlight but the backlight
was not referenced in the lcd node, so screen blanking did
not turn off the backlight. Fix that.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Tested-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-02-12 10:52:25 -08:00
Martyn Welch
361df77976 ARM: dts: am335x: Add support for Bosch Guardian
The Bosch Guardian is a TI am335x based device.

It's hardware specifications are as follows:

 * 256 MB DDR3 memory
 * 512 MB NAND Flash
 * USB OTG
 * RS232
 * MicroSD external storage
 * LCD Display interface

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
[tony@atomide.com: updated to use #include]
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-02-12 10:44:54 -08:00
Robin Murphy
fc67e6f120 ARM: 8835/1: dma-mapping: Clear DMA ops on teardown
Installing the appropriate non-IOMMU DMA ops in arm_iommu_detch_device()
serves the case where IOMMU-aware drivers choose to control their own
mapping but still make DMA API calls, however it also affects the case
when the arch code itself tears down the mapping upon driver unbinding,
where the ops now get left in place and can inhibit arch_setup_dma_ops()
on subsequent re-probe attempts.

Fix the latter case by making sure that arch_teardown_dma_ops() cleans
up whenever the ops were automatically installed by its counterpart.

Reported-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Fixes: 1874619a7d "ARM: dma-mapping: Set proper DMA ops in arm_iommu_detach_device()"
Tested-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Tested-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-12 15:20:59 +00:00
Mathieu Desnoyers
0ac569bf6a ARM: 8834/1: Fix: kprobes: optimized kprobes illegal instruction
commit e46daee53b ("ARM: 8806/1: kprobes: Fix false positive with
FORTIFY_SOURCE") introduced a regression in optimized kprobes. It
triggers "invalid instruction" oopses when using kprobes instrumentation
through lttng and perf. This commit was introduced in kernel v4.20, and
has been backported to stable kernels 4.19 and 4.14.

This crash was also reported by Hongzhi Song on the redhat bugzilla
where the patch was originally introduced.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=1639397
Link: https://bugs.lttng.org/issues/1174
Link: https://lore.kernel.org/lkml/342740659.2887.1549307721609.JavaMail.zimbra@efficios.com

Fixes: e46daee53b ("ARM: 8806/1: kprobes: Fix false positive with FORTIFY_SOURCE")
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reported-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
Tested-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
Acked-by: Kees Cook <keescook@chromium.org>
Cc: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: William Cohen <wcohen@redhat.com>
Cc: Laura Abbott <labbott@redhat.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: <stable@vger.kernel.org> # v4.14+
Cc: linux-arm-kernel@lists.infradead.org
Cc: patches@armlinux.org.uk
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-12 15:20:58 +00:00
Nathan Chancellor
de9c0d49d8 ARM: 8833/1: Ensure that NEON code always compiles with Clang
While building arm32 allyesconfig, I ran into the following errors:

  arch/arm/lib/xor-neon.c:17:2: error: You should compile this file with
  '-mfloat-abi=softfp -mfpu=neon'

  In file included from lib/raid6/neon1.c:27:
  /home/nathan/cbl/prebuilt/lib/clang/8.0.0/include/arm_neon.h:28:2:
  error: "NEON support not enabled"

Building V=1 showed NEON_FLAGS getting passed along to Clang but
__ARM_NEON__ was not getting defined. Ultimately, it boils down to Clang
only defining __ARM_NEON__ when targeting armv7, rather than armv6k,
which is the '-march' value for allyesconfig.

>From lib/Basic/Targets/ARM.cpp in the Clang source:

  // This only gets set when Neon instructions are actually available, unlike
  // the VFP define, hence the soft float and arch check. This is subtly
  // different from gcc, we follow the intent which was that it should be set
  // when Neon instructions are actually available.
  if ((FPU & NeonFPU) && !SoftFloat && ArchVersion >= 7) {
    Builder.defineMacro("__ARM_NEON", "1");
    Builder.defineMacro("__ARM_NEON__");
    // current AArch32 NEON implementations do not support double-precision
    // floating-point even when it is present in VFP.
    Builder.defineMacro("__ARM_NEON_FP",
                        "0x" + Twine::utohexstr(HW_FP & ~HW_FP_DP));
  }

Ard Biesheuvel recommended explicitly adding '-march=armv7-a' at the
beginning of the NEON_FLAGS definitions so that __ARM_NEON__ always gets
definined by Clang. This doesn't functionally change anything because
that code will only run where NEON is supported, which is implicitly
armv7.

Link: https://github.com/ClangBuiltLinux/linux/issues/287

Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-12 15:20:09 +00:00
Sudeep Holla
1241c72b6d ARM: dts: zynq: replace gpio-key,wakeup with wakeup-source property
Most of the legacy "gpio-key,wakeup" boolean property is already
replaced with "wakeup-source". However few occurrences of old property
has popped up again, probably from the remnants in downstream trees.

Replace the legacy properties with the unified "wakeup-source"
property introduced in the commit 700a38b27e ("Input: gpio_keys -
switch to using generic device properties")

Cc: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2019-02-12 13:53:33 +01:00
Adam Ford
1c207f911f ARM: dts: imx: Add support for Logic PD i.MX6QD EVM
The EVM consists of a system on module (SOM) and baseboard, and LCD.
This patch adds a DTSI file for the SOM and baseboard separately,
then a wrapper to combine them and specify processor type and a
LCD information.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-12 17:17:11 +08:00
Anson Huang
ee9ec3ea79 ARM: dts: imx6qdl-sabresd: remove reg_sensors' regulator-always-on
Now that all sensors supplied by reg_sensors have supported
regulator control, reg_sensors does NOT need to be always ON,
remove "regulator-always-on" to save power.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-12 17:17:11 +08:00
Anson Huang
14cc68e143 ARM: dts: imx6qdl-sabresd: add regulators control for mma8451 sensor
The mma8451 sensor driver has supported regulators control,
assign the power supplies for mma8451 to enable the control.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-12 17:17:11 +08:00
Anson Huang
72af502f17 ARM: dts: imx6qdl-sabresd: add regulators control for mag3110 sensor
The mag3110 sensor driver has supported regulators control,
assign the power supplies for mag3110 to enable the control.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-12 17:17:11 +08:00
Anson Huang
1e797150e0 ARM: dts: imx6qdl-sabresd: add regulator control for isl29023 sensor
The isl29023 light sensor driver has supported regulator control,
assign the power supply for isl29023 to enable the control.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-12 17:17:11 +08:00
Andrew Lunn
4a2c25961a ARM: dts: vf610: Add ZII SSMB DTU board
Add the Zodiac Digital Tapping Unit, a VF610 based network device with
5 Ethernet ports. One of these ports supports 1000Base-T2.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-12 17:17:10 +08:00
Philipp Zabel
8de81c89d0 ARM: dts: pfla02: add ksz9031 clock skew values
The pfla02 SoM has a Micrel KSZ9031RNX ethernet phy connected to the FEC,
which needs RX and TX clock skew settings to compensate for differences
in line length. The skew values are taken from barebox commit
4c65c20f1071 ("ARM: pfla02: Set new ethernet phy tx timings"), which
is based on patches originally provided by Phytec:

    TX_CLK line is approx. 54mm longer than other TX lines which adds
    a delay of 0.36ns. RGMII need a delay of min. 1.0ns. This mean we
    have to add a delay of 0.64ns. We choose 0.78 to have a little gap.
    This can be done by setting GTX pad skew value to 11100
    Also add a delay for the RX delay lines, needed for the Duallite
    variant.  => Set register 2.8 (RGMII Clock Pad Skew) to 0x039F.

Cc: Christian Hemp <c.hemp@phytec.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-12 17:17:10 +08:00
Marco Felsch
bffe0d85e5 ARM: dts: imx6qdl-phytec-pfla02: add missing interrupt-controller property
The DA9063 device need the required "interrupt-controller" property as
documented by the bindings [1].

[1] Documentation/devicetree/bindings/mfd/da9063.txt

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-12 17:17:10 +08:00
Bartosz Golaszewski
339850f23a ARM: davinci: da830-evm: remove legacy usb helpers
The logic implemented by these routines now lives in the da8xx-ohci
driver. Remove dead code.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-02-12 13:48:59 +05:30
Bartosz Golaszewski
2435854e2a ARM: davinci: omapl138-hawk: remove legacy usb helpers
The logic implemented by these routines now lives in the da8xx-ohci
driver. Remove dead code.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-02-12 13:48:58 +05:30
Bartosz Golaszewski
1703cf5d4f ARM: davinci: da830-evm: use gpio lookup entries for usb gpios
Add lookup entries for vbus and overcurrent gpios for da830-evm.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-02-12 13:28:41 +05:30
Bartosz Golaszewski
c08df69149 ARM: davinci: omapl138-hawk: use gpio lookup entries for usb gpios
Add lookup entries for the vbus and overcurrent gpios for omapl138-hawk.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-02-12 13:28:41 +05:30
Martin Blumenstingl
99f0619b0d ARM: dts: meson8b: ec100: add the GPIO line names
This adds the GPIO line names from the schematics to get them displayed
in the debugfs output of each GPIO controller.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:26 -08:00
Martin Blumenstingl
3e7db1c1b7 ARM: dts: meson8b: ec100: improve the description of the regulators
USB_VBUS is a controlled by a Silergy SY6288CCAC-GP 2A Power
Distribution Switch. The name of it's enable GPIO signal is USB_PWR_EN.

VCC5V is supplied by the main power input called PWR_5V_STB. The name of
it's enable GPIO signal is 3V3_5V_EN.

VCC3V3, VCC_DDR3_1V5 and VCCK (the CPU power supply) each use a separate
Silergy SY8089AAC-GP 2A step down regulator. They are all supplied by the
board's main 5V. VCC3V3 and VCC_DDR3_1V5 are fixed regulators while the
voltage of VCCK can be changed by changing it's feedback voltage via
PWM_C.

VCC1V8 is an ABLIC S-1339D18-M5001-GP fixed voltage regulator which is
supplied by VCC3V3.

VCC_RTC is a Global Mixed-mode Technology Inc. G918T12U-GP LDO which. It
is supplied by either VCC3V3 (when the board is powered) or the RTC coin
cell battery.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:26 -08:00
Martin Blumenstingl
b7d10841e5 ARM: dts: meson8b: ec100: enable the Ethernet PHY interrupt
The INTR32 pin of the IP101GR Ethernet PHY is routed to the GPIOH_3 pad
on the SoC.
Enable the interrupt function of the PHY's INTR32 pin to switch it from
it's default "receive error" mode to "interrupt pin" mode.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:26 -08:00
Martin Blumenstingl
e7e871b50f ARM: dts: meson8m2: mxiii-plus: add iio-hwmon for the chip temperature
SAR ADC enabled channel 8 can be used to measure the chip temperature.
This can be made available to the hwmon subsystem by using iio-hwmon.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:26 -08:00
Martin Blumenstingl
a6c9492826 ARM: dts: meson8b: odroidc1: add iio-hwmon for the chip temperature
SAR ADC enabled channel 8 can be used to measure the chip temperature.
This can be made available to the hwmon subsystem by using iio-hwmon.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:26 -08:00
Martin Blumenstingl
1a4f28ab25 ARM: dts: meson8b: ec100: add iio-hwmon for the chip temperature
SAR ADC enabled channel 8 can be used to measure the chip temperature.
This can be made available to the hwmon subsystem by using iio-hwmon.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:26 -08:00
Martin Blumenstingl
bbbcf64360 ARM: dts: meson8b: add the temperature calibration data for the SAR ADC
The SAR ADC can measure the chip temperature of the SoC. This only
works if the chip is calibrated and if the calibration data is written
to the correct registers. The calibration data is stored in the upper
two bytes of eFuse offset 0x1f4.

This adds the eFuse cell for the temperature calibration data and
passes it to the SAR ADC. We also need to pass the HHI sysctrl node to
the SAR ADC because the 4th TSC (temperature sensor calibration
coefficient) bit is stored in the HHI region (unlike bits [3:0] which
are stored directly inside the SAR ADC's register area).

On boards that have the SAR ADC enabled channel 8 can be used to
measure the chip temperature.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:26 -08:00
Martin Blumenstingl
f4c6e8e223 ARM: dts: meson8: add the temperature calibration data for the SAR ADC
The SAR ADC can measure the chip temperature of the SoC. This only
works if the chip is calibrated and if the calibration data is written
to the correct registers. The calibration data is stored in the upper
two bytes of eFuse offset 0x1f4.

This adds the eFuse cell for the temperature calibration data and
passes it to the SAR ADC. We also need to pass the HHI sysctrl node to
the SAR ADC because the 4th TSC (temperature sensor calibration
coefficient) bit is stored in the HHI region (unlike bits [3:0] which
are stored directly inside the SAR ADC's register area).

On boards that have the SAR ADC enabled channel 8 can be used to
measure the chip temperature.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:26 -08:00
Martin Blumenstingl
c0ad99a2de ARM: dts: meson8m2: use the Meson8m2 specific SAR ADC compatible
The SAR ADC on Meson8m2 is slightly different compared to Meson8. The
ADC functionality is identical but the calibration of the internal
thermal sensor is different.

Use the Meson8m2 specific compatible so the temperature sensor is
calibrated correctly on boards using the Meson8m2 SoC.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:25 -08:00
Martin Blumenstingl
b6db3936f2 ARM: dts: meson: switch the clock controller to the HHI register area
The clock controller on Meson8/Meson8m2 and Meson8b is part of a
register region called "HHI". This register area contains more
functionality than just a clock controller:
- the clock controller
- some reset controller bits
- temperature sensor calibration data (on Meson8b and Meson8m2 only)
- HDMI controller

Allow access to this HHI register area as "system controller". Also
migrate the Meson8 and Meson8b clock controllers to this new node.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:25 -08:00
Martin Blumenstingl
29f0023d01 ARM: dts: meson8b: fix the Ethernet data line signals in eth_rgmii_pins
According to the Odroid-C1+ schematics the Ethernet TXD1 signal is
routed to GPIOH_5 and the TXD0 signal is routed to GPIOH_6.
The public S805 datasheet shows that TXD0 can be routed to DIF_2_P and
TXD1 can be routed to DIF_2_N instead.

The pin groups eth_txd0_0 (GPIOH_6) and eth_txd0_1 (DIF_2_P) are both
configured as Ethernet TXD0 and TXD1 data lines in meson8b.dtsi. At the
same time eth_txd1_0 (GPIOH_5) and eth_txd1_1 (DIF_2_N) are configured
as TXD0 and TXD1 data lines as well.
This results in a bad Ethernet receive performance. Presumably this is
due to the eth_txd0 and eth_txd1 signal being routed to the wrong pins.
As a result of that data can only be transmitted on eth_txd2 and
eth_txd3. However, I have no scope to fully confirm this assumption.

The vendor u-boot sources for Odroid-C1 use the following Ethernet
pinmux configuration:
  SET_CBUS_REG_MASK(PERIPHS_PIN_MUX_6, 0x3f4f);
  SET_CBUS_REG_MASK(PERIPHS_PIN_MUX_7, 0xf00000);
This translates to the following pin groups in the mainline kernel:
- register 6 bit  0: eth_rxd1 (DIF_0_P)
- register 6 bit  1: eth_rxd0 (DIF_0_N)
- register 6 bit  2: eth_rx_dv (DIF_1_P)
- register 6 bit  3: eth_rx_clk (DIF_1_N)
- register 6 bit  6: eth_tx_en (DIF_3_P)
- register 6 bit  8: eth_ref_clk (DIF_3_N)
- register 6 bit  9: eth_mdc (DIF_4_P)
- register 6 bit 10: eth_mdio_en (DIF_4_N)
- register 6 bit 11: eth_tx_clk (GPIOH_9)
- register 6 bit 12: eth_txd2 (GPIOH_8)
- register 6 bit 13: eth_txd3 (GPIOH_7)
- register 7 bit 20: eth_txd0_0 (GPIOH_6)
- register 7 bit 21: eth_txd1_0 (GPIOH_5)
- register 7 bit 22: eth_rxd3 (DIF_2_P)
- register 7 bit 23: eth_rxd2 (DIF_2_N)

Drop the eth_txd0_1 and eth_txd1_1 groups from eth_rgmii_pins to fix the
Ethernet transmit performance on Odroid-C1. Also add the eth_rxd2 and
eth_rxd3 groups so we don't rely on the bootloader to set them up.

iperf3 statistics before this change:
- transmitting from Odroid-C1: 741 Mbits/sec (0 retries)
- receiving on Odroid-C1: 199 Mbits/sec (1713 retries)

iperf3 statistics after this change:
- transmitting from Odroid-C1: 667 Mbits/sec (0 retries)
- receiving on Odroid-C1: 750 Mbits/sec (0 retries)

Fixes: b96446541d ("ARM: dts: meson8b: extend ethernet controller description")
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: Emiliano Ingrassia <ingrassia@epigenesys.com>
Cc: Linus Lüssing <linus.luessing@c0d3.blue>
Tested-by: Emiliano Ingrassia <ingrassia@epigenesys.com>
Reviewed-by: Emiliano Ingrassia <ingrassia@epigenesys.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-11 12:52:25 -08:00
Philippe Schenker
a822029a0c ARM: dts: Add stmpe-adc DT node to Toradex iMX6 modules
Add the stmpe-adc DT node as found on Toradex iMX6 modules

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Reviewed-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:27 +08:00
Manivannan Sadhasivam
da8782f673 ARM: dts: Add devicetree compatibles for LS1021A based boards
Add missing devicetree compatibles for the following LS1021A based
boards:

ls1021a-moxa-uc-8410a.dts
ls1021a-qds.dts
ls1021a-twr.dts

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:27 +08:00
Stefan Agner
063182a4c8 ARM: dts: colibri: use valid range configuration for weim
A valid WEIM range configuration must specify range entries for
all four chip selects. This fixes an error on boot:
  imx-weim: probe of 21b8000.weim failed with error -22

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:26 +08:00
Martyn Welch
82ae9038dd ARM: dts: imx6: Add support for Phytec phyBOARD i.MX6UL Segin
The Phytec phyBOARD Segin is i.MX6 based SBC, available with either an
i.MX6UL or i.MX6ULL SOM and various add-on boards.

The following adds support for the "Full Featured" version of the Segin,
which is provided with the i.MX6UL SOM and the PEB-EVAL-01 evaluation
module.

Its hardware specifications are:

 * 512MB DDR3 memory
 * 512MB NAND flash
 * Dual 10/100 Ethernet
 * USB Host and USB OTG
 * RS232
 * MicroSD external storage
 * Audio, RS232, I2C, SPI, CAN headers
 * Further I/O options via A/V and Expansion headers

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:26 +08:00
Stefan Agner
d2b91ab148 ARM: dts: imx6*-apalis/-colibri: mark I2C recovery GPIOs as open drain
Since commit d2d0ad2aec ("i2c: imx: use open drain for recovery
GPIO") GPIO lib expects this GPIO to be configured as open drain.
Make sure we define this GPIO as open drain in the device tree.
This gets rid of the following warning:
  gpio-81 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file

Note that currently the i.MX pinctrl driver does not support
enabling open drain directly, so this patch has no effect in
practice. Open drain is enabled by the fixed pinmux entry.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Reviewed-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:26 +08:00
Fabio Estevam
69ab17b53e ARM: dts: vf610-zii-ssmb-spu3: Pass "no-sdio"/"no-sd" properties
esdhc0 is connected to an eMMC, so it is safe to pass the "no-sdio"/"no-sd"
properties.

esdhc1 is wired to a standard SD socket, so pass the "no-sdio" property.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:25 +08:00
Vokáč Michal
87489ec3a7 ARM: dts: imx: Add Y Soft IOTA Draco, Hydra and Ursa boards
These are i.MX6S/DL based SBCs embedded in various Y Soft products.
All share the same board design but have slightly different HW
configuration.

Ursa
- i.MX6S SoC, 512MB RAM DDR3, 4GB eMMC, microSD
- parallel WVGA 7" LCD with touch panel
- 1x Eth (QCA8334 switch)
- USB OTG
- USB host (micro-B)

Draco
- i.MX6S SoC, 512MB RAM DDR3, 4GB eMMC, microSD
- parallel WVGA 7" LCD with touch panel
- 2x Eth (QCA8334 switch)
- USB OTG
- USB host (micro-B)
- RGB LED (I2C LP5562)
- 3.5mm audio jack + codec (LM49350)

Hydra
- i.MX6DL SoC, 2GB RAM DDR3, 4GB eMMC, microSD
- I2C OLED display, capacitive matrix keys
- 2x Eth (QCA8334 switch)
- USB OTG
- RGB LED (I2C LP5562)
- 3.5mm audio jack + codec (LM49350)
- HDMI
- miniPCIe slot

Cc: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:25 +08:00
Anson Huang
cc077d00fd ARM: dts: imx7ulp: add sim node
i.MX7ULP SoC revision info is inside the SIM mode's JTAG_ID
register, add sim node to support SoC revision check.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:25 +08:00
BOUGH CHEN
143c3870ff ARM: dts: imx6ull: change to use new compatible "fsl,imx6ull-usdhc" for usdhc
i.MX6ULL has errata ERR010450, there is I/O timing limitation,
for SDR mode, SD card clock can't exceed 150MHz, for DDR mode,
SD card clock can't exceed 45MHz. This patch change to use the
new compatible "fsl,imx6ull-usdhc" to follow this limitation.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:24 +08:00
Stefan Wahren
f243bc821e ARM: dts: imx6ull: Fix i.MX6ULL/ULZ ocotp compatible
Since imx6ulz.dtsi includes imx6ull.dtsi, we only need to fix the compatible
string here to achieve the correct OTP size for both SoCs.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:24 +08:00
Leonard Crestez
ae88c9e783 ARM: dts: imx6sx: Add DISPLAY power domain support
This was implemented in the driver but not actually defined and
referenced in dts. This makes it always on.

From reference manual in section "10.4.1.4.1 Power Distribution":

"Display domain - The DISPLAY domain contains GIS, CSI, PXP, LCDIF,
PCIe, DCIC, and LDB. It is supplied by internal regulator."

The current pd_pcie is actually only for PCIE_PHY, the PCIE ip block is
actually inside the DISPLAY domain. Handle this by adding the pcie node
in both power domains.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Acked-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-02-11 09:22:24 +08:00
Thomas Gleixner
41ea39101d y2038: Add time64 system calls
This series finally gets us to the point of having system calls with
 64-bit time_t on all architectures, after a long time of incremental
 preparation patches.
 
 There was actually one conversion that I missed during the summer,
 i.e. Deepa's timex series, which I now updated based the 5.0-rc1 changes
 and review comments.
 
 The following system calls are now added on all 32-bit architectures
 using the same system call numbers:
 
 403 clock_gettime64
 404 clock_settime64
 405 clock_adjtime64
 406 clock_getres_time64
 407 clock_nanosleep_time64
 408 timer_gettime64
 409 timer_settime64
 410 timerfd_gettime64
 411 timerfd_settime64
 412 utimensat_time64
 413 pselect6_time64
 414 ppoll_time64
 416 io_pgetevents_time64
 417 recvmmsg_time64
 418 mq_timedsend_time64
 419 mq_timedreceiv_time64
 420 semtimedop_time64
 421 rt_sigtimedwait_time64
 422 futex_time64
 423 sched_rr_get_interval_time64
 
 Each one of these corresponds directly to an existing system call
 that includes a 'struct timespec' argument, or a structure containing
 a timespec or (in case of clock_adjtime) timeval. Not included here
 are new versions of getitimer/setitimer and getrusage/waitid, which
 are planned for the future but only needed to make a consistent API
 rather than for correct operation beyond y2038. These four system
 calls are based on 'timeval', and it has not been finally decided
 what the replacement kernel interface will use instead.
 
 So far, I have done a lot of build testing across most architectures,
 which has found a number of bugs. Runtime testing so far included
 testing LTP on 32-bit ARM with the existing system calls, to ensure
 we do not regress for existing binaries, and a test with a 32-bit
 x86 build of LTP against a modified version of the musl C library
 that has been adapted to the new system call interface [3].
 This library can be used for testing on all architectures supported
 by musl-1.1.21, but it is not how the support is getting integrated
 into the official musl release. Official musl support is planned
 but will require more invasive changes to the library.
 
 Link: https://lore.kernel.org/lkml/20190110162435.309262-1-arnd@arndb.de/T/
 Link: https://lore.kernel.org/lkml/20190118161835.2259170-1-arnd@arndb.de/
 Link: https://git.linaro.org/people/arnd/musl-y2038.git/ [2]
 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJcXf7/AAoJEGCrR//JCVInPSUP/RhsQSCKMGtONB/vVICQhwep
 PybhzBSpHWFxszzTi6BEPN1zS9B069G9mDollRBYZCckyPqL/Bv6sI/vzQZdNk01
 Q6Nw92OnNE1QP8owZ5TjrZhpbtopWdqIXjsbGZlloUemvuJP2JwvKovQUcn5CPTQ
 jbnqU04CVyFFJYVxAnGJ+VSeWNrjW/cm/m+rhLFjUcwW7Y3aodxsPqPP6+K9hY9P
 yIWfcH42WBeEWGm1RSBOZOScQl4SGCPUAhFydl/TqyEQagyegJMIyMOv9wZ5AuTT
 xK644bDVmNsrtJDZDpx+J8hytXCk1LrnKzkHR/uK80iUIraF/8D7PlaPgTmEEjko
 XcrywEkvkXTVU3owCm2/sbV+8fyFKzSPipnNfN1JNxEX71A98kvMRtPjDueQq/GA
 Yh81rr2YLF2sUiArkc2fNpENT7EGhrh1q6gviK3FB8YDgj1kSgPK5wC/X0uolC35
 E7iC2kg4NaNEIjhKP/WKluCaTvjRbvV+0IrlJLlhLTnsqbA57ZKCCteiBrlm7wQN
 4csUtCyxchR9Ac2o/lj+Mf53z68Zv74haIROp18K2dL7ZpVcOPnA3XHeauSAdoyp
 wy2Ek6ilNvlNB+4x+mRntPoOsyuOUGv7JXzB9JvweLWUd9G7tvYeDJQp/0YpDppb
 K4UWcKnhtEom0DgK08vY
 =IZVb
 -----END PGP SIGNATURE-----

Merge tag 'y2038-new-syscalls' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground into timers/2038

Pull y2038 - time64 system calls from Arnd Bergmann:

This series finally gets us to the point of having system calls with 64-bit
time_t on all architectures, after a long time of incremental preparation
patches.

There was actually one conversion that I missed during the summer,
i.e. Deepa's timex series, which I now updated based the 5.0-rc1 changes
and review comments.

The following system calls are now added on all 32-bit architectures using
the same system call numbers:

403 clock_gettime64
404 clock_settime64
405 clock_adjtime64
406 clock_getres_time64
407 clock_nanosleep_time64
408 timer_gettime64
409 timer_settime64
410 timerfd_gettime64
411 timerfd_settime64
412 utimensat_time64
413 pselect6_time64
414 ppoll_time64
416 io_pgetevents_time64
417 recvmmsg_time64
418 mq_timedsend_time64
419 mq_timedreceiv_time64
420 semtimedop_time64
421 rt_sigtimedwait_time64
422 futex_time64
423 sched_rr_get_interval_time64

Each one of these corresponds directly to an existing system call that
includes a 'struct timespec' argument, or a structure containing a timespec
or (in case of clock_adjtime) timeval. Not included here are new versions
of getitimer/setitimer and getrusage/waitid, which are planned for the
future but only needed to make a consistent API rather than for correct
operation beyond y2038. These four system calls are based on 'timeval', and
it has not been finally decided what the replacement kernel interface will
use instead.

So far, I have done a lot of build testing across most architectures, which
has found a number of bugs. Runtime testing so far included testing LTP on
32-bit ARM with the existing system calls, to ensure we do not regress for
existing binaries, and a test with a 32-bit x86 build of LTP against a
modified version of the musl C library that has been adapted to the new
system call interface [3].  This library can be used for testing on all
architectures supported by musl-1.1.21, but it is not how the support is
getting integrated into the official musl release. Official musl support is
planned but will require more invasive changes to the library.

Link: https://lore.kernel.org/lkml/20190110162435.309262-1-arnd@arndb.de/T/
Link: https://lore.kernel.org/lkml/20190118161835.2259170-1-arnd@arndb.de/
Link: https://git.linaro.org/people/arnd/musl-y2038.git/ [2]
2019-02-10 21:24:43 +01:00
Thomas Gleixner
fd659cc095 arch: System call unification and cleanup
The system call tables have diverged a bit over the years, and a number
 of the recent additions never made it into all architectures, for one
 reason or another.
 
 This is an attempt to clean it up as far as we can without breaking
 compatibility, doing a number of steps:
 
 - Add system calls that have not yet been integrated into all
   architectures but that we definitely want there. This includes
   {,f}statfs64() and get{eg,eu,g,p,u,pp}id() on alpha, which have
   been missing traditionally.
 
 - The s390 compat syscall handling is cleaned up to be more like
   what we do on other architectures, while keeping the 31-bit
   pointer extension. This was merged as a shared branch by the
   s390 maintainers and is included here in order to base the other
   patches on top.
 
 - Add the separate ipc syscalls on all architectures that
   traditionally only had sys_ipc(). This version is done without
   support for IPC_OLD that is we have in sys_ipc. The
   new semtimedop_time64 syscall will only be added here, not
   in sys_ipc
 
 - Add syscall numbers for a couple of syscalls that we probably
   don't need everywhere, in particular pkey_* and rseq,
   for the purpose of symmetry: if it's in asm-generic/unistd.h,
   it makes sense to have it everywhere. I expect that any future
   system calls will get assigned on all platforms together, even
   when they appear to be specific to a single architecture.
 
 - Prepare for having the same system call numbers for any future
   calls. In combination with the generated tables, this hopefully
   makes it easier to add new calls across all architectures
   together.
 
 All of the above are technically separate from the y2038 work,
 but are done as preparation before we add the new 64-bit time_t
 system calls everywhere, providing a common baseline set of system
 calls.
 
 I expect that glibc and other libraries that want to use 64-bit
 time_t will require linux-5.1 kernel headers for building in
 the future, and at a much later point may also require linux-5.1
 or a later version as the minimum kernel at runtime. Having a
 common baseline then allows the removal of many architecture or
 kernel version specific workarounds.
 
 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJcXf6XAAoJEGCrR//JCVInIm4P/AlkMmQRa/B2ziWMW6PifPoI
 v18r44017rA1BPENyZvumJUdM5mDvNofOW8F2DYQ7Uiys2YtXenwe/Cf8LHn2n6c
 TMXGQryQpvNmfDCyU+0UjF8m2+poFMrL4aRTXtjODh1YTsPNgeDC+KFMCAAtZmZd
 cVbXFudtbdYKD/pgCX4SI1CWAMBiXe2e+ukPdJVr+iqusCMTApf+GOuyvDBZY9s/
 vURb+tIS87HZ/jehWfZFSuZt+Gu7b3ijUXNC8v9qSIxNYekw62vBNl6F09HE79uB
 Bv4OujAODqKvI9gGyydBzLJNzaMo0ryQdusyqcJHT7MY/8s+FwcYAXyTlQ3DbbB4
 2u/c+58OwJ9Zk12p4LXZRA47U+vRhQt2rO4+zZWs2txNNJY89ZvCm/Z04KOiu5Xz
 1Nnj607KGzthYRs2gs68AwzGGyf0uykIQ3RcaJLIBlX1Nd8BWO0ZgAguCvkXbQMX
 XNXJTd92HmeuKKpiO0n/M4/mCeP0cafBRPCZbKlHyTl0Jeqd/HBQEO9Z8Ifwyju3
 mXz9JCR9VlPCkX605keATbjtPGZf3XQtaXlQnezitDudXk8RJ33EpPcbhx76wX7M
 Rux37ByqEOzk4wMGX9YQyNU7z7xuVg4sJAa2LlJqYeKXHtym+u3gG7SGP5AsYjmk
 6mg2+9O2yZuLhQtOtrwm
 =s4wf
 -----END PGP SIGNATURE-----

Merge tag 'y2038-syscall-cleanup' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground into timers/2038

Pull preparatory work for y2038 changes from Arnd Bergmann:

System call unification and cleanup

The system call tables have diverged a bit over the years, and a number of
the recent additions never made it into all architectures, for one reason
or another.

This is an attempt to clean it up as far as we can without breaking
compatibility, doing a number of steps:

 - Add system calls that have not yet been integrated into all architectures
   but that we definitely want there. This includes {,f}statfs64() and
   get{eg,eu,g,p,u,pp}id() on alpha, which have been missing traditionally.

 - The s390 compat syscall handling is cleaned up to be more like what we
   do on other architectures, while keeping the 31-bit pointer
   extension. This was merged as a shared branch by the s390 maintainers
   and is included here in order to base the other patches on top.

 - Add the separate ipc syscalls on all architectures that traditionally
   only had sys_ipc(). This version is done without support for IPC_OLD
   that is we have in sys_ipc. The new semtimedop_time64 syscall will only
   be added here, not in sys_ipc

 - Add syscall numbers for a couple of syscalls that we probably don't need
   everywhere, in particular pkey_* and rseq, for the purpose of symmetry:
   if it's in asm-generic/unistd.h, it makes sense to have it everywhere. I
   expect that any future system calls will get assigned on all platforms
   together, even when they appear to be specific to a single architecture.

 - Prepare for having the same system call numbers for any future calls. In
   combination with the generated tables, this hopefully makes it easier to
   add new calls across all architectures together.

All of the above are technically separate from the y2038 work, but are done
as preparation before we add the new 64-bit time_t system calls everywhere,
providing a common baseline set of system calls.

I expect that glibc and other libraries that want to use 64-bit time_t will
require linux-5.1 kernel headers for building in the future, and at a much
later point may also require linux-5.1 or a later version as the minimum
kernel at runtime. Having a common baseline then allows the removal of many
architecture or kernel version specific workarounds.
2019-02-10 20:44:19 +01:00
Linus Torvalds
3e5e692fcd xen: fixes for 5.0-rc6
-----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRTLbB6QfY48x44uB6AXGG7T9hjvgUCXF7kVAAKCRCAXGG7T9hj
 vqnqAP9eokv+M7IIhKMyOPg9L1H8pspaFvtvI3VDckJOv1yCqQD/VFi0aITkGdMU
 0W7LCawec41dRwCMQ2bg6XB16ArfLww=
 =Stew
 -----END PGP SIGNATURE-----

Merge tag 'for-linus-5.0-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen fixes from Juergen Gross:
 "Two very minor fixes: one remove of a #include for an unused header
  and a fix of the xen ML address in MAINTAINERS"

* tag 'for-linus-5.0-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  MAINTAINERS: unify reference to xen-devel list
  arch/arm/xen: Remove duplicate header
2019-02-09 09:44:08 -08:00
Linus Torvalds
46c291e277 ARM: SoC fixes for linux-5.0
This is a bit larger than normal, as we had not managed to send out
 a pull request before traveling for a week without my signing key.
 
 There are multiple code fixes for older bugs, all of which should
 get backported into stable kernels:
 
 - tango: one fix for multiplatform configurations broken on other
   platforms when tango is enabled
 - arm_scmi: device unregistration fix
 - iop32x: fix kernel oops from extraneous __init annotation
 - pxa: remove a double kfree
 - fsl qbman: close an interrupt clearing race
 
 The rest is the usual collection of smaller fixes for device tree
 files, on the renesas, allwinner, meson, omap, davinci, qualcomm
 and imx platforms. Some of these are for compile-time warnings,
 most are for board specific functionality that fails to work
 because of incorrect settings.
 
 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJcXg9kAAoJEGCrR//JCVInM/UP/1ikwMujrB33oT41l21KFvlw
 yrP3ji9Cyr6Ag8WCtgFYDXWw6uNW1eFYov8E4y8UKc16TSWWSvGmmIFM5K3OOtLe
 qAJrXTXCTBV2lGiWLIMlYQLAFav7H2CBgMLkRVLek1q7s6rV+hqV5hxfcAs6l2w7
 G5Qe8pwuGuZ2qINTs7OdLizd+JAmMeIuPQHGhrZnEupiy+44hHgbrIacXPhwX4Ff
 s5MwGON4H3pL1PtVIXlWo5nQwHyF+mkbSzn1RwmKpsQ4wK0vP3LgUURlvc945JNo
 zA5C/eCO6xFv7LCvBsuw515eEfI74K/9PDPr7txDz8TePjusPMv5zrYkb+jUhFhm
 dELhd8dmh50chXXgHVggRbIjYCpOJeVqm9aeYVvHyKOTNmVohGDc06To/0hFHljw
 1kgX4r2hUduTex0wwFks22TfcXr/cQzarXqyV6lRP5K/4IoU8MJCp4QLYXQK7HYY
 K9644aSaCTRGfRMbvVXYeykRgilEWT1wG8oREAH+PTWNIb47rqi/ByXitIrLkIWh
 Lnefj6bB863E0lPson03sBksylDRaluSeT5lVyjHzJsHwVLt2haqtaI892SZhUy1
 /oR60CMkGuRhmwi4ASCCbr20E+sa/LDNUVC6+d/xs9+Bc/54GEKxS11ffthMUoO0
 3EpgCZDHno+PMSIRkzPN
 =koHS
 -----END PGP SIGNATURE-----

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

Pull ARM SoC fixes from Arnd Bergmann:
 "This is a bit larger than normal, as we had not managed to send out a
  pull request before traveling for a week without my signing key.

  There are multiple code fixes for older bugs, all of which should get
  backported into stable kernels:

   - tango: one fix for multiplatform configurations broken on other
     platforms when tango is enabled

   - arm_scmi: device unregistration fix

   - iop32x: fix kernel oops from extraneous __init annotation

   - pxa: remove a double kfree

   - fsl qbman: close an interrupt clearing race

  The rest is the usual collection of smaller fixes for device tree
  files, on the renesas, allwinner, meson, omap, davinci, qualcomm and
  imx platforms.

  Some of these are for compile-time warnings, most are for board
  specific functionality that fails to work because of incorrect
  settings"

* tag 'armsoc-fixes-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (30 commits)
  ARM: tango: Improve ARCH_MULTIPLATFORM compatibility
  firmware: arm_scmi: provide the mandatory device release callback
  ARM: iop32x/n2100: fix PCI IRQ mapping
  arm64: dts: add msm8996 compatible to gicv3
  ARM: dts: am335x-shc.dts: fix wrong cd pin level
  ARM: dts: n900: fix mmc1 card detect gpio polarity
  ARM: dts: omap3-gta04: Fix graph_port warning
  ARM: pxa: ssp: unneeded to free devm_ allocated data
  ARM: dts: r8a7743: Convert to new LVDS DT bindings
  soc: fsl: qbman: avoid race in clearing QMan interrupt
  arm64: dts: renesas: r8a77965: Enable DMA for SCIF2
  arm64: dts: renesas: r8a7796: Enable DMA for SCIF2
  arm64: dts: renesas: r8a774a1: Enable DMA for SCIF2
  ARM: dts: da850: fix interrupt numbers for clocksource
  dt-bindings: imx8mq: Number clocks consecutively
  arm64: dts: meson: Fix mmc cd-gpios polarity
  ARM: dts: imx6sx: correct backward compatible of gpt
  ARM: dts: imx: replace gpio-key,wakeup with wakeup-source property
  ARM: dts: vf610-bk4: fix incorrect #address-cells for dspi3
  ARM: dts: meson8m2: mxiii-plus: mark the SD card detection GPIO active-low
  ...
2019-02-08 16:23:41 -08:00
David S. Miller
a655fe9f19 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
An ipvlan bug fix in 'net' conflicted with the abstraction away
of the IPV6 specific support in 'net-next'.

Similarly, a bug fix for mlx5 in 'net' conflicted with the flow
action conversion in 'net-next'.

Signed-off-by: David S. Miller <davem@davemloft.net>
2019-02-08 15:00:17 -08:00
Linus Walleij
2e5a662de3 i2c: cbus-gpio: Switch to use GPIO descriptors
This augments the CBUS GPIO I2C driver to use GPIO
descriptors for clock, sel and data. We drop the platform
data that was only used for carrying GPIO numbers and
use machine descriptor tables instead.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2019-02-08 22:18:51 +01:00
Michal Vokáč
1ac1d4845c ARM: dts: imx28-cfa10036: Fix the reset gpio signal polarity
The reset signal of the SSD1306 OLED display is actually active-low.
Adapt the DT to reflect the real world.

Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>,
Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2019-02-08 19:24:48 +01:00
Andrew Lunn
cb92e40411 arch: arm: dts: Remove disabled marvell,dsa properties
These have been disable since the change to probe Marvell Ethernet
switches as MDIO devices. Remove the properties now that the code to
suppport them will also be removed soon.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2019-02-08 18:22:55 +01:00
Bartosz Golaszewski
ca107e35e6 ARM: davinci: da850-evm: use GPIO hogs instead of the legacy API
In order to drop the hard-coded GPIO base values from the davinci GPIO
driver's platform data, we first need to get rid of all calls to the
legacy GPIO functions. Convert the mdio configuration to hogging the
relevant GPIO line in the da850-evm board file.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-02-08 19:05:46 +05:30
Biju Das
1feef0ac19 ARM: dts: r8a7744: Add LVDS support
Add LVDS encoder node to r8a7744 SoC DT.

Signed-off-by: Biju Das <biju.das@bp.renesas.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2019-02-08 11:48:38 +01:00
Biju Das
5f152018d3 ARM: dts: r8a7744: Add DU support
Add du node to r8a7744 SoC DT. Boards that want to enable the DU
need to specify the output topology.

Signed-off-by: Biju Das <biju.das@bp.renesas.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2019-02-08 11:48:38 +01:00
Eric Biggers
e7b3ed3380 crypto: arm/crct10dif-ce - cleanup and optimizations
The x86, arm, and arm64 asm implementations of crct10dif are very
difficult to understand partly because many of the comments, labels, and
macros are named incorrectly: the lengths mentioned are usually off by a
factor of two from the actual code.  Many other things are unnecessarily
convoluted as well, e.g. there are many more fold constants than
actually needed and some aren't fully reduced.

This series therefore cleans up all these implementations to be much
more maintainable.  I also made some small optimizations where I saw
opportunities, resulting in slightly better performance.

This patch cleans up the arm version.

(Also moved the constants to .rodata as suggested by Ard Biesheuvel.)

Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-02-08 15:29:48 +08:00
Russell King
f548ced15f ARM: dts: clearfog: add comphy settings for Ethernet interfaces
Add the comphy settings for the Ethernet interfaces.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-02-07 18:10:26 -08:00
Russell King
f3a6a9f370 ARM: dts: add description for Armada 38x common phy
Add the DT description for the Armada 38x common phy.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-02-07 18:10:25 -08:00
James Morse
0db5e02230 KVM: arm/arm64: Add kvm_ras.h to collect kvm specific RAS plumbing
To split up APEIs in_nmi() path, the caller needs to always be
in_nmi(). KVM shouldn't have to know about this, pull the RAS plumbing
out into a header file.

Currently guest synchronous external aborts are claimed as RAS
notifications by handle_guest_sea(), which is hidden in the arch codes
mm/fault.c. 32bit gets a dummy declaration in system_misc.h.

There is going to be more of this in the future if/when the kernel
supports the SError-based firmware-first notification mechanism and/or
kernel-first notifications for both synchronous external abort and
SError. Each of these will come with some Kconfig symbols and a
handful of header files.

Create a header file for all this.

This patch gives handle_guest_sea() a 'kvm_' prefix, and moves the
declarations to kvm_ras.h as preparation for a future patch that moves
the ACPI-specific RAS code out of mm/fault.c.

Signed-off-by: James Morse <james.morse@arm.com>
Reviewed-by: Punit Agrawal <punit.agrawal@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Tested-by: Tyler Baicar <tbaicar@codeaurora.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-02-07 23:10:45 +01:00
Andreas Kemnade
1f4f84e955 ARM: dts: gta04: add gps support
The GTA04 has a w2sg0004 or w2sg0084 gps chip. Not detectable
which one is mounted so use the compatibility entry for w2sg0004
for all which will work for both.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Reviewed-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-02-07 09:30:20 -08:00
Andreas Kemnade
0db02b3bee ARM: dts: gta04: add ldo 3v3 regulator
Required for completeness sake to be able to specify
a regulator for devices having a non-optional regulator
property. It corresponds to the "3V3" net in the
schematics.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Reviewed-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-02-07 09:29:44 -08:00
Andreas Kemnade
a3f9c8c78a ARM: dts: gta04: add pinctrl settings for wkup domain
There is one button and a notifier for incoming phone
calls/text messages for which we should wakeup from
suspend.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-02-07 09:27:47 -08:00
Jonathan Neuschäfer
dd80f10320 ARM: dts: omap3-gta04a5: Replace LXR reference with a local one
There's no need to use an external link when the file is already here.

Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-02-07 09:25:51 -08:00
Ryder Lee
a43379dddf arm: mediatek: add MT7629 smp bring up code
Add support for booting secondary CPUs on MT7629.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2019-02-07 17:59:16 +01:00
Ryder Lee
2663146427 Revert "ARM: mediatek: add MT7623a smp bringup code"
This reverts commit 3b99ab7dec.

The compatible "mediatek,mt7623a" is useless, so remove it.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2019-02-07 17:47:07 +01:00
Chen-Yu Tsai
185401e1dd
ARM: dts: sun8i: a83t: Enable PMIC power supplies on various boards
On the Bananapi M3 and Cubietruck Plus, the DC input jacks are wired to
the ACIN pins, which is represented by the AC power supply. Both boards
have connectors for LiPo batteries, which are represented by the battery
power supply.

The H8 Homlet is a set-top box design. The DC input jack is wired to the
ACIN pins, but there are no battery connectors.

Enable these power supplies in the device tree.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-02-07 16:51:13 +01:00
Chen-Yu Tsai
98048143b7
ARM: dts: sun9i: cubieboard4: Enable GMAC
The Cubieboard4 has a Realtek RTL8211E ethernet PHY which uses RGMII to
talk to the MAC. The PHY is powered by 2 regulators: cldo1 for the PHY's
core logic and gpio1-ldo for I/O. The latter also powers the SoC side
pins. As there is no binding to model a second regulator supply for the
PHY, it is omitted. It is however properly modeled for the PIO.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-02-07 16:51:13 +01:00
Chen-Yu Tsai
bc9bd03a44
ARM: dts: sun9i: a80-optimus: Enable GMAC
The A80 Optimus has a Realtek RTL8211E ethernet PHY which uses RGMII to
talk to the MAC. The PHY is powered by 2 regulators: cldo1 for the PHY's
core logic and gpio1-ldo for I/O. The latter also powers the SoC side
pins. As there is no binding to model a second regulator supply for the
PHY, it is omitted. It is however properly modeled for the PIO.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-02-07 16:51:13 +01:00
Chen-Yu Tsai
72acaa1343
ARM: dts: sun9i: Add A80 GMAC RGMII pinmux setting
The GMAC (gigabit ethernet controller) supports RGMII to connect to
the ethernet PHY, for gigabit network speeds.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-02-07 16:51:12 +01:00
Chen-Yu Tsai
6fa39a5405
ARM: dts: sun9i: Add A80 GMAC gigabit ethernet controller node
The A80 has the same GMAC found on the A31 SoC.

Add a device node, and an alias for it.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-02-07 16:51:12 +01:00
Chen-Yu Tsai
e78adcfe48
ARM: dts: sun9i: Add GMAC clock node
The A80 has the same DWMAC hardware as on earlier Allwinner SoCs. The
accompanying GMAC clock register has been moved into the "System
Control" area.

Add a clock node for it.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-02-07 16:51:12 +01:00
Chen-Yu Tsai
b3e1f4be1e
ARM: dts: sun9i: cubieboard4: Add GPIO pin-bank regulator supplies
The Cubieboard 4 has the PMIC providing voltage to all the pin-bank
supply rails from its various regulator outputs. All pin-banks that
have supply rails are accounted for. PN pin-bank does not have a
supply rail.

Also remove any "regulator-always-on" properties from regulators that
were only marked to provide pin-bank power.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-02-07 16:51:12 +01:00
Chen-Yu Tsai
507b1784b4
ARM: dts: sun9i: a80-optimus: Add GPIO pin-bank regulator supplies
The A80 Optimus has the PMIC providing voltage to all the pin-bank
supply rails from its various regulator outputs. All pin-banks that
have supply rails are accounted for. PN pin-bank does not have a
supply rail.

Also remove any "regulator-always-on" properties from regulators that
were only marked to provide pin-bank power.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-02-07 16:51:12 +01:00
Chen-Yu Tsai
705f95153b
ARM: dts: sun9i: a80-optimus: Add node for AXP809's unused dc1sw regulator
The DC1SW output from the AXP809 is unused. Unused regulators should
still be listed so as to be considered to be fully constrained.

Fixes: aa4a27bc81 ("ARM: dts: sun9i: a80-optimus: Add AXP809 PMIC device node and regulators")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-02-07 16:51:03 +01:00
Russell King
50d6b3cf94 ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
If we have a kernel configured for periodic timer interrupts, and we
have cpuidle enabled, then we end up with CPU1 losing timer interupts
after a hotplug.

This can manifest itself in RCU stall warnings, or userspace becoming
unresponsive.

The problem is that the kernel initially wants to use the TWD timer
for interrupts, but the TWD loses context when we enter the C3 cpuidle
state.  Nothing reprograms the TWD after idle.

We have solved this in the past by switching to broadcast timer ticks,
and cpuidle44xx switches to that mode at boot time.  However, there is
nothing to switch from periodic mode local timers after a hotplug
operation.

We call tick_broadcast_enter() in omap_enter_idle_coupled(), which one
would expect would take care of the issue, but internally this only
deals with one-shot local timers - tick_broadcast_enable() on the other
hand only deals with periodic local timers.  So, we need to call both.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
[tony@atomide.com: just standardized the subject line]
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-02-07 07:48:22 -08:00
Marc Zyngier
309a205688 arm: KVM: Add missing kvm_stage2_has_pmd() helper
Fixup 32bit by providing the now required helper.

Cc: Suzuki Poulose <suzuki.poulose@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-02-07 11:44:47 +00:00
Marc Zyngier
20589c8cc4 arm/arm64: KVM: Don't panic on failure to properly reset system registers
Failing to properly reset system registers is pretty bad. But not
quite as bad as bringing the whole machine down... So warn loudly,
but slightly more gracefully.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Christoffer Dall <christoffer.dall@arm.com>
2019-02-07 11:44:46 +00:00
Marc Zyngier
358b28f09f arm/arm64: KVM: Allow a VCPU to fully reset itself
The current kvm_psci_vcpu_on implementation will directly try to
manipulate the state of the VCPU to reset it.  However, since this is
not done on the thread that runs the VCPU, we can end up in a strangely
corrupted state when the source and target VCPUs are running at the same
time.

Fix this by factoring out all reset logic from the PSCI implementation
and forwarding the required information along with a request to the
target VCPU.

Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
2019-02-07 11:44:13 +00:00
Jerome Brunet
57bf684f15 ARM: meson: remove COMMON_CLK_AMLOGIC selection
Selecting COMMON_CLK_AMLOGIC is not required as it is already selected
by the SoC clock controller driver

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-02-06 19:53:02 -08:00
Arnd Bergmann
48166e6ea4 y2038: add 64-bit time_t syscalls to all 32-bit architectures
This adds 21 new system calls on each ABI that has 32-bit time_t
today. All of these have the exact same semantics as their existing
counterparts, and the new ones all have macro names that end in 'time64'
for clarification.

This gets us to the point of being able to safely use a C library
that has 64-bit time_t in user space. There are still a couple of
loose ends to tie up in various areas of the code, but this is the
big one, and should be entirely uncontroversial at this point.

In particular, there are four system calls (getitimer, setitimer,
waitid, and getrusage) that don't have a 64-bit counterpart yet,
but these can all be safely implemented in the C library by wrapping
around the existing system calls because the 32-bit time_t they
pass only counts elapsed time, not time since the epoch. They
will be dealt with later.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
2019-02-07 00:13:28 +01:00
Arnd Bergmann
d33c577ccc y2038: rename old time and utime syscalls
The time, stime, utime, utimes, and futimesat system calls are only
used on older architectures, and we do not provide y2038 safe variants
of them, as they are replaced by clock_gettime64, clock_settime64,
and utimensat_time64.

However, for consistency it seems better to have the 32-bit architectures
that still use them call the "time32" entry points (leaving the
traditional handlers for the 64-bit architectures), like we do for system
calls that now require two versions.

Note: We used to always define __ARCH_WANT_SYS_TIME and
__ARCH_WANT_SYS_UTIME and only set __ARCH_WANT_COMPAT_SYS_TIME and
__ARCH_WANT_SYS_UTIME32 for compat mode on 64-bit kernels. Now this is
reversed: only 64-bit architectures set __ARCH_WANT_SYS_TIME/UTIME, while
we need __ARCH_WANT_SYS_TIME32/UTIME32 for 32-bit architectures and compat
mode. The resulting asm/unistd.h changes look a bit counterintuitive.

This is only a cleanup patch and it should not change any behavior.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
2019-02-07 00:13:28 +01:00
Arnd Bergmann
00bf25d693 y2038: use time32 syscall names on 32-bit
This is the big flip, where all 32-bit architectures set COMPAT_32BIT_TIME
and use the _time32 system calls from the former compat layer instead
of the system calls that take __kernel_timespec and similar arguments.

The temporary redirects for __kernel_timespec, __kernel_itimerspec
and __kernel_timex can get removed with this.

It would be easy to split this commit by architecture, but with the new
generated system call tables, it's easy enough to do it all at once,
which makes it a little easier to check that the changes are the same
in each table.

Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-02-07 00:13:28 +01:00
Niklas Cassel
97131f85c0 ARM: dts: qcom: ipq4019: Fix MSI IRQ type
The databook clearly states that the MSI IRQ (msi_ctrl_int) is a level
triggered interrupt.

The msi_ctrl_int will be high for as long as any MSI status bit is set,
thus the IRQ type should be set to IRQ_TYPE_LEVEL_HIGH, causing the
IRQ handler to keep getting called, as long as any MSI status bit is set.

A git grep shows that ipq4019 is the only SoC using snps,dw-pcie that has
configured this IRQ incorrectly.

Not having the correct IRQ type defined will cause us to lose interrupts,
which in turn causes timeouts in the PCIe endpoint drivers.

Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
2019-02-06 15:53:17 -06:00
Linus Walleij
01dc79cd6f
regulator: fixed/gpio: Pull inversion/OD into gpiolib
This pushes the handling of inversion semantics and open drain
settings to the GPIO descriptor and gpiolib. All affected board
files are also augmented.

This is especially nice since we don't have to have any
confusing flags passed around to the left and right littering
the fixed and GPIO regulator drivers and the regulator core.
It is all just very straight-forward: the core asks the GPIO
line to be asserted or deasserted and gpiolib deals with the
rest depending on how the platform is configured: if the line
is active low, it deals with that, if the line is open drain,
it deals with that too.

Cc: Alexander Shiyan <shc_work@mail.ru> # i.MX boards user
Cc: Haojian Zhuang <haojian.zhuang@gmail.com> # MMP2 maintainer
Cc: Aaro Koskinen <aaro.koskinen@iki.fi> # OMAP1 maintainer
Cc: Tony Lindgren <tony@atomide.com> # OMAP1,2,3 maintainer
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com> # EM-X270 maintainer
Cc: Robert Jarzmik <robert.jarzmik@free.fr> # EZX maintainer
Cc: Philipp Zabel <philipp.zabel@gmail.com> # Magician maintainer
Cc: Petr Cvek <petr.cvek@tul.cz> # Magician
Cc: Robert Jarzmik <robert.jarzmik@free.fr> # PXA
Cc: Paul Parsons <lost.distance@yahoo.com> # hx4700
Cc: Daniel Mack <zonque@gmail.com> # Raumfeld maintainer
Cc: Marc Zyngier <marc.zyngier@arm.com> # Zeus maintainer
Cc: Geert Uytterhoeven <geert+renesas@glider.be> # SuperH pinctrl/GPIO maintainer
Cc: Russell King <rmk+kernel@armlinux.org.uk> # SA1100
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Janusz Krzysztofik <jmkrzyszt@gmail.com> #OMAP1 Amstrad Delta
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-02-06 15:58:29 +00:00
Linus Walleij
d6cd33ad71
regulator: gpio: Convert to use descriptors
This converts the GPIO regulator driver to use decriptors only.

We have to let go of the array gpio handling: the fetched descriptors
are handled individually anyway, and the array retrieveal function
does not make it possible to retrieve each GPIO descriptor with
unique flags. Instead get them one by one.

We request the "enable" GPIO separately as before, and make sure
that this line is requested as nonexclusive since enable lines can
be shared and the regulator core expects this.

Most users of the GPIO regulator are using device tree.

There are two boards in the kernel using the gpio regulator from a
non-devicetree path: PXA hx4700 and magician. Make sure to switch
these over to use descriptors as well.

Cc: Philipp Zabel <p.zabel@pengutronix.de> # Magician
Cc: Petr Cvek <petr.cvek@tul.cz> # Magician
Cc: Robert Jarzmik <robert.jarzmik@free.fr> # PXA
Cc: Paul Parsons <lost.distance@yahoo.com> # hx4700
Cc: Kevin Hilman <khilman@baylibre.com> # Meson
Cc: Neil Armstrong <narmstrong@baylibre.com> # Meson
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-02-06 15:58:15 +00:00
Rafał Miłecki
de45b787da ARM: tegra: add "jedec,spi-nor" flash compatible binding
Starting with commit 8947e396a8 ("Documentation: dt: mtd: replace
"nor-jedec" binding with "jedec, spi-nor"") we have "jedec,spi-nor"
binding indicating support for JEDEC identification.

Use it for all flashes that are supposed to support READ ID op according
to the datasheets.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Acked-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2019-02-06 14:15:19 +01:00
Julien Thierry
3f1f3234bc irqchip/gic-v3: Switch to PMR masking before calling IRQ handler
Mask the IRQ priority through PMR and re-enable IRQs at CPU level,
allowing only higher priority interrupts to be received during interrupt
handling.

Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-02-06 10:05:18 +00:00
Julien Thierry
e99da7c6f5 arm/arm64: gic-v3: Add PMR and RPR accessors
Add helper functions to access system registers related to interrupt
priorities: PMR and RPR.

Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2019-02-06 10:05:17 +00:00
Dinh Nguyen
594f1e8a24 ARM: socfpga_defconfig: enable BLK_DEV_LOOP config option
Add CONFIG_BLK_DEV_LOOP and clean up socfpga_defconfig by make
savedefconfig.

Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
2019-02-04 09:30:34 -06:00
Ingo Molnar
98cb621081 Merge branch 'perf/urgent' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2019-02-04 08:45:42 +01:00
Vladimir Zapolskiy
49bb0b964c ARM: lpc32xx: remove platform data of ARM PL111 LCD controller
The auxilary platform data added for the LCD controller is not needed
anymore, because the controller and a connected panel are properly
described in Phytec phyCORE-LPC3250 board dts file.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:40:41 +02:00
Vladimir Zapolskiy
3e742d0d95 ARM: lpc32xx: remove platform data of ARM PL180 SD/MMC controller
The auxilary platform data added for the SD/MMC controller is redundant,
because it is obtained properly from its description in board dts files.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:40:40 +02:00
zhong jiang
801da462e8 ARM: lpc32xx: Use kmemdup to replace duplicating its implementation
kmemdup is better than kmalloc() + memcpy(), and we do not like
open code. So just use kmemdup instead.

Signed-off-by: zhong jiang <zhongjiang@huawei.com>
[vzapolskiy: resolved a merge conflict]
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:40:09 +02:00
Vladimir Zapolskiy
0293adf76a ARM: dts: lpc32xx: ea3250: beautify gpio keys children nodes
Regarding the 'gpio_keys' device node a dtc reports a couple of
warnings:

  Warning (avoid_unnecessary_addr_size): /gpio_keys: unnecessary
  #address-cells/#size-cells without "ranges" or child "reg" property

  Warning (unit_address_vs_reg): /gpio_keys/button@21: node has
  a unit name, but no reg property

The change fixes these issues and adds empty lines between adjacent
children device nodes. The device node itself is renamed by substituting
an underscore by hyphen to follow the standard naming convention
of device tree nodes.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:37:43 +02:00
Vladimir Zapolskiy
ec54b138b1 ARM: dts: lpc32xx: ea3250: add unit address to memory device node
The change adds a unit address to memory device node, the issue was
reported as a unit_address_vs_reg warning by dtc.

Root device node properties #address-cells and #size-cells were
removed as inherited from lpc32xx.dtsi.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:37:34 +02:00
Vladimir Zapolskiy
e5d48e7db1 ARM: dts: lpc32xx: phy3250: add unit address to memory device node
The change adds a unit address to memory device node, the issue was
reported as a unit_address_vs_reg warning by dtc.

Root device node properties #address-cells and #size-cells were
removed as inherited from lpc32xx.dtsi.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:37:26 +02:00
Vladimir Zapolskiy
3d48cda9dc ARM: dts: lpc32xx: phy3250: setup LCD controller to panel interface
The change adds description of Sharp LQ035Q7DB03 3.5" 320x240 TFT panel,
which is connected to Phytec phyCORE-LPC3250 board, ARM PrimeCell PL111
LCD controller on NXP LPC3250 SoC gets its configuration appropriately
to support graphics output to the panel.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:37:07 +02:00
Vladimir Zapolskiy
55ff232497 ARM: dts: lpc32xx: phy3250: remove regulators umbrella device node
The originally added 'regulators' device node has a number of flaws,
to name a few its children has unit addresses but no reg properties,
the regulators are not captured by a device driver due to a missing
'simple-bus' compatible, the regulator names are selected by killing
either alphabetical order or device node grouping property.

The change removes 'regulators' device node and renames the regulators
and labels.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:36:54 +02:00
Vladimir Zapolskiy
dc141b99fc ARM: dts: lpc32xx: phy3250: fix SD card regulator voltage
The fixed voltage regulator on Phytec phyCORE-LPC3250 board, which
supplies SD/MMC card's power, has a constant output voltage level
of either 3.15V or 3.3V, the actual value depends on JP4 position,
the power rail is referenced as VCC_SDIO in the board hardware manual.

Fixes: d06670e962 ("arm: dts: phy3250: add SD fixed regulator")
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:36:45 +02:00
Vladimir Zapolskiy
30fc01bae3 ARM: dts: lpc32xx: fix ARM PrimeCell LCD controller clocks property
The originally added ARM PrimeCell PL111 clocks property misses
the required "clcdclk" clock, which is the same as a clock to enable
the LCD controller on NXP LPC3230 and NXP LPC3250 SoCs.

Fixes: 93898eb775 ("arm: dts: lpc32xx: add clock properties to device nodes")
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:36:30 +02:00
Vladimir Zapolskiy
7a0790a412 ARM: dts: lpc32xx: fix ARM PrimeCell LCD controller variant
ARM PrimeCell PL111 LCD controller is found on On NXP LPC3230
and LPC3250 SoCs variants, the original reference in compatible
property to an older one ARM PrimeCell PL110 is invalid.

Fixes: e04920d9ef ("ARM: LPC32xx: DTS files for device tree conversion")
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:36:20 +02:00
Vladimir Zapolskiy
489261c45f ARM: dts: lpc32xx: reparent keypad controller to SIC1
After switching to a new interrupt controller scheme by separating SIC1
and SIC2 from MIC interrupt controller just one SoC keypad controller
was not taken into account, fix it now:

  WARNING: CPU: 0 PID: 1 at kernel/irq/irqdomain.c:524 irq_domain_associate+0x50/0x1b0
  error: hwirq 0x36 is too large for interrupt-controller@40008000
  ...
  lpc32xx_keys 40050000.key: failed to get platform irq
  lpc32xx_keys: probe of 40050000.key failed with error -22

Fixes: 9b8ad3fb81 ("ARM: dts: lpc32xx: reparent SIC1 and SIC2 interrupts from MIC")
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:35:24 +02:00
Vladimir Zapolskiy
3e88bc38b9 ARM: dts: lpc32xx: add required clocks property to keypad device node
NXP LPC32xx keypad controller requires a clock property to be defined.

The change fixes the driver initialization problem:

  lpc32xx_keys 40050000.key: failed to get clock
  lpc32xx_keys: probe of 40050000.key failed with error -2

Fixes: 93898eb775 ("arm: dts: lpc32xx: add clock properties to device nodes")
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:35:18 +02:00
Vladimir Zapolskiy
623cdcc76d ARM: dts: Add DT for MYIR Tech MYD-LPC4357 Development Board
Add support for MYIR Tech MYD-LPC4357 Development Board and
MY-LCD70TP-C 7" TFT LCD module with Innolux AT070TN82 panel.

The board contains quite rich periferals, the list features
NXP LPC4357 SoC, 32 MB SDRAM, 4 MB SPI Flash, audio input/output
interface, LCD panel, micro SD card slot, USB, USB OTG, Ethernet,
2 CAN ports, 4 UARTs, I2C and SPI interfaces routed to external
interface.

More information can be found on http://www.myirtech.com/list.asp?id=422

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:32:19 +02:00
Mathieu Malaterre
3e3380d067 ARM: dts: lpc32xx: Remove leading 0x and 0s from bindings notation
Improve the DTS files by removing all the leading "0x" and zeros to fix
the following dtc warnings:

Warning (unit_address_format): Node /XXX unit name should not have leading "0x"

and

Warning (unit_address_format): Node /XXX unit name should not have leading 0s

Converted using the following command:

find . -type f \( -iname *.dts -o -iname *.dtsi \) -exec sed -i -e "s/@\([0-9a-fA-FxX\.;:#]+\)\s*{/@\L\1 {/g" -e "s/@0x\(.*\) {/@\1 {/g" -e "s/@0+\(.*\) {/@\1 {/g" {} +

For simplicity, two sed expressions were used to solve each warnings
separately.

To make the regex expression more robust a few other issues were resolved,
namely setting unit-address to lower case, and adding a whitespace before
the opening curly brace:

https://elinux.org/Device_Tree_Linux#Linux_conventions

This will solve as a side effect warning:

Warning (simple_bus_reg): Node /XXX@<UPPER> simple-bus unit address format error, expected "<lower>"

This is a follow up to commit 4c9847b737 ("dt-bindings: Remove leading 0x from bindings notation")

Reported-by: David Daney <ddaney@caviumnetworks.com>
Suggested-by: Rob Herring <robh@kernel.org>
Signed-off-by: Mathieu Malaterre <malat@debian.org>
[vzapolskiy: fixed commit message to pass checkpatch.pl test]
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:31:23 +02:00
Vladimir Zapolskiy
25dc2e0bd2 ARM: defconfig: lpc32xx: enable DRM simple panel driver
Phytec phyCORE-LPC3250 board is equipped with a Sharp LQ035Q7DB03
3.5" QVGA TFT panel, enable simple panel device driver to get it
supported in the kernel image by default.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:25:42 +02:00
Vladimir Zapolskiy
daae508779 ARM: defconfig: lpc32xx: enable fixed voltage regulator support
Fixed voltage regulators are found on Phytec phyCORE-LPC3250 board,
enable the correspondent device driver by default.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-02-03 21:25:32 +02:00
Otavio Salvador
085e42fbbd ARM: dts: rockchip: Use the correct regulator properties on rv1108-evb
The following properties:

- regulator-state-enabled
- regulator-state-disabled
- regulator-state-uv

are not valid ones as per
Documentation/devicetree/bindings/regulator/regulator.txt

Fix it by using the correct properties as per the dt bindings.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-02-03 09:59:31 +01:00
Otavio Salvador
fac3311811 ARM: dts: rockchip: Use the correct regulator properties on rv1108-elgin
The following properties:

- regulator-state-enabled
- regulator-state-disabled
- regulator-state-uv

are not valid ones as per
Documentation/devicetree/bindings/regulator/regulator.txt

Fix it by using the correct properties as per the dt bindings.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-02-03 09:58:19 +01:00
Otavio Salvador
b86e2f2441 ARM: dts: rockchip: Fix vcc5/6-supply representation on rv1108-elgin
On rv1108-elgin-r1 board the RK805 VCC5 and VCC6 supplies come from
the BUCK2 regulator at 2.2V, so fix the representation in the
device tree.

While at it, rename it from vdd_cam to vdd_buck2, which is a better
name for the regulator label.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-02-03 09:57:39 +01:00
Russell King
5388a5b821 ARM: avoid Cortex-A9 livelock on tight dmb loops
machine_crash_nonpanic_core() does this:

	while (1)
		cpu_relax();

because the kernel has crashed, and we have no known safe way to deal
with the CPU.  So, we place the CPU into an infinite loop which we
expect it to never exit - at least not until the system as a whole is
reset by some method.

In the absence of erratum 754327, this code assembles to:

	b	.

In other words, an infinite loop.  When erratum 754327 is enabled,
this becomes:

1:	dmb
	b	1b

It has been observed that on some systems (eg, OMAP4) where, if a
crash is triggered, the system tries to kexec into the panic kernel,
but fails after taking the secondary CPU down - placing it into one
of these loops.  This causes the system to livelock, and the most
noticable effect is the system stops after issuing:

	Loading crashdump kernel...

to the system console.

The tested as working solution I came up with was to add wfe() to
these infinite loops thusly:

	while (1) {
		cpu_relax();
		wfe();
	}

which, without 754327 builds to:

1:	wfe
	b	1b

or with 754327 is enabled:

1:	dmb
	wfe
	b	1b

Adding "wfe" does two things depending on the environment we're running
under:
- where we're running on bare metal, and the processor implements
  "wfe", it stops us spinning endlessly in a loop where we're never
  going to do any useful work.
- if we're running in a VM, it allows the CPU to be given back to the
  hypervisor and rescheduled for other purposes (maybe a different VM)
  rather than wasting CPU cycles inside a crashed VM.

However, in light of erratum 794072, Will Deacon wanted to see 10 nops
as well - which is reasonable to cover the case where we have erratum
754327 enabled _and_ we have a processor that doesn't implement the
wfe hint.

So, we now end up with:

1:      wfe
        b       1b

when erratum 754327 is disabled, or:

1:      dmb
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        wfe
        b       1b

when erratum 754327 is enabled.  We also get the dmb + 10 nop
sequence elsewhere in the kernel, in terminating loops.

This is reasonable - it means we get the workaround for erratum
794072 when erratum 754327 is enabled, but still relinquish the dead
processor - either by placing it in a lower power mode when wfe is
implemented as such or by returning it to the hypervisior, or in the
case where wfe is a no-op, we use the workaround specified in erratum
794072 to avoid the problem.

These as two entirely orthogonal problems - the 10 nops addresses
erratum 794072, and the wfe is an optimisation that makes the system
more efficient when crashed either in terms of power consumption or
by allowing the host/other VMs to make use of the CPU.

I don't see any reason not to use kexec() inside a VM - it has the
potential to provide automated recovery from a failure of the VMs
kernel with the opportunity for saving a crashdump of the failure.
A panic() with a reboot timeout won't do that, and reading the
libvirt documentation, setting on_reboot to "preserve" won't either
(the documentation states "The preserve action for an on_reboot event
is treated as a destroy".)  Surely it has to be a good thing to
avoiding having CPUs spinning inside a VM that is doing no useful
work.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 22:05:50 +00:00
Russell King
6213f70e7c ARM: smp: remove arch-provided "pen_release"
Consolidating the "pen_release" stuff amongst the various SoC
implementations gives credence to having a CPU holding pen for
secondary CPUs.  However, this is far from the truth.

Many SoC implementations cargo-cult copied various bits of the pen
release implementation from the initial Realview/Versatile Express
implementation without understanding what it was or why it existed.
The reason it existed is because these are _development_ platforms,
and some board firmware is unable to individually control the
startup of secondary CPUs.  Moreover, they do not have a way to
power down or reset secondary CPUs for hot-unplug.  Hence, the
pen_release implementation was designed for ARM Ltd's development
platforms to provide a working implementation, even though it is
very far from what is required.

It was decided a while back to reduce the duplication by consolidating
the "pen_release" variable, but this only made the situation worse -
we have ended up with several implementations that read this variable
but do not write it - again, showing the cargo-cult mentality at work,
lack of proper review of new code, and in some cases a lack of testing.

While it would be preferable to remove pen_release entirely from the
kernel, this is not possible without help from the SoC maintainers,
which seems to be lacking.  However, I want to remove pen_release from
arch code to remove the credence that having it gives.

This patch removes pen_release from the arch code entirely, adding
private per-SoC definitions for it instead, and explicitly stating
that write_pen_release() is cargo-cult copied and should not be
copied any further.  Rename write_pen_release() in a similar fashion
as well.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 22:05:23 +00:00
Russell King
70678554c4 ARM: actions: remove boot_lock and pen_release
The actions SMP implementation has several issues:

1. pen_release is only ever read and compared to -1, and is defined in
   arch/arm/kernel/smp.c to be -1.  This test will always succeed.

2. we are already guaranteed to be single threaded while bringing up a
   CPU, so the spinlock makes no sense, remove it.

3. owl_secondary_startup() is not referenced nor defined, the prototype
   is redundant, remove it.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:59:15 +00:00
Russell King
0eb037998a ARM: oxnas: remove CPU hotplug implementation
The CPU hotplug implementation on this platform is cargo-culted from
the plat-versatile implementation, and is buggy.  Once a CPU hits the
"low power" loop, it will wait for pen_release to be set to the CPU
number to wake up again - but nothing in this implementation does that.

So, once a CPU has entered cpu_die() it will never, ever leave.

Remove this useless cargo-culted implementation.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:59:15 +00:00
Russell King
d0e22329e1 ARM: qcom: remove unnecessary boot_lock
The boot_lock is something that was required for ARM development
platforms to ensure that the delay calibration worked properly.  This
is not necessary for modern platforms that have better bus bandwidth
and do not need to calibrate the delay loop for secondary cores.
Remove the boot_lock entirely.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:59:15 +00:00
Dietmar Eggemann
1b5ba35078 ARM: 8824/1: fix a migrating irq bug when hotplug cpu
Arm TC2 fails cpu hotplug stress test.

This issue was tracked down to a missing copy of the new affinity
cpumask for the vexpress-spc interrupt into struct
irq_common_data.affinity when the interrupt is migrated in
migrate_one_irq().

Fix it by replacing the arm specific hotplug cpu migration with the
generic irq code.

This is the counterpart implementation to commit 217d453d47 ("arm64:
fix a migrating irq bug when hotplug cpu").

Tested with cpu hotplug stress test on Arm TC2 (multi_v7_defconfig plus
CONFIG_ARM_BIG_LITTLE_CPUFREQ=y and CONFIG_ARM_VEXPRESS_SPC_CPUFREQ=y).
The vexpress-spc interrupt (irq=22) on this board is affine to CPU0.
Its affinity cpumask now changes correctly e.g. from 0 to 1-4 when
CPU0 is hotplugged out.

Suggested-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:54:49 +00:00
Vladimir Murzin
49e30bd07d ARM: 8832/1: NOMMU: Limit visibility for CONFIG_FLASH_{MEM_BASE,SIZE}
It looks like usage of CONFIG_FLASH_{MEM_BASE,SIZE} is limited with:

arch/arm/mm/proc-arm740.S
arch/arm/mm/proc-arm940.S
arch/arm/mm/proc-arm946.S

So it might look confusing to see the option for anything except these.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:46 +00:00
Peng Hao
49f3023506 ARM: 8831/1: NOMMU: pmsa-v8: remove unneeded semicolon
Remove unneeded semicolon.

[vladimir] proper tags in subject line

Signed-off-by: Peng Hao <peng.hao2@zte.com.cn>
Acked-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:45 +00:00
Vladimir Murzin
72cd4064fc ARM: 8830/1: NOMMU: Toggle only bits in EXC_RETURN we are really care of
ARMv8M introduces support for Security extension to M class, among
other things it affects exception handling, especially, encoding of
EXC_RETURN.

The new bits have been added:

Bit [6]	Secure or Non-secure stack
Bit [5]	Default callee register stacking
Bit [0]	Exception Secure

which conflicts with hard-coded value of EXC_RETURN:

In fact, we only care of few bits:

Bit [3]	 Mode (0 - Handler, 1 - Thread)
Bit [2]	 Stack pointer selection (0 - Main, 1 - Process)

We can toggle only those bits and left other bits as they were on
exception entry.

It is basically, what patch does - saves EXC_RETURN when we do
transition form Thread to Handler mode (it is first svc), so later
saved value is used instead of EXC_RET_THREADMODE_PROCESSSTACK.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:19 +00:00
Stefan Agner
eb7ff9023e ARM: 8829/1: spinlock: use unified assembler language syntax
Convert the conditional infix to a postfix to make sure this inline
assembly is unified syntax. Since gcc assumes non-unified syntax
when emitting ARM instructions, make sure to define the syntax as
unified.

This allows to use LLVM's integrated assembler.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:15 +00:00
Stefan Agner
32fdb046ac ARM: 8828/1: uaccess: use unified assembler language syntax
Convert the conditional infix to a postfix to make sure this inline
assembly is unified syntax. Since gcc assumes non-unified syntax
when emitting ARM instructions, make sure to define the syntax as
unified.

This allows to use LLVM's integrated assembler.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:14 +00:00
Stefan Agner
baf2df8e15 ARM: 8827/1: fix argument count to match macro definition
The macro str8w takes 10 arguments, abort being the 10th. In this
particular instantiation the abort argument is passed as 11th
argument leading to an error when using LLVM's integrated
assembler:
  <instantiation>:46:47: error: too many positional arguments
    str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f
                                                ^
  arch/arm/lib/copy_template.S:277:5: note: while in macro instantiation
  18: forward_copy_shift pull=24 push=8
      ^

The argument is not used in the macro hence this does not change
code generation.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Reviewed-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:13 +00:00
Doug Berger
071d184a19 ARM: 8826/1: mm: initialize pfn limits with find_limits()
The max_low_pfn value must be set before sparse_init() is called to
keep the early memblock allocations and frees balanced for kmemleak
initialization when sparsemem is enabled.

This commit accomplishes that by replacing the local variables min,
max_low, and max_high with the global limit variables min_low_pfn,
max_low_pfn, and max_pfn respectively in bootmem_init(). The global
variables are initialized directly by find_limits() and used in the
remainder of the function.

Fixes: 9099daed9c ("mm: kmemleak: avoid using __va() on addresses that don't have a lowmem mapping")
Cc: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Doug Berger <opendmb@gmail.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:12 +00:00
Vincent Whitchurch
58ca33824f ARM: 8823/1: Implement pgprot_device()
This is used when mmapping the PCI resource* files in sys.  Because ARM
currently lacks an implementation of pgprot_device(), it falls back to
pgprot_uncached() (Strongly Ordered), but we should be able to use
Device memory instead.

Doing this speeds up large writes to the resource files by about 40% on
one of my systems.  It also ensures that mmaps on these resources use
the same memory type as ioremap().

Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:11 +00:00
Geert Uytterhoeven
fec9eac659 ARM: 8822/1: smp_twd: Remove legacy TWD registration
As of commit 7484c727b6 ("ARM: realview: delete the RealView board
files"), the ARM Timer and Watchdog Unit is instantiated from DT only.
Moreover, the driver is selected from ARCH_MULTIPLATFORM platforms only,
which implies OF, TIMER_OF, and COMMON_CLK.

Hence remove all unused legacy infrastructure from the driver.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:10 +00:00
Geert Uytterhoeven
8f433ec4d0 ARM: 8821/1: Correct meaning of SCU in HAVE_ARM_SCU help txt
According to the ARM Cortex-A5 and Cortex-A9 Technical Reference
Manuals, SCU stands for "Snoop Control Unit".

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:10 +00:00
Geert Uytterhoeven
1c31d4e96b ARM: 8820/1: mm: Stop printing the virtual memory layout
Since commit ad67b74d24 ("printk: hash addresses printed with
%p"), the virtual memory layout printed during boot up contains "ptrval"
instead of actual addresses:

    Memory: 501296K/524288K available (6144K kernel code, 528K rwdata, 1944K rodata, 1024K init, 7584K bss, 22992K reserved, 0K cma-reserved)
    Virtual kernel memory layout:
	vector  : 0xffff0000 - 0xffff1000   (   4 kB)
	fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
	vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
	lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
	modules : 0xbf000000 - 0xc0000000   (  16 MB)
	  .text : 0x(ptrval) - 0x(ptrval)   (7136 kB)
	  .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
	  .data : 0x(ptrval) - 0x(ptrval)   ( 529 kB)
	   .bss : 0x(ptrval) - 0x(ptrval)   (7585 kB)

Instead of changing the printing to "%px", and leaking virtual memory
layout information again, just remove the printing completely, cfr. e.g.
commits 071929dbdd ("arm64: Stop printing the virtual memory
layout") and  31833332f7 ("m68k/mm: Stop printing the virtual
memory layout").

All interesting information (actual section sizes) is already printed by
mem_init_print_info() just above anyway.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:08 +00:00
Nathan Chancellor
091bb549f7 ARM: 8819/1: Remove '-p' from LDFLAGS
This option is not supported by lld:

    ld.lld: error: unknown argument: -p

This has been a no-op in binutils since 2004 (see commit dea514f51da1 in
that tree). Given that the lowest officially supported of binutils for
the kernel is 2.20, which was released in 2009, nobody needs this flag
around so just remove it. Commit 1a381d4a0a ("arm64: remove no-op -p
linker flag") did the same for arm64.

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Nicolas Pitre <nico@linaro.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:07 +00:00
Wolfram Sang (Renesas)
4a4d68fc26 ARM: 8818/1: dma-mapping: update comment about handling dma_ops when detaching from IOMMU
Update the comment because we don't set the pointer to NULL anymore.
Also use the correct pointer name 'dma_ops' instead of 'dma_map_ops'.

Fixes: 1874619a7d ("ARM: dma-mapping: Set proper DMA ops in arm_iommu_detach_device()")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:06 +00:00
Ard Biesheuvel
9ec5cd0a40 ARM: 8817/1: mm: skip cleaning of idmap page tables on LPAE capable cores
Currently, init_static_idmap() installs some page table entries to
cover the identity mapped part of the kernel image (which is only
about 160 bytes in size in a multi_v7_defconfig Thumb2 build), and
calls flush_cache_louis() to ensure that the updates are visible
to the page table walker on the same core.

When running under virtualization, flush_cache_louis() may take more
than 10 seconds to complete:

[    0.108192] Setting up static identity map for 0x40300000 - 0x403000a0
[   13.078127] rcu: Hierarchical SRCU implementation.

This is due to the fact that set/way ops are not virtualizable, and so
KVM may trap each one, resulting in a substantial delay.

Since only LPAE capable CPUs may execute under virtualization, and
considering that LPAE capable CPUs are guaranteed to have cache
coherent page table walkers (per the architecture), let's only
perform this cache maintenance on non-LPAE cores.

Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:05 +00:00
Florian Fainelli
0a37cac509 This pull request adds support for the new Raspberry Pi 3 A+ and
the missing GPIO labels for RPi 2/3. Additionally it contains
 some minor DT fixes.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJcVItSAAoJEFXEMs9xUwyN1n4P/0krtsrurlcJNVRj1fGOLaLf
 B7qeX/IdSPLWWY+ngcERgNYjPCAHbhlYBZ66erijVITycfJmnLO31NkTL0f2vTdB
 y6soXShGErEIyCBe8A6sGtZDigju4w55stqazIGN5a8roFYNSCQ9iaUIP0ZClrLL
 3XQMdKK6elwN3e2XkqHENErwe5rT8VZxbEK8TJAMZ0OGN2c1BomYARWJPwPu9lJl
 60U2Nlt4hSTog0BKD53BGASksV4mt7/GTIZMXoUjyBRgYvIiLi92AgNtH8RTO0qq
 aby4gksqgZOv4vQF0fDgxuOTfh56K5ujjeiURVCd5vGwTPTc3lzRkbw0l/nAGCua
 sBYe39H3HJhtz8j9lt9OXx60AdJctbuyHCj4wmKtn3fvxacFemL3Q+/VsRDKRDZi
 SARQUMR2uOTiIdhSYcKUKeqXtRRm0VggbFln/3SCD9cIkD9qBrthoyXVtXwfzI1q
 xU+2I6zIjatn2PqTy7B5UVnGcV4W2KMJwC4IjQuqlP37b0gmNcOOvap3Ij4hgfIq
 oov+2A6jatTGoREQRzHwgz91FPmFOSHp9CjyRuMhCPj1ovQRM6UqOditwY1jGRB+
 SmfnfTp/EFHV0K5sUpx7Clb7TFNmfi4XOFwEZA1A0/NRTkABoJNtMvS5LyZp9ua1
 sOf8wj+5rzXi4Ed/2kxv
 =kLKJ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAlxUnTIACgkQh9CWnEQH
 BwQZmhAApiiUtHKXRDyuLo68veEZGV4xbdQOoZmENM4y/ugxqanFWBQ092mYmiPJ
 z4ZB/ace+dn2+1l+dXkH3LiK13ROwXGWCTnCE6mHAM4x5gxBtEAW0N45QvVa9F5K
 W5x4NU3jh4QyAcdoigPePvFKWPVkqvy1vOCDu8+9KYrhSggHo8ghZKiO9mbaGK/x
 smIwEF/SeBwlRxNnHInOkFMtTzurENRxIy8dW5SWFbUA3BHFPLtCl1f0wP/hME5K
 Zvpwd5WFw1GM8E00WkcjhN/GTzsh4kntvTlkhkE7+K2V1C+9fGVgxbk3DVTHLp0v
 FomiYWL0ndz7DOLHLGUVxBVYa1QLeZ9ZK1MccoJS2b8Lc42qOonACaVoy+Zgl3R9
 5JttT4ep1PyK2pmiwNjNKJxyWrjfNv4vbrkgTZA6ZGFv7zjucS2MsXq+o/9yFkDL
 7HJ4v8L16P3aFLRze0Y/tW6Cpv8G0KLrWKnRD2nlSwfJwx/5w4BC85Odiiivbx4p
 owcawvvhS9jGqAKoVOt9UAeHZ3f75ORp5WDBwsmnTL3kBUg0kTqgOFEaC3u4LMJj
 PAV7EqY8kFVg03fwi2T/23fsq7Z6dRjow1WoFpKJfvrv7PNJb4fbwUR4Y1HNTlhG
 HISaOFMcsWsOROgcvIq9RuM4n2tZKWyR4GXw1bSSkfacaben+IU=
 =a1d7
 -----END PGP SIGNATURE-----

Merge tag 'tags/bcm2835-dt-next-2019-02-01' into devicetree/next

This pull request adds support for the new Raspberry Pi 3 A+ and
the missing GPIO labels for RPi 2/3. Additionally it contains
some minor DT fixes.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2019-02-01 11:25:26 -08:00
Stuart Menefy
4bdf2f3f20 ARM: exynos: Fix timeout when booting secondary CPUs
Without this fix the loop waiting for the timeout exits, but the
subsequent test to see if the timeout occurred fails.

Signed-off-by: Stuart Menefy <stuart.menefy@mathembedded.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2019-02-01 20:07:47 +01:00
Stefan Wahren
ab1b4ef966 ARM: dts: bcm2835-rpi-zero-w: Drop unnecessary pinctrl
There is no need to specify a pinctrl for the reset GPIO. So we better
remove this avoid a potential conflict between pinctrl and pwrseq
after the pinmux driver has been changed to strict:

pinctrl-bcm2835 20200000.gpio: pin gpio41 already requested by wifi-pwrseq;
cannot claim for pinctrl-bcm2835:499
pinctrl-bcm2835 20200000.gpio: pin-41 (pinctrl-bcm2835:499) status -22
pwrseq_simple: probe of wifi-pwrseq failed with error -22

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2019-02-01 11:56:32 +01:00
Stefan Wahren
0b559d5c5b ARM: dts: bcm283x: Add missing GPIO line names
The GPIO sysfs is deprecated and disabled in the defconfig files.
So in order to motivate the usage of the new GPIO character device API
add the missing GPIO line names for Raspberry Pi 2 and 3. In the lack
of full schematics i would leave all undocumented pins as unnamed.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2019-02-01 11:56:21 +01:00
Stefan Wahren
ef528c37e4 ARM: dts: bcm2837-rpi-3-b-plus: Clarify label for STATUS_LED
The RPI 3 B+ provides control to both LEDs (PWR and ACT). So append
the first letter of the LED color (like in the schematics) in order
to clarify this.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2019-02-01 11:55:55 +01:00
Stefan Wahren
74a04e07f9 ARM: dts: bcm2837-rpi-3-b: Use consistent label for HDMI hotplug
This make the GPIO label for HDMI hotplug more consistent to the other
boards.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2019-02-01 11:55:43 +01:00
Stefan Wahren
b02d6197c2 ARM: dts: bcm2835: Fix labels for GPIO 0,1
According to the schematics for all RPis with a 40 pin header,
the GPIOs 0 and 1 are labeled as ID_SD and ID_SC. In order to
clarify that is a I2C bus, append the third letter.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2019-02-01 11:55:34 +01:00
Stefan Wahren
592f50f0f9 ARM: dts: bcm2835-rpi: Drop unnecessary #address-cells/#size-cells
Compiling the bcm2835-rpi.dtsi with W=1 leads to the following warning:

Warning (avoid_unnecessary_addr_size): /soc/firmware: unnecessary
 #address-cells/#size-cells without "ranges" or child "reg" property

Fix this by removing these unnecessary properties.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2019-02-01 11:55:22 +01:00
Stefan Wahren
f090e1bd7b ARM: dts: bcm283x: Fix DTC warning for memory node
Compiling the bcm283x DTS with W=1 leads to the following warning:

Warning (unit_address_vs_reg): /memory: node has a reg or ranges property,
but no unit name

Fix this by adding the unit address.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2019-02-01 11:55:11 +01:00
Stefan Wahren
0040cf8dc9 ARM: dts: add Raspberry Pi 3 A+
The Raspberry Pi 3 A+ is similar to the Pi 3 B+ but has only 512 MB RAM,
1 USB 2.0 port and no Ethernet.

Compared to the Raspberry Pi 3 B it isn't possible to control BT_ON and
WL_ON separately.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Acked-by: Eric Anholt <eric@anholt.net>
2019-02-01 11:54:51 +01:00
David Hernandez Sanchez
38576a3205 ARM: dts: stm32: Enable thermal sensor support on STM32MP157c-ed1
Enable STM32 Digital Thermal Sensor (dts) driver for STM32MP157c-ed1 board.

Signed-off-by: David Hernandez Sanchez <david.hernandezsanchez@st.com>
Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com>
2019-02-01 11:48:42 +01:00
Cezary Gapinski
560ff039b5 ARM: dts: stm32: add SPI support on STM32F429 SoC
This patch adds all SPI instances of the STM32F429 SoC.

Signed-off-by: Cezary Gapinski <cezary.gapinski@gmail.com>
Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com>
2019-02-01 11:46:26 +01:00
Eric Anholt
e1dc2b2e1b ARM: bcm283x: Switch V3D over to using the PM driver instead of firmware.
The GRAFX domain only contains V3D, and this driver should be the only
accessor of V3D (firmware usage gets disabled when V3D is in the DT),
so we can safely make Linux control the GRAFX and GRAFX_V3D power
domains.

Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
2019-02-01 10:34:32 +01:00
Eric Anholt
81fc035f07 ARM: bcm283x: Extend the WDT DT node out to cover the whole PM block. (v4)
It was covering part of the PM block's range, up to the WDT regs.  To
support the rest of the PM block's functionality, we need the full
register range plus the AXI Async Bridge regs for PM sequencing.

This doesn't convert any of the consumers over to the new binding yet,
since we will need to be careful in coordinating our usage of firmware
services that might power domains on and off versus the bcm2835-pm
driver's access of those same domains.

Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
2019-02-01 10:34:16 +01:00
Christoph Hellwig
cfced78696 dma-mapping: remove the default map_resource implementation
Instead provide a proper implementation in the direct mapping code, and
also wire it up for arm and powerpc, leaving an error return for all the
IOMMU or virtual mapping instances for which we'd have to wire up an
actual implementation

Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
2019-02-01 09:56:15 +01:00
Linus Torvalds
44e56f325b pci-v5.0-fixes-3
-----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEEgMe7l+5h9hnxdsnuWYigwDrT+vwFAlxTZr4UHGJoZWxnYWFz
 QGdvb2dsZS5jb20ACgkQWYigwDrT+vxBCQ/9E34gckeMBFr6/gFMtG+E0d4eP6/j
 VET74JyTSZRuY76TC5JT8hRrkKJCbNmBUIBV8Qm6YegeWm/UAfWwnArXJRrVq2OJ
 sbEvDzLlctkXMqSFVKyOPA3FCPW61W3CHcEwoSrBUkEDnyRxkT0cIVU/T+G+7QJy
 F80rgKxxrtGBj2eX/ibWr61Q4sTup00nqa4q8EJ+Nl1RV3jQAv3AbdP8CC95wTbD
 pziJwQviMOkiXiI85P3QWdKTtDDIlzoqauRD/YVkxxNZ1MBuaksVoDFLdVLrHiic
 nMTQTSdnf9tEAzrMrZayaSHo2Qsr8z66Euo8Ra7aarYwDsEEw+eIgevXoaSktc04
 7BqPFvhB0iz8urbmt5fROXkCaTqPo2tm0wZf96xnyfaMDwBaIB3WfJjMlTMvIv+Y
 iOajRZCIJPzejauJDQa042Qo6eHfeFOKPSgAwM+lNgBks+mL/yp2XQ93/VFGAemU
 AmvgsAemBREnyGWK1+vY5eRwsOwmoxufugs94Uo3n46/fIEvVYEjyPx0PkHKzjI+
 IjS/Zh1PAfy4fSfuA4sGOSR9cRutvsE3ovJzRgps6DFf8/ALJjDGRcXar+eJBK0a
 g6U8rl+Qd6DJpbSw5bIqjYt1AjNiAu4npFczun++X/thcxD2SoGkiJpgNJdNaBJK
 AQrMWubjYQGUvAg=
 =5CJF
 -----END PGP SIGNATURE-----

Merge tag 'pci-v5.0-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

Pull PCI fixes from Bjorn Helgaas:

 - Revert armada8k GPIO reset change that broke Macchiatobin booting
   (Baruch Siach)

 - Use actual size config reads on ARM cns3xxx (Koen Vandeputte)

 - Fix ARM cns3xxx config write alignment issue (Koen Vandeputte)

 - Fix imx6 PHY device link error checking (Leonard Crestez)

 - Fix imx6 probe failure on chips without separate PCI power domain
   (Leonard Crestez)

* tag 'pci-v5.0-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
  Revert "PCI: armada8k: Add support for gpio controlled reset signal"
  ARM: cns3xxx: Use actual size reads for PCIe
  ARM: cns3xxx: Fix writing to wrong PCI config registers after alignment
  PCI: imx: Fix checking pd_pcie_phy device link addition
  PCI: imx: Fix probe failure without power domain
2019-01-31 23:06:17 -08:00
Ard Biesheuvel
c03f3cb40b crypto: arm/crct10dif - remove dead code
Remove some code that is no longer called now that we make sure never
to invoke the SIMD routine with less that 16 bytes of input.

Reviewed-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-02-01 14:45:52 +08:00
Ard Biesheuvel
62fecf295e crypto: arm/crct10dif - revert to C code for short inputs
The SIMD routine ported from x86 used to have a special code path
for inputs < 16 bytes, which got lost somewhere along the way.
Instead, the current glue code aligns the input pointer to permit
the NEON routine to use special versions of the vld1 instructions
that assume 16 byte alignment, but this could result in inputs of
less than 16 bytes to be passed in. This not only fails the new
extended tests that Eric has implemented, it also results in the
code reading past the end of the input, which could potentially
result in crashes when dealing with less than 16 bytes of input
at the end of a page which is followed by an unmapped page.

So update the glue code to only invoke the NEON routine if the
input is at least 16 bytes.

Reported-by: Eric Biggers <ebiggers@kernel.org>
Reviewed-by: Eric Biggers <ebiggers@kernel.org>
Fixes: 1d481f1cd8 ("crypto: arm/crct10dif - port x86 SSE implementation to ARM")
Cc: <stable@vger.kernel.org> # v4.10+
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-02-01 14:44:39 +08:00
Hao Dong
40a1792336 ARM: dts: BCM5301X: Add basic DT for Phicomm K3
This router has BCM4709C0 SoC, 128 MiB NAND flash (MX30LF1G18AC-TI),
512 MiB memory and 3 x LAN and 1 x WAN ports. WiFi chips are
BCM4366C0 x 2. The router has a small LCD and 3 capactive keys driven by
a PIC microcontroller, which is in turn wired to UART1 of main board.

Signed-off-by: Hao Dong <halbertdong@gmail.com>
[rmilecki: drop chosen { }, fix whitespaces, update commit message]
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2019-01-31 21:06:31 -08:00
Florian Fainelli
6e2111e72e This pull request enables the V4L2 camera driver on the Pi1 defconfig.
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE/JuuFDWp9/ZkuCBXtdYpNtH8nugFAlv9sQkACgkQtdYpNtH8
 nugsMhAAq9i+cB6FMeDfVFF98KEub2q776NP0w/IN1zpvdrn1/wkrmpVPqxa8EWX
 wpGuZiEMpiOHiOGclHfb2/VtJoMfEKr4rsnegvV5TACMGk3z1RyYCgcPYvSxqtJU
 QkzY5kJTa46OPhALhv1EG6ZME6CFCzwGQPBrrM/2o1gsAj8XSw7M/FqauvKrl7BQ
 TfcZk+hs3R5vk9ZK6+1TnJa+8L3YAqWXq4i0ycSr/3m4NAQnGE+9nEpU1GGZlr0d
 6xy8uhVYEf8s97ToFts+Ql36635YbDx7jtIyf4F43gPpbIuskEC4Sm6/F18wR8uy
 sFaf4V7WO843q02cXlRqctIETDBw6QVU0G+zJgXAdWlMrwKzYLajIHThJUFNecTC
 viW62REmsqPnvelGH6fwovzr611+HVq/R0/p6cpczK+dqZ8E7A8S0RDTNCcvR/wM
 QKBENoo9F6mkIepju9Hf+pW4pdxuUlcKQT38PWmUTkdGV8hsgKOrlBDopOoYwN8H
 E6UMbAYMSdkBvjuWU8knAnny44eRMn4Ouiwga3/VK3VueTx4JE4Fs48rlRnrb0Nu
 OOOJvirOiebdsR+tN/VU/YJH0k2s7yQ8I3kpmq7XsOLj3adq0YNVysQwz25JsL3e
 HHonm5kE5Mx/mLHrubwc1uP/K70+0o9IHafLFsht0lDruR0sHB4=
 =CjGJ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAlxT02MACgkQh9CWnEQH
 BwTbfw/9F4EAfKNTK1MyTqFlkDW6MiKA1j1P+1V3CcvkqcgG5laGXRNnlf0ZSrZ+
 bvr6rPY0yPNtaGkVVl0rSNDeor+b1s6DkN3ZSZ1kaUitVkda6kqNAm75FMf3gOYy
 QJglxiPKwjKElKFC6VWkaeia7JZA9cBLOr2Ff8oPxgXl6OSrWGUspAhuYWAXqvmk
 eepEkXp+SOpMqwif0KBwIjQ1CEqxROrFF0urypltRR0wJF8VYdwLHq4m0DzguFd6
 lLZKMyjZgCBYD2xXTMPX4DnmGe30cSkk72+T8m+/tnFxnpps7i83PcwZi3RSogyM
 m/jlcmVxDTlp6ufSB+7890nGKO1kL/AtUNgjM90SwEZv/14xzyepbv7GC/Jl6958
 qyTmCE+As/mG8MTv3WbRUY6AZe2eo2Swv/wWsR2J/lMlNzkfT+BiNYWKoJXw3BL6
 zpDOmq6tKQZpIpQLZHVNo7l9E3ZH8s0buzzTVu5GWo4QA/lDV4+e90VngWUEkJw0
 Qx7mX0bJHCD4s6biGZShB1uwnV7/hApVV131AvFJ4NwzUSSx5RXhJCoEy5noy7qK
 rTD0/j034FnlSoiE409AfiWkEr5dgvLp3qDf4ytsQ+w3Nym1gguoqHs9CD6UJYXZ
 DYB33wry4jHCHwP+GPKMAhKBlhzHZN/SM41QK3lYaj49UsgIC+g=
 =qrUG
 -----END PGP SIGNATURE-----

Merge tag 'tags/bcm2835-defconfig-next-2018-11-27' into defconfig/next

This pull request enables the V4L2 camera driver on the Pi1 defconfig.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2019-01-31 21:04:22 -08:00
Koen Vandeputte
432dd7064a ARM: cns3xxx: Use actual size reads for PCIe
commit 802b7c06ad ("ARM: cns3xxx: Convert PCI to use generic config
accessors") reimplemented cns3xxx_pci_read_config() using
pci_generic_config_read32(), which preserved the property of only doing
32-bit reads.

It also replaced cns3xxx_pci_write_config() with pci_generic_config_write(),
so it changed writes from always being 32 bits to being the actual size,
which works just fine.

Given that:

- The documentation does not mention that only 32 bit access is allowed.
- Writes are already executed using the actual size
- Extensive testing shows that 8b, 16b and 32b reads work as intended

Allow read access of any size by replacing pci_generic_config_read32()
with the pci_generic_config_read() accessors.

Fixes: 802b7c06ad ("ARM: cns3xxx: Convert PCI to use generic config accessors")
Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
[lorenzo.pieralisi@arm.com: updated commit log]
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Krzysztof Halasa <khalasa@piap.pl>
Acked-by: Arnd Bergmann <arnd@arndb.de>
CC: Krzysztof Halasa <khalasa@piap.pl>
CC: Olof Johansson <olof@lixom.net>
CC: Robin Leblon <robin.leblon@ncentric.com>
CC: Rob Herring <robh@kernel.org>
CC: Russell King <linux@armlinux.org.uk>
CC: Tim Harvey <tharvey@gateworks.com>
2019-01-31 15:07:16 -06:00
Koen Vandeputte
65dbb423cf ARM: cns3xxx: Fix writing to wrong PCI config registers after alignment
Originally, cns3xxx used its own functions for mapping, reading and
writing config registers.

Commit 802b7c06ad ("ARM: cns3xxx: Convert PCI to use generic config
accessors") removed the internal PCI config write function in favor of
the generic one:

  cns3xxx_pci_write_config() --> pci_generic_config_write()

cns3xxx_pci_write_config() expected aligned addresses, being produced by
cns3xxx_pci_map_bus() while the generic one pci_generic_config_write()
actually expects the real address as both the function and hardware are
capable of byte-aligned writes.

This currently leads to pci_generic_config_write() writing to the wrong
registers.

For instance, upon ath9k module loading:

- driver ath9k gets loaded
- The driver wants to write value 0xA8 to register PCI_LATENCY_TIMER,
  located at 0x0D
- cns3xxx_pci_map_bus() aligns the address to 0x0C
- pci_generic_config_write() effectively writes 0xA8 into register 0x0C
  (CACHE_LINE_SIZE)

Fix the bug by removing the alignment in the cns3xxx mapping function.

Fixes: 802b7c06ad ("ARM: cns3xxx: Convert PCI to use generic config accessors")
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
[lorenzo.pieralisi@arm.com: updated commit log]
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Krzysztof Halasa <khalasa@piap.pl>
Acked-by: Tim Harvey <tharvey@gateworks.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
CC: stable@vger.kernel.org	# v4.0+
CC: Bjorn Helgaas <bhelgaas@google.com>
CC: Olof Johansson <olof@lixom.net>
CC: Robin Leblon <robin.leblon@ncentric.com>
CC: Rob Herring <robh@kernel.org>
CC: Russell King <linux@armlinux.org.uk>
2019-01-31 15:01:44 -06:00
Tony Lindgren
a8220ae7e7 ARM: omap2plus_defconfig: Update for moved options
These options have just moved around, let's update with make
savedefconfig to make patching the file easier.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-31 10:54:06 -08:00
Tony Lindgren
a7bfb67732 ARM: omap2plus_defconfig: Update for dropped options
These are all now selected by default so we can drop them
from omap2plus_defconfig.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-31 10:54:05 -08:00
Lukasz Luba
1531f1b24d ARM: omap2plus_defconfig: remove PROVE_LOCKING from defconfig
PROVE_LOCKING enables LOCKDEP, which causes big overhead on cache and
bus transactions.

On some ARM big.LITTLE architecutres (Exynos 5433) the overhead is really big.
The overhead can be measures using hackbench which will speed up
by x3 times (11sec -> 3.4sec).
When you check transaction on cache or buses, the results are way higher
than normal for the same hackbench test:
L1d cache invalidations: 26mln vs 4mln
L2u cache invalidations: 42mln vs 12mln
bus cyc/access: 30cyc/access vs. 20cyc/access
context switch is x3 times cheaper

Enable this option only when you have some locking issue to investigate.

Signed-off-by: Lukasz Luba <l.luba@partner.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-31 10:54:05 -08:00
Brajeswar Ghosh
7dd50e2cdf arch/arm/mach-ep93xx: Remove duplicate header
Remove mach/gpio-ep93xx.h which is included more than once

Signed-off-by: Brajeswar Ghosh <brajeswar.linux@gmail.com>
Acked-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 22:59:53 +01:00
Ard Biesheuvel
34332ef736 ARM: multi_v7_defconfig: enable GCC plugin support and structleak plugin
Enable the base GCC plugin support symbol CONFIG_GCC_PLUGINS for
multi_v7_defconfig so that builds hosted on systems that have a
supported version of GCC along with the prerequisite headers will
allow GCC plugins to be used during the build. At the moment, this
will also enable the ARM per-task stack protector plugin, since
all its remaining Kconfig dependencies are fulfilled by default.

At the same time, enable the structleak plugin. This plugin ensures
that local struct type variables are fully initialized, preventing
inadvertent leaks of kernel state if such variables are shared with
userland. This is a reasonable transformation to apply by default,
since it does not adversely affect performance, and does not affect
GCC compiler diagnostics regarding the use of uninitialized local
variables.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 22:42:08 +01:00
Linus Walleij
0e150419fd ARM: defconfig: Enable PL11x DRM driver on multi_v7
This switches the ARMv7 defconfig away from the old
fbdev driver to the new DRM driver. All machines are
now supported by the new driver.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 22:40:27 +01:00
Linus Walleij
a785670433 ARM: defconfig: axm55xx: Drop PL11x graphics driver
The defconfig for the AXM55xx includes the ARM CLCD
(PL11x) PrimeCell framebuffer driver, but the device tree
for this platform does not include this hardware, nor do I
find it likely that this chip has graphics.

Drop these config items.

Cc: John Logan <john.logan@intel.com>
Cc: Anders Roxell <anders.roxell@linaro.org>
Acked-by: Krzysztof Adamski <krzysztof.adamski@nokia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 22:38:56 +01:00
Arnd Bergmann
0d29492e1f ARMv7 Vexpress updates for v5.1
Couple of simple changes to add dynamic-power-coefficient information
 for CPUs on TC2 and fix tuple used for uart and mmci interrupts with
 lists.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAlxRlvcACgkQAEG6vDF+
 4phYSg//eL3ozXhE/L2Fo7Af8Jq36kFz9xlxzDtj6UHZOdvVgsk3hR058ujekwfL
 h0pgZ60Naqf6cq4Fg9qviFRKRsSInQ2BBJmJ2FADEZycD14obgIFwqRegGTJ/i08
 AYTRm7fm6gCVtbQGXHiSDFFvDZhfKBIG0hJF4A6umK1kWe8Wf77lRetuwGSg1Um7
 V187uO7B8b/2AFvtANJhKdN1fHkpJycnXmiLlnS7y4GVxlGd1i84RzhmyF9BUAXi
 34s0sZuwm8Tq6+DMP8hh3BBUQeb7Rdk7MvE5clcCAlQCxdKxzv4/kaAghGSSMks6
 V3A2WP/zDoC+pGLH4aObLAAxJUag6+0TmX62hXj6qSpnU0xnfXrJgfpMTHQpZ7OB
 EWu/3nH8rdEVPO1pxnJN8TRJ5ST7Q89bYoY2oP2XxkAT4GG0vdKcNfGbvM/qwzd7
 3pahbE4ewvuUznCvW+KrOTYZBbB4Q7ocjO0UbFclPEfMoQWwV3zbXu5svHp2hC7Y
 lMsR3Z7vvgNiKwXfxYpZMn02fCtVdtu7moU9WbP//PUFy8fK6RMYRKG43kNEgVGB
 qWHhAZ56yOpQ6QW/2Z6bbQUeUTBeEEoM3KB7S6nc1f6xTJkiDS6dWbhGcMBNexhC
 Af44rV+uXUF6S0VdOPmTB4hjWCHg2Pc4dkVYnvVt+SbZYXfu/84=
 =Zh3V
 -----END PGP SIGNATURE-----

Merge tag 'vexpress-updates-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/dt

ARMv7 Vexpress updates for v5.1

Couple of simple changes to add dynamic-power-coefficient information
for CPUs on TC2 and fix tuple used for uart and mmci interrupts with
lists.

* tag 'vexpress-updates-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  arm: dts: vexpress-v2p-ca15_a7: Add cpu dynamic-power-coefficient information
  ARM: dts: vexpress: use list instead of tuple for mmci interrupts
  ARM: dts: mps2: use list instead of tuple for uart interrupts

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 22:36:04 +01:00
Arnd Bergmann
9ba24e9ca7 ASPEED device tree updates for 5.1
- New machine: Inspur ON5263M5, an Intel Xeon OCP compute node
 
  - Misc device tree updates from the OpenBMC project
 
  - #iterrupt-cells fix for GPIO controller
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE+nHMAt9PCBDH63wBa3ZZB4FHcJ4FAlxRJCwACgkQa3ZZB4FH
 cJ7RwQ//b+Gd0Y/BqmaLj6SaSid100qvISm5se4FiGy23hvZ3F6cjcjO7AF75IdA
 X/q5n57MBEvADPlhr4ykhnf8ToRUK88BD20AWeiKDW08D34gsrmgkgHjq8tTyTad
 6OKzr2GQgUeNOfQfCZLatbRRmJ+fOVUpJsm3DgeTkpYPk5SlcZj/kT0hdT9meSSj
 Ej5Fb/2H+DBVMGCroHw6R7B3LDSeC5ob0zvxqLkBed4j2J7GH5YAM36Dknn2KeUU
 Cy3ctMLoxEnuWYV1AzDCnpltm2t/BZO4bpN0mcdqe4wm342aTXsFATgbq2hE7bIE
 m90obfOLFlcqtkbGPm6kRveb8Kk3rOQnBmllPvDou64vtn7mkJj+2MSKlzdoQ31I
 p1We30NVWIaJud+howWN1R7mVnlaK8AkKLUD9GLu+QmjMdDJR4qv2Q1q+bh7a/nV
 +56EG3P5XUh2kV/zahvKNFWlKnrZGIWuImzhfaNbxRYrnsMWn1i/MCYykQnRJDN+
 kNKDz3RuTaz3DFLL+aLnv4R4sOicRTPenZaJRH4t8Z0UH4mVIkkhwbW9BV0WjiMj
 u9gMoHfVB4c86CZwxrKKN1STPw4ZLya2QSKP8dO9j65XucusxXlwERRH7LaDsU/O
 qVLjElJHjEHWijgSLWfDbEqzXdM3JH7jhePpdjnDp2YTR3+VC3k=
 =udij
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-5.1-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed into arm/dt

ASPEED device tree updates for 5.1

 - New machine: Inspur ON5263M5, an Intel Xeon OCP compute node

 - Misc device tree updates from the OpenBMC project

 - #interrupt-cells fix for GPIO controller

* tag 'aspeed-5.1-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed:
  ARM: dts: aspeed: quanta-q71l: enable uart1
  ARM: dts: aspeed: quanta-q71l: enable lpc_ctrl node
  ARM: dts: aspeed: tiogapass: Add uarts for SoL
  ARM: dts: aspeed: tiogapass: Add LPC devices
  ARM: dts: aspeed: Add Inspur on5263m5 BMC
  ARM: dts: aspeed: tiogapass: Add sensors
  ARM: dts: aspeed: tiogapass: Enable KCS
  ARM: dts: aspeed: Add KCS support for LPC BMC
  ARM: dts: aspeed: Add #interrupt-cells property to gpio controllers
  ARM: dts: aspeed-palmetto: Add i2c OCC hwmon node
  ARM: dts: aspeed: stardragon4800: Add power supply

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 18:11:44 +01:00
Arnd Bergmann
0f7be8f5bd Allwinner DT changes for 5.1
As usual, this is a random assortment of changes:
 
   - ARM PMU is enabled on the A10
   - The first usage of the PIO pinbank regulator supplies added,
     for the Bananapi
   - Broadcom-based Bluetooth enabled on the Bananapi M2 Magic and M2
     Ultra, using the serdev bindings
   - Video codec added for the A10
   - Display pipeline for the A23 added and enabled for the generic Q8
     tablets
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlxMT8UOHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDBJwBAA0oV72+9UecBbk+S/HNvSpPS7pL6qEPiMcLtQ
 6ucS8zAPvb5oc9TkEdsraddjBlGFppQjPa+fp+9hYMzdSGJflTrTmFdQwet25JT4
 WXn6dBpTUcdx5vPaDAq97ynStzl1Nwl9Gc/KBhNtSNlG6Z4Cyz3WplEODMpPsV32
 ffoGRVeox3kYJJveawXiUehQwGZfPvnA0y4Njr2M8UprhKLevEazYM5NBfvrwN0Z
 3ufHM8cOpfef6lPA9asZ5DK8w5YFENE3a0QcLTY+iBCYxXa1ir8zRg/F9hdUm21H
 dGbEdiQOvmSq3JBrZlYwvx1DF+NdTeKIBOsa3SNJccrFzSnZGHz9QJV73mlejNzF
 SAptA5vNJa3BtF5g6wKUJjIwFnWSglL7AozVZ/ns+bZi11efpK7iJdzQxyl6cAUS
 CcncLt5Ftr1uZZMsiCRDjN1g2wrJSJd6U3zIAYRSMwQIF0j0SNGrtG0kgVo113SQ
 Hy4lsdcfIkRMxeahziSBXl54JN/QLaPwlFMfZhFQ//0pC0eGhZrF/BKOSW2w2LQA
 PfJBf3h+VUWUSkjOc9EohHhlxFjd7FrHKXLYtMhcynHSFnTKUytDe6O6+hXm/f/e
 4sJm5L2mXc1Mk1jK+sAxbChXcgyWByxAVpWKytse8cMyfotrJAssKckMGRDUH1Dn
 CocWmC0=
 =WU3N
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt

Allwinner DT changes for 5.1

As usual, this is a random assortment of changes:

  - ARM PMU is enabled on the A10
  - The first usage of the PIO pinbank regulator supplies added,
    for the Bananapi
  - Broadcom-based Bluetooth enabled on the Bananapi M2 Magic and M2
    Ultra, using the serdev bindings
  - Video codec added for the A10
  - Display pipeline for the A23 added and enabled for the generic Q8
    tablets

* tag 'sunxi-dt-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  ARM: dts: sun8i-a23-q8: Set compatible string for LCD panel
  ARM: dts: sun8i-q8-common: Enable display pipeline with RGB LCD panel
  ARM: dts: sun8i-a23: Add compatible strings to display pipeline device nodes
  ARM: dts: sun8i-a33: Move display pipeline nodes to a23/a33 common dtsi
  ARM: dts: sun8i-a23-a33: Move NAND controller device node to sort by address
  ARM: dts: sun4i-a10: Add Video Engine and reserved memory nodes
  ARM: dts: sun4i: Add support for the C1 SRAM region with the SRAM controller
  ARM: dts: sunxi: bananapi-m2-plus: Add Bluetooth device node
  ARM: dts: sun8i: r40: bananapi-m2-ultra: Add Bluetooth device node
  ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix WiFi regulator definitions
  ARM: dts: sun8i: r40: Add pinmux setting for CLK_OUT_A
  ARM: dts: sun8i: r40: Add pinmux settings for UART3 on PG pingroup
  ARM: dts: sun7i: bananapi: Add GPIO banks regulators
  ARM: dts: sun4i-a10: Add PMU node

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:57:00 +01:00
Arnd Bergmann
4165ef5d00 This updates the Integrator DTS files with the device
tree nodes required by the DRM driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJcSB8wAAoJEEEQszewGV1zSikP/A8ZqQ5iBsKRH7VE0QS/UsSQ
 tG58ZpzpJLfYw/YT/Ah7jjehbPbD23s/eRHOIXPry1+KNx3Oq2F6BZLpR5A9dtdM
 PsZRlDsOF61JHsYLnBW6vO5yKdS4Ll2YGM0Z0c85XsTJwpZ0INZzkqTn/Yavb5s0
 ExTTMOe7Xz8gZ9sQl0bfk4Nax+VFKasIezDcqz9s3udg834SBJdmqm3R/pp5Azhv
 6cbL0zF1A9S+y/joY2Q9OAfuaSA1rTb5lgj5cv9d/edf5E3lDND1jBzCsT2PDsVu
 RRhOlYa5RKZRrbkWeI97ptpFRiQYyI+Rouy+YRM5NiTWzNXrNrvpnJ3DD4x6oJO3
 0HE2kEcE6z/b4vHiaH3HDi0/Gfgm6R3ee4d1nvQPhowqHHgfJlCwPOWYTIWC+cU3
 rVZ7avxAejoitaPNf8X/XlSclHvTOcnC56mgpYXMT5TKk6v4L5FjInakNPGc5aME
 Hv70YYbhpHoml1l5KvwkbyxIIOnEMmd9rqGGFJSRO2zzAR7vJihDxFKfbVPQiawM
 S6OI0k75QCrMem35OuSgRxCCJrHXbZHP9UdlM4vjFjtolnOOWkg4l2gkVvnhpjBH
 tDQQYVea3jX0Cd8ureA5vZ1HbGx7lEipApeMZ+u8xiN4Xa3o8yuKevbDkx67NR0X
 SZEhrEXmhqOh0sMSgrqP
 =ezF7
 -----END PGP SIGNATURE-----

Merge tag 'integrator-dts-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into arm/dt

This updates the Integrator DTS files with the device
tree nodes required by the DRM driver.

* tag 'integrator-dts-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  ARM: dts: Augment panel setting for Integrator/CP

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:52:44 +01:00
Arnd Bergmann
acf14c5474 This add the new display driver and DRM driver device
nodes to the Nomadik NHK8815.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJcOO4dAAoJEEEQszewGV1zTjIP/3XbnlpdDVjyzx3EvPq7Lv+g
 LmfT+7NvGc1rcRVD3EK+9qOgUNyERUG2suLkmUwiC3HgwGoASnXp0KLt0D2CquWh
 7XK79WT1+l/0c7CSti3TNnypOGQID3ExrYqN8wTakT9ctbMXqL/0tRfhoUoZIAVC
 JWqja3hFb4YiVBIYn4cIIDiDqY9eNFxChCLD1yEb2O78HjYvQL0OAJv6YiDWz8J6
 zOFls6CSlgnLuAKbfZwynS7mAVXI9KqX7uW4PrWZu7TQtNAqLZGRKT/zAY5XZ/hB
 WkLZjI0r3yx/FE3x05BZEYvO5cqrXVlC3pKPsj5+h9jDAnkvDnI/reXsh1iAEvo5
 u/lNg/JQcN13ubq3RH4Qh6qsGKh5Hq6Yrz/wh5BWulRkN5lks99TyiUwC+gUBd1N
 MDjacHi6ZVubPjbYvMYNMl9KSnoZdM+i9bciEIR/H24AxYOp7ahYMVjB4Gyv/20A
 4VoasTSBDa6BYPljiOggRbUQv+WbABvlBnjGnz1QWR+SNTMtm+nmyQ2+HTTbZa0W
 +RjMbmjG/8f5/f8HWZ0U0NQc01PmDZ+Zv2XyHf6nvciitDmtjqlYTKz11QpF87/a
 cFzdb7gihuHMqc5stc64fCjAiaq2rapxKtve0GAaaxU6DLksoQyeG7ilWt7HPeqd
 hGTKrUeJdjBFRBnvXi12
 =PIyf
 -----END PGP SIGNATURE-----

Merge tag 'nomadik-dts-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into arm/dt

This add the new display driver and DRM driver device
nodes to the Nomadik NHK8815.

* tag 'nomadik-dts-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik:
  ARM: dts: nomadik: Augment NHK15 panel setting

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:47:38 +01:00
Rob Herring
abe60a3a7a ARM: dts: Kill off skeleton{64}.dtsi
Remove the usage of skeleton.dtsi in the remaining dts files. It was
deprecated since commit 9c0da3cc61 ("ARM: dts: explicitly mark
skeleton.dtsi as deprecated"). This will make adding a unit-address to
memory nodes easier.

The main tricky part to removing skeleton.dtsi is we could end up with
no /memory node at all when a bootloader depends on one being present. I
hacked up dtc to check for this condition.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Antoine Tenart <antoine.tenart@bootlin.com>
Acked-by: Alexandre TORGUE <alexandre.torgue@st.com>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Vladimir Zapolskiy <vz@mleia.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Reviewed-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Tested-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:30:31 +01:00
Arnd Bergmann
6569df3d62 STM32 DT updates for v4.21, round 1
Highlights:
 ----------
 
 -MPU STM32MP157 platform update:
  -Declare DMAs for timers
  -Add sleep support for CAN
  -Split CAN RAM mapping between the 2 FDCAN instances
  -Add support of thermal sensor (DTS)
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJcBQ9HAAoJEH+ayWryHnCFhkIP/2hX4e+FYtqSJOUkSu9LL5tf
 FmqKnDcA7VWpE2lkWrwv8faYQ/BTJ0v5J6reCUhXntomcOZtCyWv+MllbgANEHrL
 UWRakenbOe5vSZR5v2SapV0zX/AKZl2o7WUmtnjq1hf9sopeVVVWfLObx8HmwVmA
 Q8S/7lqqPntapb0JSPGUr8cI3nuXfTHlRl1x8YIq8e0LfKPyF9euprmXtkZ01rwu
 YTFvBogRJfVMxT9VWqLtEU4DWsluqKobNU6Xq06/cN+81aS3iUaNR1dprMwURoWq
 yE22y876y2Ytgj5Y2PcxlGO+7w9RbLHEPgF1Gx+yM8Tu4m2jq6V8peVAw4814ow1
 ALduE+/iQ/zGUvHkyyIRkl01y03H1OburA/WoTrkbOeppESUMH+mW5rF9rW+kEtR
 RSoik3YnWKD8pcmKNk4HNNhKRaLmhPDif5EDrF66c5QpMoDlJbnZ2n1pBZJMCboQ
 ASNF7zWUxbshw+o9TDdbkF0nu/IsRlO+t+CXiTPHJ4WzWVWra+2DAMMnrgjZH62Q
 2i6+jRFQdhNmWNhvz4Gspm5v1bptllXjBGlg3TZ9c38l2hVWyTFi03777EJtrj8h
 b6ZLeK0qfXaBH8Ix/BZ9d6FmVpBntTh/vTNyWCJqywVwO4YA2C/5xBjbL9NH9zFV
 /GKMyE1fKI9pziO9REu2
 =660S
 -----END PGP SIGNATURE-----

Merge tag 'stm32-dt-for-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/dt

STM32 DT updates for v4.21, round 1

Highlights:
----------

-MPU STM32MP157 platform update:
 -Declare DMAs for timers
 -Add sleep support for CAN
 -Split CAN RAM mapping between the 2 FDCAN instances
 -Add support of thermal sensor (DTS)

* tag 'stm32-dt-for-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32:
  ARM: dts: stm32: add thermal sensor support on STM32MP157c
  ARM: dts: stm32: add can1 sleep pins muxing on stm32mp157c-ev1 board
  ARM: dts: stm32: add can1 sleep pins muxing
  ARM: dts: stm32: change CAN RAM mapping on stm32mp157c
  ARM: dts: stm32: don't use timers dmas on stm32mp157c-ev1
  ARM: dts: stm32: don't use timers dmas on stm32mp157c-ed1
  ARM: dts: stm32: Add dmas to timer on stm32mp157c

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:27:59 +01:00
Marc Gonzalez
d0f9f16788 ARM: tango: Improve ARCH_MULTIPLATFORM compatibility
Calling platform-specific code unconditionally blows up when running
an ARCH_MULTIPLATFORM kernel on a different platform. Don't do it.

Reported-by: Paolo Pisati <p.pisati@gmail.com>
Signed-off-by: Marc Gonzalez <marc.w.gonzalez@free.fr>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: stable@vger.kernel.org # v4.8+
Fixes: a30eceb7a5 ("ARM: tango: add Suspend-to-RAM support")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 11:45:10 +01:00
Arnd Bergmann
a17bab2d67 Third Round of Renesas ARM Based SoC Fixes for v5.0
* Convert to new LVDS DT bindings fixing a regression introduced in v4.17
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4nzZofWswv9L/nKF189kaWo3T74FAlxReXsACgkQ189kaWo3
 T75PWRAAmli4BUOM23Mt2tyM4OqDzszEsTQ37cCD9/ps/RXn0cReAqJETO3/qzME
 apLfqsa1n3LkJoQoluEozt3IYJ7MujTRaNLglQuzbjebwuH43Sde/L5FxD6RcSqf
 Zt9AFkSs81cnhO2Rrbly7ZRH6deaoW9nWPF27TwFVlzDGxDC9XqQrBv7CNcr+4up
 ZzhMDAL2xp1aiqZeRan34jvnrZshV7l5p5Hey3kLob9W10utuX90Yd8CUstpEGlJ
 JXjll1iDktQAAplHDsWLoHyHmjRLBWrFYS25KW52aKrEp7ZvtMXy5XciIGs5awrl
 4gRzbDN1HlLx4vK4V1ziCDlWgbttLP7n2hP81VtnXxfgrRRThHaq1DxcR1dg5jX4
 k93gN+Oz/GvPKLlHRc0Q6DDkPquP7wY+oM1kna8s7A8XLLGrmALv/bj3FcX/ozly
 fnree7J6GzjtUvZnt6VzMFyMJhoGuwHWPjDrJGxRo+A2xvkPf+U86gaCQ/snHnP0
 VyzupN/quB9FL60UeHCh+odOSMcg5DjxageNJnQN0J01+Yl5phFjU8/XsujjgA8a
 HIK9gMmJVFou/gNn5kMeCI+fYb7DHOk6Ym2k6Hi8ftDUEHaCjabD2VBxbP4/Yvgy
 OzafbF3LW/69btGvWo+MoLbKnux5K8nUrvqF5wOlvuigl+LGLUo=
 =mpfU
 -----END PGP SIGNATURE-----

Merge tag 'renesas-fixes3-for-v5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/fixes

Third Round of Renesas ARM Based SoC Fixes for v5.0

* Convert to new LVDS DT bindings fixing a regression introduced in v4.17

* tag 'renesas-fixes3-for-v5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: dts: r8a7743: Convert to new LVDS DT bindings

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 11:42:04 +01:00
Arnd Bergmann
a7403eb27e Allwinner Fixes for 5.0
A couple of device tree fixes for the 5.0 cycle:
 
   - Add missing clock-output-names for the osc24M clock on sun6i/A31
 
     The Linux clock driver uses the device node as the clock name if
     the property is missing. The node name was changed in 5.0-rc1,
     breaking a subtle dependency in the sunxi-ng clock driver, and
     renders Linux unable to completely boot up.
 
   - Add alias for Ethernet controller on Beelink X2
 
     This allows the bootloader to assign a deterministically generated
     MAC address to it.
 
   - Add property to enable USB VBUS regulator on OrangePi Win
 
     The board had defined the constraints for the regulator, but was
     missing the property to actually enable it.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlxMTggOHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDD1FBAAhEcU8mPQemhH6niwKCq+nXdh/uLuzvweOjAZ
 FgYTKCFSXpNeKY9m+zLHyLazVN8WgxVHCKu0etslXkHZ24Ql5hz7D2Z5BfC2fAwh
 ImR7WsD5NjKCLU4rLMW+YgAqdG/dKqeabvzLe4rI90+jGPJ5i3Pp2nG4e09J+yL9
 WrJykSOuZ0twCocSBrPREMqIEohFve/IgY7lNNk9wpF8GVk5uO3kxhuDa7nLfN3f
 mJbaz+x6jdDWkxVoVoMBYyQyVJC4EafOU/CQc++OKM3H0C9iei20JbH0HWFk6PEo
 UBjKw3dNwVrIteoWf71QiU+Rm6zK5eSo1jJV3iWBTYl6hUqy9t+T2iKenClJqnEb
 FU6k+9ZdYCwXcAGppsa7TlNhvvFboU1XiVvQA17dYcMtnuOdD2yNmN3kFqdB1g2G
 OrGIRMM0me8oSOYPCVEVpECc8Zdl7hhUC63q0FhiyN0kvIUmNiuYGDcq33xjXdb3
 mCEb7sTEjls/PddWV8Dgkx2bIT2ZgsUIc/jdx+Fw/selM9Dw9Egkt7086/Fmhqgd
 vOrvnEYP6ThbTTCpbgoaokDuMXW+ysR0YGaII8D8gMymNDR0i8uDiv7Wcmi6+BfL
 /ncPbLvrSOtkYbROZnivWS8fhCltkQbPGmVJbRasiVZPH/ORdN/Lp0OO6NJNB5hL
 fb4aY1s=
 =4km1
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-fixes-for-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/fixes

Allwinner Fixes for 5.0

A couple of device tree fixes for the 5.0 cycle:

  - Add missing clock-output-names for the osc24M clock on sun6i/A31

    The Linux clock driver uses the device node as the clock name if
    the property is missing. The node name was changed in 5.0-rc1,
    breaking a subtle dependency in the sunxi-ng clock driver, and
    renders Linux unable to completely boot up.

  - Add alias for Ethernet controller on Beelink X2

    This allows the bootloader to assign a deterministically generated
    MAC address to it.

  - Add property to enable USB VBUS regulator on OrangePi Win

    The board had defined the constraints for the regulator, but was
    missing the property to actually enable it.

* tag 'sunxi-fixes-for-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: dts: allwinner: a64: Fix USB OTG regulator
  ARM: dts: sun8i: h3: Add ethernet0 alias to Beelink X2
  ARM: dts: sun6i: Add clock-output-names to osc24M clock
  arm64: dts: allwinner: a64: Fix the video engine compatible

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 11:35:38 +01:00
Arnd Bergmann
83d3651502 Merge tag 'amlogic-fixes-2.1' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/fixes
Amlogic fixes for v5.0-rc, round 2
- several fixups for the GPIO cd-inverted change
- IRQ trigger fixes for MAC IRQ

* tag 'amlogic-fixes-2.1' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  arm64: dts: meson: Fix mmc cd-gpios polarity
  ARM: dts: meson8m2: mxiii-plus: mark the SD card detection GPIO active-low
  ARM: dts: meson8b: ec100: mark the SD card detection GPIO active-low
  ARM: dts: meson8b: odroidc1: mark the SD card detection GPIO active-low
  arm: dts: meson: Fix IRQ trigger type for macirq

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 11:35:27 +01:00
Russell King
db4090920b ARM: iop32x/n2100: fix PCI IRQ mapping
Booting 4.20 on a TheCUS N2100 results in a kernel oops while probing
PCI, due to n2100_pci_map_irq() having been discarded during boot.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Cc: stable@vger.kernel.org # 2.6.18+
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 11:34:42 +01:00
Arnd Bergmann
44a0f88467 Merge tag 'omap-for-v5.0/fixes-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes
Device tree fixes for omaps for v5.0-rc cycle

This series of dts fixes for omap devices fixes several device specific
regressions:

- The onenand timings for n950/n9 have been wrong for a while since
  we moved to dts based timings

- A typo for the cpcap pmic is now producing erors during boot as the
  level should be 0 for unconfigurable triggering instead of 1

- Changes for ti-sysc for omap5 left uart3 with debug flags that should
  not be set

- Fix a new dtc warning started showing up for omap3-gta04 grap_port

- With the generic MMC card detection code we need to fix the gpio
  in dts for n900 and am335x-shc

* tag 'omap-for-v5.0/fixes-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: dts: am335x-shc.dts: fix wrong cd pin level
  ARM: dts: n900: fix mmc1 card detect gpio polarity
  ARM: dts: omap3-gta04: Fix graph_port warning
  ARM: dts: Remove unnecessary idle flags for omap5 uart3
  ARM: dts: omap4-droid4: Fix typo in cpcap IRQ flags
  ARM: OMAP: dts: N950/N9: fix onenand timings

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 11:34:41 +01:00
Arnd Bergmann
2b3604e243 Merge tag 'davinci-fixes-for-v5.0-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into arm/fixes
This fixes a long standing typo in device-tree for DA850 in interrupt
number for timer. It did not affect us so far because we use non-DT
timer driver within mach-davinci. This was caught while migrating to
clocksource driver.

* tag 'davinci-fixes-for-v5.0-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
  ARM: dts: da850: fix interrupt numbers for clocksource

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 11:34:41 +01:00
Arnd Bergmann
03937704b8 Merge tag 'pxa-fixes-5.0' of https://github.com/rjarzmik/linux into arm/fixes
This is the pxa fixes set for v4.20 cycle:
 - only a single devm allocated pointer free fix, which was never
   triggered runtime but code analysis found.

* tag 'pxa-fixes-5.0' of https://github.com/rjarzmik/linux:
  ARM: pxa: ssp: unneeded to free devm_ allocated data

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 11:34:39 +01:00
Arnd Bergmann
69835820f1 i.MX fixes for 5.0:
- Fix spi_bus_bridge DTC warning by correcting '#address-cells' of
    dspi3 node on vf610-bk4 board, as it's being used a SPI slave
    controller there.
  - Replace deprecated gpio-key,wakeup property with wakeup-source for
    board imx6q-pistachio and imx6sll-evk, into which the deprecated
    property sneaked during the merge window.
  - Correct the backward compatible for i.MX6SX GPT device, as it's
    actually compatible with i.MX6DL GPT rather than i.MX31 one.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJcO/B7AAoJEFBXWFqHsHzOsl4IAL1ubDbUA4T+mbL5joEdmZYZ
 iOBVLq5L22uyqUU0i3qSoRi0Tym0ZKXJvP1XdNTlK4fJgabTlvJFlIssBM1FhUMk
 pmIDrlCZeoMY1iIJ2OHQ9On9njRA/B+ClZFzFAPR/8iLMC70RB5NMKa8uXYxSQ21
 EGjIlNsITD4F/IGt9eqdgt5fnfewgbnumxehvbcYPdreXVRuAyWXlPtc17mI+uof
 DmnfANdDZ/VREGJwekQIu2D/VRo6jfC5jc24ixX4Fp5kPZ0CGmXxRzQmTVcm9QQ4
 3jRMKf2PXlvW5vcqXLMoGJljVbeYITrF7ycswHge0LPs37ghjW+crAv5TzN6Agg=
 =HZIA
 -----END PGP SIGNATURE-----

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

i.MX fixes for 5.0:
 - Fix spi_bus_bridge DTC warning by correcting '#address-cells' of
   dspi3 node on vf610-bk4 board, as it's being used a SPI slave
   controller there.
 - Replace deprecated gpio-key,wakeup property with wakeup-source for
   board imx6q-pistachio and imx6sll-evk, into which the deprecated
   property sneaked during the merge window.
 - Correct the backward compatible for i.MX6SX GPT device, as it's
   actually compatible with i.MX6DL GPT rather than i.MX31 one.

* tag 'imx-fixes-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  ARM: dts: imx6sx: correct backward compatible of gpt
  ARM: dts: imx: replace gpio-key,wakeup with wakeup-source property
  ARM: dts: vf610-bk4: fix incorrect #address-cells for dspi3

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 11:12:16 +01:00
Patrick Venture
e154252149 ARM: dts: aspeed: quanta-q71l: enable uart1
Enable the uart1 node such that the clock will be enabled.

Signed-off-by: Patrick Venture <venture@google.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
2019-01-30 14:28:57 +11:00
Patrick Venture
95779307d7 ARM: dts: aspeed: quanta-q71l: enable lpc_ctrl node
Enable the lpc_ctrl node in the quanta-q71l dts such that the LPC_CLK is
enabled.

Signed-off-by: Patrick Venture <venture@google.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
2019-01-30 14:28:57 +11:00
Vijay Khemka
e786eff928 ARM: dts: aspeed: tiogapass: Add uarts for SoL
Added uart2 and uart3 in Facebook Tiogapass for routing serial input
from Host to BMC for SoL via LPC.

Signed-off-by: Vijay Khemka <vijaykhemka@fb.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
2019-01-30 14:28:41 +11:00
Vijay Khemka
c91d27bba7 ARM: dts: aspeed: tiogapass: Add LPC devices
Added lpc control for enabling lpc clock and lpc snoop devices to
Facebook Tiogapass device tree.

Signed-off-by: Vijay Khemka <vijaykhemka@fb.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
2019-01-30 14:27:57 +11:00
Simon Goldschmidt
1c909b2dfe ARM: dts: socfpga: update more missing reset properties
Add reset property for dma, can and sdram on socfpga gen5.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
2019-01-29 17:12:52 -06:00
Yizhuo
dc30e70391 ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized
In function omap4_dsi_mux_pads(), local variable "reg" could
be uninitialized if function regmap_read() returns -EINVAL.
However, it will be used directly in the later context, which
is potentially unsafe.

Signed-off-by: Yizhuo <yzhai003@ucr.edu>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-29 08:54:22 -08:00
Tony Lindgren
072167d13c Merge branch 'pwm-dmtimer-fixes' into omap-for-v5.0/fixes-v2 2019-01-29 07:53:47 -08:00
Tony Lindgren
0840242e88 ARM: dts: Configure clock parent for pwm vibra
Commit 84badc5ec5 ("ARM: dts: omap4: Move l4 child devices to probe
them with ti-sysc") moved some omap4 timers to probe with ti-sysc
interconnect target module. Turns out this broke pwm-omap-dmtimer
for reparenting of the timer clock.

With ti-sysc, we can now configure the clock sources in the dts with
assigned-clocks and assigned-clock-parents.

Fixes: 84badc5ec5 ("ARM: dts: omap4: Move l4 child devices to probe them with ti-sysc")
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: H. Nikolaus Schaller <hns@goldelico.com>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Ladislav Michl <ladis@linux-mips.org>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Tero Kristo <t-kristo@ti.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-29 07:41:15 -08:00
Dietmar Eggemann
cc0dbf4366 arm: dts: vexpress-v2p-ca15_a7: Add cpu dynamic-power-coefficient information
A CPUfreq driver, like the ARM big.LITTLE driver used on the TC2 board,
which provide the Energy Model with power cost information via the
PM_OPP of_dev_pm_opp_get_cpu_power() function, do need the
dynamic-power-coefficient (C) in the device tree.

Method used to obtain the C value:

C is computed by measuring energy (E) consumption of a frequency domain
(FD) over a 10s runtime (t) sysbench workload running at each Operating
Performance Point (OPP) affine to 1 or 2 CPUs of that FD while the other
CPUs of the system are hotplugged out.

By definition all CPUs of a FD have the the same micro-architecture. An
OPP is characterized by a certain frequency (f) and voltage (V) value.
The corresponding power values (P) are calculated by dividing the delta
of the E values between the runs with 2 and 1 CPUs by t.

With n data tuples (P, f, V), n equal to number of OPPs for this
frequency domain, we can solve C by:

P = Pstat + Pdyn

P = Pstat + CV²f

Cx = (Px - P1)/(Vx²fx - V1²f1) with x = {2, ..., n}

The C value is the arithmetic mean out of {C2, ..., Cn}.

Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Quentin Perret <quentin.perret@arm.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
2019-01-29 15:30:00 +00:00
David S. Miller
ec7146db15 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
Daniel Borkmann says:

====================
pull-request: bpf-next 2019-01-29

The following pull-request contains BPF updates for your *net-next* tree.

The main changes are:

1) Teach verifier dead code removal, this also allows for optimizing /
   removing conditional branches around dead code and to shrink the
   resulting image. Code store constrained architectures like nfp would
   have hard time doing this at JIT level, from Jakub.

2) Add JMP32 instructions to BPF ISA in order to allow for optimizing
   code generation for 32-bit sub-registers. Evaluation shows that this
   can result in code reduction of ~5-20% compared to 64 bit-only code
   generation. Also add implementation for most JITs, from Jiong.

3) Add support for __int128 types in BTF which is also needed for
   vmlinux's BTF conversion to work, from Yonghong.

4) Add a new command to bpftool in order to dump a list of BPF-related
   parameters from the system or for a specific network device e.g. in
   terms of available prog/map types or helper functions, from Quentin.

5) Add AF_XDP sock_diag interface for querying sockets from user
   space which provides information about the RX/TX/fill/completion
   rings, umem, memory usage etc, from Björn.

6) Add skb context access for skb_shared_info->gso_segs field, from Eric.

7) Add support for testing flow dissector BPF programs by extending
   existing BPF_PROG_TEST_RUN infrastructure, from Stanislav.

8) Split BPF kselftest's test_verifier into various subgroups of tests
   in order better deal with merge conflicts in this area, from Jakub.

9) Add support for queue/stack manipulations in bpftool, from Stanislav.

10) Document BTF, from Yonghong.

11) Dump supported ELF section names in libbpf on program load
    failure, from Taeung.

12) Silence a false positive compiler warning in verifier's BTF
    handling, from Peter.

13) Fix help string in bpftool's feature probing, from Prashant.

14) Remove duplicate includes in BPF kselftests, from Yue.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2019-01-28 19:38:33 -08:00
Souptick Joarder
8d2df8a2d0 arch/arm/xen: Remove duplicate header
Remove duplicate header which is included twice.

Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
2019-01-28 17:42:20 -05:00
Chen-Yu Tsai
8f855dbfaf
ARM: dts: sun5i: q8-tablet: Use bananapi,s070wv20-ct16 panel compatible
The compatible string for the LCD panel used for the Q8 tablets are just
a placeholder that was shown to be compatible with the actual panels
found on these devices. The real panels do not have any identifiable
markings and vary between production runs.

The compatibe string previously used had a pixel clock that could not
be accurately reproduced on Allwinner hardware, and discussions on
whether a margin should be added to the display drivers and how large
a margin was acceptable had stalled.

Now that we have a panel model that is actually used with Allwinner
hardware, has the same dimensions, and the timings have been shown to
work with the nameless panels, we can use that one instead.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-28 11:53:31 +01:00
Chen-Yu Tsai
64af290124
ARM: dts: sun5i: q8-tablet: Add LCD Panel power supply
The A13 Q8 tablet, following the A13 reference tablet design, has the
system's fixed 3.3V rail feed the VCC supply of the LCD panel.
Additional voltage rails used by the panel are generated using a
regulator fed from the unregulated IPSOUT output of the PMIC. The latter
is unrepresentable in the device tree. Both are controlled with MOSFETs
by the enable GPIO added in the previous patch. The actual enable or
reset pin for the panel is tied directly to LCD-VCC after the MOSFET.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-28 11:52:42 +01:00
Chen-Yu Tsai
4d58c8cc93
ARM: dts: sun5i: q8-tablet: Add LCD Panel enable GPIO
Now that we support the AXP209 GPIOs, we can toggle the LCD panel enable
line. Add the GPIO phandle to the panel.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-28 11:52:27 +01:00
Chen-Yu Tsai
0a03cd9924
ARM: dts: sun5i: q8-tablet: Move panel properties to correct node level
The panel backlight and enable GPIO comments were incorrectly placed
in the input port, while it should have been in the panel node itself.

Move them to the correct position.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-28 11:52:09 +01:00
Chen-Yu Tsai
4199ca2a49
ARM: dts: sun5i: Add backlight GPIO for reference design tablet
Now that we support the GPIOs on the AXP209, we can control the LCD
backlight with them.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-28 11:51:41 +01:00
Philipp Zabel
cdbeb315ed reset: socfpga: declare socfpga_reset_init in a header file
Avoid declaring extern functions in c files. To make sure function
definition and usage don't get out of sync, declare socfpga_reset_init
in a common header.

Suggested-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Acked-by: Dinh Nguyen <dinguyen@kernel.org>
2019-01-28 11:16:04 +01:00
Philipp Zabel
fdce60787f reset: sunxi: declare sun6i_reset_init in a header file
Avoid declaring extern functions in c files. To make sure function
definition and usage don't get out of sync, declare sun6i_reset_init
in a common header.

Suggested-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2019-01-28 11:16:04 +01:00
Shawn Lin
e6b97a47b5 ARM: dts: rockchip: clean up the abuse of disable-wp
The mmc.txt didn't explicitly say disable-wp is for SD card slot
only, but that is what it was designed for in the first place.

Remove all disable-wp from emmc or sdio controller.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-01-28 10:51:55 +01:00
David S. Miller
1d68101367 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-01-27 10:43:17 -08:00
Jiong Wang
b85062ac0d arm: bpf: implement jitting of JMP32
This patch implements code-gen for new JMP32 instructions on arm.

For JSET, "ands" (AND with flags updated) is used, so corresponding
encoding helper is added.

Cc: Shubham Bansal <illusionist.neo@gmail.com>
Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2019-01-26 13:33:02 -08:00
Vladimir Zapolskiy
ee65af7f9f ARM: dts: lpc435x: remove address and size cells from gpio-keys-polled nodes
The change removes redundant #address-cells and #size-cells properties from
gpio-keys-polled compatible device nodes found in lpc4357-ea4357-devkit and
lpc4350-hitex-eval board DTS files.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-26 15:39:16 +02:00
Markus Elfring
ac04fd6569 ARM: lpc32xx: Delete an error message for a failed memory allocation in lpc32xx_pm_enter()
Omit an extra message for a memory allocation failure in this function.

This issue was detected by using the Coccinelle software.

Link: http://events.linuxfoundation.org/sites/events/files/slides/LCJ16-Refactor_Strings-WSang_0.pdf
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-26 15:24:20 +02:00
Vladimir Zapolskiy
ab5d06faff ARM: defconfig: lpc32xx: disable superfluous GPIO controllers
The change disables a list of GPIO controllers, which to the best
knowledge are not found on any supported NXP LPC32xx powered board.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-26 00:06:26 +02:00
Vladimir Zapolskiy
5bd7f4b537 ARM: defconfig: lpc32xx: enable generic SRAM driver
NXP LPC32xx SoCs contain an IRAM area, which is supported by
the generic MMIO SRAM driver, enable the driver to be built
by default.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-26 00:06:26 +02:00
Vladimir Zapolskiy
74dd4017c7 ARM: defconfig: lpc32xx: enable serial console on HS UART
It is possible to configure NXP LPC32xx powered boards to have
serial consoles on HS UARTs, enable this option by default.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-26 00:06:26 +02:00
Vladimir Zapolskiy
d9bed635a0 ARM: defconfig: lpc32xx: enable panic on oops option
Panic on oops option enabled by by default makes great sense both
for debugging and production.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-26 00:06:26 +02:00
Vladimir Zapolskiy
742fa75dcd ARM: defconfig: lpc32xx: enable build options for basic debugging
To make a default built kernel image more advanced include support
of sysrq, dynamic debug, GDB scripts and printed timestamps in
kernel log buffer by default.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-26 00:06:26 +02:00
Vladimir Zapolskiy
218e710cc2 ARM: defconfig: lpc32xx: enable NFSv4 support
The change allows to mount rootfs shared on an NFSv4 server.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-26 00:06:25 +02:00
Linus Walleij
ff8524b733 ARM: defconfig: Switch LPC32xx to use PL11x DRM driver
None of the LPC32xx device trees contains any display settings,
it just defines a device tree node for the CLCD (PL11x) left
as "disabled" on lpc3250-ea3250 and "okay" on lpc3250-phy3250
but no panels are attached on any device tree, so the driver
will simply bail out.

I conclude that the hardware is dormant on existing
systems, so we can without any problems switch the defconfig
over from the old ARMCLCD frame buffer driver to the new
PL11x DRM driver.

Cc: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
[vzapolskiy: deselected I2C as selected by DRM; fixed SoC name]
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-25 23:16:14 +02:00
Linus Walleij
dd837104f5 ARM: defconfig: Update LPC32xx defconfig
This simply updates the LPC32xx defconfig against the current
Kconfig structure in the kernel so we can make changed to the
defconfig without disturbing noise.

Cc: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-25 23:16:14 +02:00
Linus Walleij
34a5cf06af ARM: defconfig: Switch LPC18xx to use PL11x DRM driver
None of the LPC18xx device trees contains any display settings,
it just defines a device tree node for the CLCD (PL11x) set
as "disabled" and no panels are attached on any device tree.

This I conclude that the hardware is dormant on existing
systems, so we can without any problems switch the defconfig
over from the old ARMCLCD frame buffer driver to the new
PL11x DRM driver.

Cc: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
[vzapolskiy: deselected I2C build option as selected by DRM]
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
2019-01-25 23:15:27 +02:00
Marek Szyprowski
ec33745bcc ARM: dts: exynos: Fix pinctrl definition for eMMC RTSN line on Odroid X2/U3
Commit 225da7e65a ("ARM: dts: add eMMC reset line for
exynos4412-odroid-common") added MMC power sequence for eMMC card of
Odroid X2/U3. It reused generic sd1_cd pin control configuration node
and only disabled pull-up. However that time the pinctrl configuration
was not applied during MMC power sequence driver initialization. This
has been changed later by commit d97a1e5d7c ("mmc: pwrseq: convert to
proper platform device").

It turned out then, that the provided pinctrl configuration is not
correct, because the eMMC_RTSN line is being re-configured as 'special
function/card detect function for mmc1 controller' not the simple
'output', thus the power sequence driver doesn't really set the pin
value. This in effect broke the reboot of Odroid X2/U3 boards. Fix this
by providing separate node with eMMC_RTSN pin configuration.

Cc: <stable@vger.kernel.org>
Reported-by: Markus Reichl <m.reichl@fivetechno.de>
Suggested-by: Ulf Hansson <ulf.hansson@linaro.org>
Fixes: 225da7e65a ("ARM: dts: add eMMC reset line for exynos4412-odroid-common")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2019-01-25 20:18:10 +01:00
Arnd Bergmann
275f22148e ipc: rename old-style shmctl/semctl/msgctl syscalls
The behavior of these system calls is slightly different between
architectures, as determined by the CONFIG_ARCH_WANT_IPC_PARSE_VERSION
symbol. Most architectures that implement the split IPC syscalls don't set
that symbol and only get the modern version, but alpha, arm, microblaze,
mips-n32, mips-n64 and xtensa expect the caller to pass the IPC_64 flag.

For the architectures that so far only implement sys_ipc(), i.e. m68k,
mips-o32, powerpc, s390, sh, sparc, and x86-32, we want the new behavior
when adding the split syscalls, so we need to distinguish between the
two groups of architectures.

The method I picked for this distinction is to have a separate system call
entry point: sys_old_*ctl() now uses ipc_parse_version, while sys_*ctl()
does not. The system call tables of the five architectures are changed
accordingly.

As an additional benefit, we no longer need the configuration specific
definition for ipc_parse_version(), it always does the same thing now,
but simply won't get called on architectures with the modern interface.

A small downside is that on architectures that do set
ARCH_WANT_IPC_PARSE_VERSION, we now have an extra set of entry points
that are never called. They only add a few bytes of bloat, so it seems
better to keep them compared to adding yet another Kconfig symbol.
I considered adding new syscall numbers for the IPC_64 variants for
consistency, but decided against that for now.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-25 17:22:50 +01:00
Arnd Bergmann
4ab65ba7a5 ARM: add kexec_file_load system call number
A couple of architectures including arm64 already implement the
kexec_file_load system call, on many others we have assigned a system
call number for it, but not implemented it yet.

Adding the number in arch/arm/ lets us use the system call on arm64
systems in compat mode, and also reduces the number of differences
between architectures. If we want to implement kexec_file_load on ARM
in the future, the number assignment means that kexec tools can already
be built with the now current set of kernel headers.

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-25 17:22:50 +01:00
Arnd Bergmann
78594b9599 ARM: add migrate_pages() system call
The migrate_pages system call has an assigned number on all architectures
except ARM. When it got added initially in commit d80ade7b32 ("ARM:
Fix warning: #warning syscall migrate_pages not implemented"), it was
intentionally left out based on the observation that there are no 32-bit
ARM NUMA systems.

However, there are now arm64 NUMA machines that can in theory run 32-bit
kernels (actually enabling NUMA there would require additional work)
as well as 32-bit user space on 64-bit kernels, so that argument is no
longer very strong.

Assigning the number lets us use the system call on 64-bit kernels as well
as providing a more consistent set of syscalls across architectures.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
2019-01-25 17:22:43 +01:00
Geert Uytterhoeven
03ff967793 ARM: multi_v7_defconfig: Enable support for RZ/A2
Enable support for the RZ/A2 SoC, including pin control, now the DTS for
the Renesas RZ/A2M evaluation board is included.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2019-01-25 11:03:04 +01:00
Geert Uytterhoeven
58319b7c37 ARM: shmobile: defconfig: Enable support for RZ/A2
Enable support for the RZ/A2 SoC, including pin control, now the DTS for
the Renesas RZ/A2M evaluation board is included.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2019-01-25 11:02:42 +01:00
Chen-Yu Tsai
5553392130
ARM: dts: sun8i-a23-q8: Set compatible string for LCD panel
The Q8 tablets follow the A23/A33 tablet reference design, and normally
use a "generic" 800x480 LCD panel. The actual panel may vary between
production runs, and there are no visible markings denoting its model.
This patch uses a panel that has the same dimensions and timings that
are close to what was provided in the vendor fex files.

Since there are also A33 Q8 tablets with 1024x600 panels, this patch
only sets the compatible string for A23 Q8 tablets.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-25 10:43:20 +01:00
Chen-Yu Tsai
fe244e4c6a
ARM: dts: sun8i-q8-common: Enable display pipeline with RGB LCD panel
The Q8 design for A23/A33 tablets have an 18-bit RGB LCD panel connected
to the LCD interface on the SoC, the DC1SW output on the PMIC providing
power for the LCD, and PH7 toggling the reset pin for the panel.

This patch adds a device node for the panel, describing the above, and
enables the display pipeline.

The actual model or compatible string for the panel should be added in
the tablet device tree file.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-25 10:43:16 +01:00
Chen-Yu Tsai
4672f69561
ARM: dts: sun8i-a23: Add compatible strings to display pipeline device nodes
Now that the compatible strings for the display pipeline on the A23 have
been added to the bindings, add the corresponding compatibles to the
device nodes already in the A23/A33 shared dtsi.

While the A23 has the TCON ch1 clock defined in the CCU, and the channel
1 registers are available, it does not have any means to use channel 1
due to a lack of downstream encoders, and the enable bit for channel 1 is
hard-wired to 0 (off). Hence the ch1 clock is left out.

As the MIPI DSI output device is not officially documented, and there
are no reference devices to test it, it is not covered by this patch.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-25 10:43:12 +01:00
Chen-Yu Tsai
437262c0db
ARM: dts: sun8i-a33: Move display pipeline nodes to a23/a33 common dtsi
The display pipeline has the same structure, resources and connections
on both the A23 and A33. The differences include:

  - compatible strings
  - extra clock, reset control, and IO region for SAT in the backend
    only found on the A33
  - missing ch1 clock for the TCON

However, while the A23 has the TCON ch1 clock defined in the CCU, and
the channel 1 registers are available, it does not have any means to
use channel 1 due to a lack of downstream encoders, and the enable bit
for channel 1 is hard-wired to 0 (off).

As the MIPI DSI output device is not officially documented, and there
are no A23 reference devices to test it, it is not covered by this
patch.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-25 10:43:07 +01:00
Chen-Yu Tsai
d027521497
ARM: dts: sun8i-a23-a33: Move NAND controller device node to sort by address
The NAND controller device node was inserted into the wrong position,
probably due to a rebase or merge, as the file's structure does not
provide enough context for git to accurately match the previous device
node block.

Fixes: d7b843df13 ("ARM: dts: sun8i: add NAND controller node for A23/A33")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-25 10:43:03 +01:00
Vladimir Zapolskiy
d62998480b ARM: pxa: remove unused empty mach/pxa25x-udc.h file
Commit c5418a0b98 ("usb: gadget: pxa25x_udc: move register definitions
from arch") removed inclusion of mach/pxa25x-udc.h from the PXA25x UDC
driver, the contents of the header file was also wiped out, however the
file itself hasn't been removed, now this change removes the unused empty
header file.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
2019-01-24 21:47:42 +01:00
Graeme Smecher
d031773169 ARM: dts: Adds device tree file for McGill's IceBoard, based on TI AM3874
This is an ARM + FPGA instrumentation board used at telescopes in
Antarctica, Chile, and Canada:

        https://pole.uchicago.edu/
        https://arxiv.org/abs/1608.03025
        https://chime-experiment.ca/

With these commits and a suitable userspace, we can boot the board, load
a FPGA bitstream, and communicate with the RTL design. Most of the board's
telemetry sensors (temperatures, voltages) are functional but detailed
testing is to follow.

We are weaning ourselves off TI's "official" kernel for this SOC, which
has been stuck at 2.6.37 and is not really fit for use. To anyone at TI:
despite good silicon and some dedicated support enginers, your
open-source software strategy for these parts has not worked well.
Please get in touch with me if you'd like to have a constructive
discussion about ways to improve it.

Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com>
[tony@atomide.com: dropped fpga@1 as linux,spidev is still undocumented]
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-24 10:22:43 -08:00
Graeme Smecher
417992d574 ARM: dts: ti81xx: Add dts boilerplate for all GPIO and SPI peripherals
GPIO3/4 and MCSPI2/3/4 are now present. Lightly tested on am3874
platform.

Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com>
[tony@atomide.com: split to apply hwmod and dts changes separately]
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-24 08:44:35 -08:00
Graeme Smecher
d27cda291b ARM: ti81xx: Add hwmod boilerplate for all GPIO and SPI peripherals
GPIO3/4 and MCSPI2/3/4 are now present. Lightly tested on am3874
platform.

Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com>
[tony@atomide.com: split to apply hwmod and dts changes separately]
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-24 08:43:38 -08:00
Graeme Smecher
fee3b67480 ARM: ti81xx: Move I2C entries in omap_hwmod_81xx to maintain grouping
There is no functional change here; the I2C and ELM entries leaked
into each other and this separates them again.

Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-24 08:28:48 -08:00
Peter Ujfalusi
b4c30df0eb ARM: dts: omap4-sdp: Make ethernet working even if booted with latest u-boot
The ethernet works in kernel only if we use some binary u-boot from the
past which have support for KS8851.

The u-boot sources are not available for this mysterious u-boot image
people tends to hold on... Mainline u-bott does not have ethernet support
for sdp4430 and if we use that the ethernet is not working.

After some debugging I have managed to get the ethernet working with
mainline u-boot while not breaking the networking with the case when we
boot with the mysterious binary u-boot.

Basically we were missing bunch of pinmux settings and the 'magic'
gpio_138 handling in kernel.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-24 08:23:43 -08:00
Heiko Schocher
dc81e8465d ARM: dts: am335x-shc.dts: Switch to SPDX identifier
Adopt the SPDX license identifier headers to ease license
compliance management.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-24 08:23:42 -08:00
Sudeep Holla
a4aaf1242c ARM: dts: am437x: replace linux,wakeup with wakeup-source property
Most of the legacy "linux,wakeup" boolean property is already replaced
with "wakeup-source". However few occurrences of old property has popped
up again, probably from the remnants in downstream trees.

Replace the legacy properties with the unified "wakeup-source" property
introduced in the commit aeda5003d0 ("Input: matrix_keypad - change
name of wakeup property to "wakeup-source"")

Cc: "Benoît Cousson" <bcousson@baylibre.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: linux-omap@vger.kernel.org
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-24 08:23:42 -08:00
Felix Brack
7da10df988 ARM: dts: am33xx: Remove unnecessary properties
Remove the unnecessary properties #address-cells and #size-cells
of node pinmux as there are no child-nodes with property reg.

Signed-off-by: Felix Brack <fb@ltec.ch>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-24 08:15:33 -08:00
Linus Walleij
4136e455f6 Merge branch 'ib-qcom-spmi' into devel 2019-01-24 15:33:51 +01:00
Brian Masney
c9a0ef5528 ARM: dts: qcom: pma8084: add interrupt controller properties
Add interrupt controller properties now that spmi-gpio is a proper
hierarchical IRQ chip. The interrupts property is no longer needed so
remove it.

This change was not tested on any hardware but the same change was
tested on qcom-pm8941.dtsi using a LG Nexus 5 (hammerhead) phone with
no issues.

Signed-off-by: Brian Masney <masneyb@onstation.org>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2019-01-24 15:33:33 +01:00
Brian Masney
5f540fb482 ARM: dts: qcom: pm8941: add interrupt controller properties
Add interrupt controller properties now that spmi-gpio is a proper
hierarchical IRQ chip. The interrupts property is no longer needed so
remove it. Code was tested on the LG Nexus 5 (hammerhead) phone.

Signed-off-by: Brian Masney <masneyb@onstation.org>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2019-01-24 15:33:33 +01:00
Chen-Yu Tsai
4d1796ef5e ARM: dts: sunxi: h3/h5: Drop A31 fallback compatible for CSI controller
The CSI controller found on the H3 (and H5) is a reduced version of the
one found on the A31. It only has 1 channel, instead of 4 channels for
time-multiplexed BT.656. Since the H3 is a reduced version, it cannot
"fallback" to a compatible that implements more features than it
supports.

Drop the A31 fallback compatible.

Fixes: f89120b6f5 ("ARM: dts: sun8i: Add the H3/H5 CSI controller")
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
2019-01-24 18:24:11 +08:00
Tony Lindgren
d0243693fb ARM: OMAP5+: Fix inverted nirq pin interrupts with irq_set_type
Commit 83a86fbb5b ("irqchip/gic: Loudly complain about the use of
IRQ_TYPE_NONE") started warning about incorrect dts usage for irqs.
ARM GIC only supports active-high interrupts for SPI (Shared Peripheral
Interrupts), and the Palmas PMIC by default is active-low.

Palmas PMIC allows changing the interrupt polarity using register
PALMAS_POLARITY_CTRL_INT_POLARITY, but configuring sys_nirq1 with
a pull-down and setting PALMAS_POLARITY_CTRL_INT_POLARITY made the
Palmas RTC interrupts stop working. This can be easily tested with
kernel tools rtctest.c.

Turns out the SoC inverts the sys_nirq pins for GIC as they do not go
through a peripheral device but go directly to the MPUSS wakeupgen.
I've verified this by muxing the interrupt line temporarily to gpio_wk16
instead of sys_nirq1. with a gpio, the interrupt works fine both
active-low and active-high with the SoC internal pull configured and
palmas polarity configured. But as sys_nirq1, the interrupt only works
when configured ACTIVE_LOW for palmas, and ACTIVE_HIGH for GIC.

Note that there was a similar issue earlier with tegra114 and palmas
interrupt polarity that got fixed by commit df545d1cd0 ("mfd: palmas:
Provide irq flags through DT/platform data"). However, the difference
between omap5 and tegra114 is that tegra inverts the palmas interrupt
twice, once when entering tegra PMC, and again when exiting tegra PMC
to GIC.

Let's fix the issue by adding a custom wakeupgen_irq_set_type() for
wakeupgen and invert any interrupts with wrong polarity. Let's also
warn about any non-sysnirq pins using wrong polarity. Note that we
also need to update the dts for the level as IRQ_TYPE_NONE never
has irq_set_type() called, and let's add some comments and use proper
pin nameing to avoid more confusion later on.

Cc: Belisko Marek <marek.belisko@gmail.com>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: "Dr. H. Nikolaus Schaller" <hns@goldelico.com>
Cc: Jon Hunter <jonathanh@nvidia.com>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Laxman Dewangan <ldewangan@nvidia.com>
Cc: Nishanth Menon <nm@ti.com>
Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Richard Woodruff <r-woodruff2@ti.com>
Cc: Santosh Shilimkar <ssantosh@kernel.org>
Cc: Tero Kristo <t-kristo@ti.com>
Cc: Thierry Reding <treding@nvidia.com>
Cc: stable@vger.kernel.org # v4.17+
Reported-by: Belisko Marek <marek.belisko@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-23 16:20:20 -08:00
Heiko Schocher
063c20e12f ARM: dts: am335x-shc.dts: fix wrong cd pin level
cd pin on mmc1 is GPIO_ACTIVE_LOW not GPIO_ACTIVE_HIGH

Fixes: e63201f194 ("mmc: omap_hsmmc: Delete platform data GPIO CD and WP")
Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-23 16:14:33 -08:00
Tony Lindgren
5b90df44fd ARM: dts: omap3-gta04: Fix graph_port warning
We're currently getting a warning with make dtbs:

arch/arm/boot/dts/omap3-gta04.dtsi:720.7-727.4: Warning (graph_port):
/ocp@68000000/dss@48050000/encoder@48050c0 0/port: graph node unit
address error, expected "0"

Tested-by: H. Nikolaus Schaller <hns@goldelico.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-23 16:14:15 -08:00
Arthur Demchenkov
ac9c908eec ARM: dts: n900: fix mmc1 card detect gpio polarity
Wrong polarity of card detect GPIO pin leads to the system not
booting from external mmc, if the back cover of N900 is closed.
When the cover is open the system boots fine.

This wasn't noticed before, because of a bug, which was fixed
by commit e63201f19 (mmc: omap_hsmmc: Delete platform data GPIO
CD and WP).

Kernels up to 4.19 ignored the card detect GPIO from DT.

Fixes: e63201f194 ("mmc: omap_hsmmc: Delete platform data GPIO CD and WP")
Signed-off-by: Arthur Demchenkov <spinal.by@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-01-23 16:14:15 -08:00
Christoph Hellwig
60d8cd572f arm64/xen: fix xen-swiotlb cache flushing
Xen-swiotlb hooks into the arm/arm64 arch code through a copy of the DMA
DMA mapping operations stored in the struct device arch data.

Switching arm64 to use the direct calls for the merged DMA direct /
swiotlb code broke this scheme.  Replace the indirect calls with
direct-calls in xen-swiotlb as well to fix this problem.

Fixes: 356da6d0cd ("dma-mapping: bypass indirect calls for dma-direct")
Reported-by: Julien Grall <julien.grall@arm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
2019-01-23 22:14:56 +01:00
Peng Hao
ba16adeb34 ARM: pxa: ssp: unneeded to free devm_ allocated data
devm_ allocated data will be automatically freed. The free
of devm_ allocated data is invalid.

Fixes: 1c459de1e6 ("ARM: pxa: ssp: use devm_ functions")
Signed-off-by: Peng Hao <peng.hao2@zte.com.cn>
[title's prefix changed]
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
2019-01-23 21:32:01 +01:00
Lubomir Rintel
51eea52d26
pxa2xx: replace spi_master with spi_controller
It's also a slave controller driver now, calling it "master" is slightly
misleading.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-01-23 10:59:56 +00:00
Corentin Labbe
4abf8049fb
ARM: dts: sun8i-h3: nanopi-m1-plus: enable HDMI
This patch enable HDMI output on sun8i-h3-nanopi-m1-plus.

Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
2019-01-23 11:39:09 +01:00
Chris Brandt
3a62c2d258 ARM: dts: r7s9210-rza2mevb: Add support for RZ/A2M EVB
Add support for Renesas RZ/A2M evaluation board.

Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2019-01-23 10:40:45 +01:00
Chris Brandt
bbbcd02b82 ARM: dts: r7s9210: Initial SoC device tree
Basic support for the RZ/A2 (R7S9210) SoC.

Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2019-01-23 10:06:18 +01:00