aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64
AgeCommit message (Collapse)AuthorFilesLines
2019-09-03Merge tag 'imx-dt64-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dtArnd Bergmann22-84/+2241
i.MX arm64 device tree update for 5.4: - New board support: i.MX8MQ Nitrogen8m, Hummingboard Pulse, PICO-PI-IMX8M, i.MX8QXP AI_ML, and LS1046A FRWY board. - Add gpio-ranges for GPIO devices on i.MX8MQ and i.MX8MM. - Update OPP table according to latest data sheet and add opp-suspend to OPP table for i.MX8MQ and i.MX8MM. - Add IDEL states for i.MX8MM SoC. - Correct I2C clock divider for Layerscape SoCs. - Add series alias and LPUART baud clock for i.MX8QXP SoC. - Add MIPI D-PHY device for i.MX8MQ and enable it on imx8mq-librem5 board. - Enable USB1 and Type-C support for i.MX8MM EVK board. - Add Thermal Monitor Unit support for LS1028A SoC. - Misc small update and correction on Layerscape and i.MX8 support. * tag 'imx-dt64-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (41 commits) arm64: dts: imx8mq: Add mux controller to iomuxc_gpr arm64: dts: fsl: add support for Hummingboard Pulse arm64: dts: ls1088a: update gpio compatible arm64: dts: imx: Add i.mx8mq nitrogen8m basic dts support arm64: dts: ls1088a-qds: Add the spi-flash nodes under the DSPI controller arm64: dts: ls1088a: Add the DSPI controller node arm64: dts: imx8mm: Enable cpu-idle driver arm64: dts: ls1028a: Add esdhc node in dts arm64: dts: ls1028a: Add properties node for Display output pixel clock arm64: dts: lx2160a: Fix incorrect I2C clock divider arm64: dts: ls1028a: Fix incorrect I2C clock divider arm64: dts: ls1012a: Fix incorrect I2C clock divider arm64: dts: ls1088a: Fix incorrect I2C clock divider arm64: dts: ls1028a: fix gpio nodes arm64: dts: ls1028a: Add Thermal Monitor Unit node arm64: dts: imx8mq-evk: Unbypass audio_pll1 arm64: dts: imx8mm: Add opp-suspend property to OPP table arm64: dts: imx8mq: Add opp-suspend property to OPP table arm64: dts: ls1088a: Revise gpio registers to little-endian arm64: dts: add the console node for DPAA2 platforms ... Link: https://lore.kernel.org/r/20190825153237.28829-6-shawnguo@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-09-03Merge tag 'imx-dt-clkdep-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dtArnd Bergmann5-0/+1143
i.MX device tree update with new clocks: - A series from Anson Huang to add i.MX8MN SoC and DDR4 EVK board device tree support. - Add DSP device tree support for i.MX8QXP SoC. * tag 'imx-dt-clkdep-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: arm64: dts: imx8qxp: Add DSP DT node arm64: dts: imx8mn: Add cpu-freq support arm64: dts: imx8mn-ddr4-evk: Add rohm,bd71847 PMIC support arm64: dts: imx8mn-ddr4-evk: Add i2c1 support arm64: dts: freescale: Add i.MX8MN DDR4 EVK board support arm64: dts: imx8mn: Add gpio-ranges property arm64: dts: freescale: Add i.MX8MN dtsi support clk: imx8: Add DSP related clocks clk: imx: Add support for i.MX8MN clock driver clk: imx: Add API for clk unregister when driver probe fail clk: imx8mm: Make 1416X/1443X PLL macro definitions common for usage dt-bindings: imx: Add clock binding doc for i.MX8MN Link: https://lore.kernel.org/r/20190825153237.28829-4-shawnguo@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-09-03Merge tag 'v5.3-next-dts64' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/dtArnd Bergmann2-1/+286
mt8183: - fix pwrap interrupt number - add i2c notes dt-bindings: - add compatible for mt6779 - add mt6779 uart and sysirq compatible * tag 'v5.3-next-dts64' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux: dt-bindings: irq: mtk, sysirq: add support for mt6779 dt-bindings: mtk-uart: add mt6779 uart bindings dt-bindings: mediatek: add support for mt6779 reference board arm64: dts: mt8183: add I2C nodes arm64: dts: mt8183: fix pwrap gic number Link: https://lore.kernel.org/r/def8fb77-fce4-097d-7ae2-8c4670bc09c1@gmail.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-09-03Merge tag 'sunxi-dt-for-5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dtArnd Bergmann10-22/+378
Allwinner DT changes for 5.4 Our usual pile of patches for the next release, which include mostly: - More fixes thanks to the DT validation using the YAML bindings - IR receiver support on the H6 - SPDIF support on the H6 - I2C Support on the H6 - CSI support on the A20 - RTC support on the H6 - New Boards: Lichee Zero Plus, Tanix TX6, A64-Olinuxino-eMMC * tag 'sunxi-dt-for-5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (40 commits) arm64: dts: allwinner: orange-pi-3: Enable WiFi ARM: dts: sunxi: Add missing watchdog clocks ARM: dts: sunxi: Add missing watchdog interrupts arm64: dts: allwinner: h6: Add support for RTC and fix the clock tree ARM: dts: sun7i: Add CSI0 controller arm64: dts: allwinner: a64: Add A64 OlinuXino board (with eMMC) dt-bindings: arm: sunxi: Add compatible for A64 OlinuXino with eMMC ARM: dts: v3s: Change the timers compatible ARM: dts: h3: Change the timers compatible ARM: dts: a83t: Change the timers compatible ARM: dts: a23/a33: Change the timers compatible ARM: dts: sun6i: Add missing timers interrupts ARM: dts: sun5i: Add missing timers interrupts ARM: dts: sun4i: Add missing timers interrupts dt-bindings: mfd: Convert Allwinner GPADC bindings to a schema arm64: dts: allwinner: h6: Introduce Tanix TX6 board dt-bindings: arm: sunxi: Add compatible for Tanix TX6 board arm64: allwinner: h6: add I2C nodes dt-bindings: i2c: mv64xxx: Add compatible for the H6 i2c node. ARM: dts: sunxi: Add mdio bus sub-node to GMAC ... Link: https://lore.kernel.org/r/d97e6252-9dd7-4cf5-a3cf-56f78b0ca455.lettre@localhost Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-09-03arm64: bpf: optimize modulo operationJerin Jacob2-4/+5
Optimize modulo operation instruction generation by using single MSUB instruction vs MUL followed by SUB instruction scheme. Signed-off-by: Jerin Jacob <jerinj@marvell.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2019-09-03Merge tag 'renesas-arm64-dt-for-v5.4-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/dtArnd Bergmann19-516/+646
Renesas ARM64 DT updates for v5.4 (take two) - Sort nodes in various SoC and board DTSes, - HDMI sound for HiHope RZ/G2M and R-Car M3-N Salvator-X(S) boards, - Limit EtherAVB to 100Mbps on the Ebisu and Draak boards, - Small fixes and improvements. * tag 'renesas-arm64-dt-for-v5.4-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel: (21 commits) arm64: dts: renesas: Update 'vsps' properties for readability arm64: dts: renesas: r8a77965-salvator-x(s): Enable HDMI sound arm64: dts: renesas: r8a774c0: Fix register range of display node arm64: dts: renesas: r8a77970: Sort nodes arm64: dts: renesas: r8a7796: Sort nodes arm64: dts: renesas: r8a774c0: Sort nodes arm64: dts: renesas: r8a774c0: cat874: Sort nodes arm64: dts: renesas: r8a774a1: Sort nodes arm64: dts: renesas: r8a77980: Fix IPMMU-VC0 base address arm64: dts: renesas: ebisu, draak: Limit EtherAVB to 100Mbps arm64: dts: renesas: hihope-common: Add HDMI audio support arm64: dts: renesas: r8a774c0: cat874: Add definition for 12V regulator arm64: dts: renesas: r8a774c0: Point LVDS0 to its companion LVDS1 arm64: dts: renesas: r8a77995: Sort nodes arm64: dts: renesas: r8a77995: draak: Sort nodes arm64: dts: renesas: r8a77990: Sort nodes arm64: dts: renesas: r8a77990: ebisu: Sort nodes arm64: dts: renesas: r8a77980: v3hsk: Sort nodes arm64: dts: renesas: r8a77980: condor: Sort nodes arm64: dts: renesas: r8a77970: v3msk: Sort nodes ... Link: https://lore.kernel.org/r/20190823123643.18799-4-geert+renesas@glider.be Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-09-03Merge tag 'amlogic-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dtArnd Bergmann20-2381/+4014
arm64: dts: Amlogic updates for v5.4 Highlights - new SoCs (G12B family): S922X, A311D - new SoCs (SM1 family): S905X3 - new board: SEI Robotics SEI610 (SM1/S905X3) - new board: Khadas VIM3 (G12B/A311D) - DVFS/CPUfreq support on G12[AB] family * tag 'amlogic-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: (40 commits) arm64: dts: add support for SM1 based SEI Robotics SEI610 dt-bindings: arm: amlogic: add SEI Robotics SEI610 bindings dt-bindings: arm: amlogic: add SM1 bindings arm64: dts: meson-g12b-odroid-n2: enable DVFS arm64: dts: meson-g12b-khadas-vim3: add initial device-tree dt-bindings: arm: amlogic: fix x96-max/sei510 section in amlogic.yaml arm64: dts: amlogic: g12 CPU timers stop in suspend arm64: dts: meson-g12b: support a311d and s922x cpu operating points dt-bindings: arm: amlogic: add support for the Khadas VIM3 dt-bindings: arm: amlogic: add bindings for the Amlogic G12B based A311D SoC dt-bindings: arm: amlogic: add bindings for G12B based S922X SoC arm64: dts: meson: add video decoder entries arm64: dts: meson-gx: add video decoder entry dt-bindings: media: amlogic,vdec: add default compatible arm64: dts: meson: add ethernet fifo sizes arm64: dts: meson-g12b: add cpus OPP tables arm64: dts: meson-g12a: enable DVFS on G12A boards arm64: dts: meson-g12a: add cpus OPP table arm64: dts: meson-g12-common: add pwm_a on GPIOE_2 pinmux arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi ... Link: https://lore.kernel.org/r/7hr25fbi4v.fsf@baylibre.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-09-03Merge tag 'socfpga_dts_updates_for_v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into arm/dtArnd Bergmann2-0/+20
SoCFPGA DTS updates for v5.4 - Add reset properties for various peripherals - QSPI OCP and DMA on Arria10 - DMA on Agilex/Stratix10 - Update NAND controller bindings to match driver update - Add NAND controller to Stratix10 - VINING FPGA board fixups - Update button mapping - Adjust GMAC1 clock and TXD skew settings - Add missing reset-names for dma controller * tag 'socfpga_dts_updates_for_v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: dts: socfpga: add missing reset-names for dma ARM: dts: socfpga: Adjust GMAC1 clock and TXD lines skew on VINING FPGA ARM: dts: socfpga: Fix up button mapping on VINING FPGA arm64: dts: stratix10: Add NAND device node ARM: dts: socfpga: update to new Denali NAND binding arm64: dts: agilex/stratix10: Add reset properties for DMA ARM: dts: socfpga: add reset properties for DMA ARM: dts: socfpga: add the QSPI OCP reset property on arria10 Link: https://lore.kernel.org/r/20190819141659.26414-1-dinguyen@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-09-03Merge tag 'v5.4-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dtArnd Bergmann4-0/+681
PWM-Fan and nor-flash for the RockPro64, a better display mode for the Kevin Chromebook and a new board the Leez P710 SBC. * tag 'v5.4-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: arm64: dts: rockchip: Add dts for Leez RK3399 P710 SBC arm64: dts: rockchip: enable internal SPI flash for RockPro64. arm64: dts: rockchip: Add PWM fan for RockPro64 arm64: dts: rockchip: Specify override mode for kevin panel Link: https://lore.kernel.org/r/20190819141659.26414-1-dinguyen@kernel.org Link: https://lore.kernel.org/r/2362486.gYoCZEsBuK@phil Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-09-03Merge tag 'imx-soc-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/socArnd Bergmann1-0/+1
i.MX SoC changes for 5.4: - Drop AR8031 PHY TX delay adjusting from i.MX7D machine code, as it's superfluous due to the recent changes to Atheros AT803X driver. - Select TIMER_IMX_SYS_CTR for arm64 ARCH_MXC platform, since the system counter is needed as broadcast timer for cpuidle support. * tag 'imx-soc-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx: stop adjusting ar8031 phy tx delay arm64: Enable TIMER_IMX_SYS_CTR for ARCH_MXC platforms Link: https://lore.kernel.org/r/20190825153237.28829-2-shawnguo@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-09-02Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netDavid S. Miller3-0/+8
r8152 conflicts are the NAPI fixes in 'net' overlapping with some tasklet stuff in net-next Signed-off-by: David S. Miller <davem@davemloft.net>
2019-09-01arm64: defconfig: Enable CPU clock drivers for Qualcomm msm8916Marc Gonzalez1-0/+2
QCOM_A53PLL and QCOM_CLK_APCS_MSM8916 used to be enabled by default in drivers/clk/qcom/Kconfig. A recent patch changed that by dropping the 'default ARCH_QCOM' directive. Add the two options explicitly in the arm64 defconfig, to avoid functional regressions. Acked-by: Amit Kucheria <amit.kucheria@linaro.org> Signed-off-by: Marc Gonzalez <marc.w.gonzalez@free.fr> [bjorn: Rewrote subject] Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2019-09-01arm64: defconfig: Add DRM_MSM to defconfigs with ARCH_QCOMJordan Crouse1-0/+1
Now that CONFIG_DRM_MSM is no longer default 'y' add it as a module to all ARCH_QCOM enabled defconfigs to restore the previous expected build behavior. I split this off from the original patch to separate out the ARM64 portions. Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Andy Gross <agross@kernel.org>
2019-09-01arm64: dts: rockchip: limit clock rate of MMC controllers for RK3328Shawn Lin1-0/+3
150MHz is a fundamental limitation of RK3328 Soc, w/o this limitation, eMMC, for instance, will run into 200MHz clock rate in HS200 mode, which makes the RK3328 boards not always boot properly. By adding it in rk3328.dtsi would also obviate the worry of missing it when adding new boards. Fixes: 52e02d377a72 ("arm64: dts: rockchip: add core dtsi file for RK3328 SoCs") Cc: stable@vger.kernel.org Cc: Robin Murphy <robin.murphy@arm.com> Cc: Liang Chen <cl@rock-chips.com> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2019-08-31tracing/arm64: Have max stack tracer handle the case of return address after dataSteven Rostedt (VMware)1-0/+13
Most archs (well at least x86) store the function call return address on the stack before storing the local variables for the function. The max stack tracer depends on this in its algorithm to display the stack size of each function it finds in the back trace. Some archs (arm64), may store the return address (from its link register) just before calling a nested function. There's no reason to save the link register on leaf functions, as it wont be updated. This breaks the algorithm of the max stack tracer. Add a new define ARCH_FTRACE_SHIFT_STACK_TRACER that an architecture may set if it stores the return address (link register) after it stores the function's local variables, and have the stack trace shift the values of the mapped stack size to the appropriate functions. Link: 20190802094103.163576-1-jiping.ma2@windriver.com Reported-by: Jiping Ma <jiping.ma2@windriver.com> Acked-by: Will Deacon <will@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
2019-08-31arm64: dts: renesas: hihope-common: Fix eMMC statusFabrizio Castro1-0/+1
SDHI3 got accidentally disabled while adding USB 2.0 support, this patch fixes it. Fixes: 734d277f412a ("arm64: dts: renesas: hihope-common: Add USB 2.0 support") Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
2019-08-31arm64: dts: marvell: add DTS for Turris MoxMarek Behún2-0/+841
This adds support for the Turris Mox board from CZ.NIC. Turris Mox is as modular router based on the Armada 3720 SOC (same as EspressoBin). The basic board can be extended by different modules. If those are connected, U-Boot lets the kernel know via device-tree. Since modules can be connected in different order and some modules can be connected multiple times (up to three modules containing 8-port ethernet switch in DSA configuration can be connected) we decided against using device-tree overlays, because it got complicated rather quickly. (For example the SFP module can be connected directly to the CPU, or after a switch module. There are four cases and all would need different SFP overlay. There are two types of switch modules (8-port with pass-through and 4-port with no pass-through). For those we would again need at least 6 more overlays.) We therefore decided to put all the possibly connected devices in one device-tree and disable them by default. When U-Boot finds out which modules are connected, it fixes the loaded device-tree accordingly just before boot. By Rob Herring's suggestion we also made it so that U-Boot completely removes nodes which are disabled after this fixup. Signed-off-by: Marek Behún <marek.behun@nic.cz> Cc: Rob Herring <robh@kernel.org> Cc: Gregory CLEMENT <gregory.clement@bootlin.com> Cc: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2019-08-31arm64: dts: marvell: armada-37xx: add SPI CS1 pinctrlMarek Behún1-0/+5
This adds pinctrl node for the GPIO to be used as SPI chip select 1. Signed-off-by: Marek Behún <marek.behun@nic.cz> Cc: Gregory CLEMENT <gregory.clement@bootlin.com> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2019-08-30Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/socLinus Torvalds3-0/+8
Pull ARM SoC fixes from Arnd Bergmann: "The majority of the fixes this time are for OMAP hardware, here is a breakdown of the significant changes: Various device tree bug fixes: - TI am57xx boards need a voltage level fix to avoid damaging SD cards - vf610-bk4 fails to detect its flash due to an incorrect description - meson-g12a USB phy configuration fails - meson-g12b reboot should not power off the SD card - Some corrections for apparently harmless differences from the documentation. Regression fixes: - ams-delta FIQ interrupts broke in 5.3 - TI am3/am4 mmc controllers broke in 5.2 The logic_pio driver (used on some Huawei ARM servers) got a few bug fixes for reliability. And a couple of compile-time warning fixes" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (26 commits) soc: ixp4xx: Protect IXP4xx SoC drivers by ARCH_IXP4XX || COMPILE_TEST soc: ti: pm33xx: Make two symbols static soc: ti: pm33xx: Fix static checker warnings ARM: OMAP: dma: Mark expected switch fall-throughs ARM: dts: Fix incomplete dts data for am3 and am4 mmc bus: ti-sysc: Simplify cleanup upon failures in sysc_probe() ARM: OMAP1: ams-delta-fiq: Fix missing irq_ack ARM: dts: dra74x: Fix iodelay configuration for mmc3 ARM: dts: am335x: Fix UARTs length ARM: OMAP2+: Fix omap4 errata warning on other SoCs bus: hisi_lpc: Add .remove method to avoid driver unbind crash bus: hisi_lpc: Unregister logical PIO range to avoid potential use-after-free lib: logic_pio: Add logic_pio_unregister_range() lib: logic_pio: Avoid possible overlap for unregistering regions lib: logic_pio: Fix RCU usage arm64: dts: amlogic: odroid-n2: keep SD card regulator always on arm64: dts: meson-g12a-sei510: enable IR controller arm64: dts: meson-g12a: add missing dwc2 phy-names ARM: dts: vf610-bk4: Fix qspi node description ARM: dts: Fix incorrect dcan register mapping for am3, am4 and dra7 ...
2019-08-30Merge branch 'for-next/atomics' into for-next/coreWill Deacon9-416/+408
* for-next/atomics: (10 commits) Rework LSE instruction selection to use static keys instead of alternatives
2019-08-30Merge branches 'for-next/52-bit-kva', 'for-next/cpu-topology', 'for-next/error-injection', 'for-next/perf', 'for-next/psci-cpuidle', 'for-next/rng', 'for-next/smpboot', 'for-next/tbi' and 'for-next/tlbi' into for-next/coreWill Deacon41-517/+512
* for-next/52-bit-kva: (25 commits) Support for 52-bit virtual addressing in kernel space * for-next/cpu-topology: (9 commits) Move CPU topology parsing into core code and add support for ACPI 6.3 * for-next/error-injection: (2 commits) Support for function error injection via kprobes * for-next/perf: (8 commits) Support for i.MX8 DDR PMU and proper SMMUv3 group validation * for-next/psci-cpuidle: (7 commits) Move PSCI idle code into a new CPUidle driver * for-next/rng: (4 commits) Support for 'rng-seed' property being passed in the devicetree * for-next/smpboot: (3 commits) Reduce fragility of secondary CPU bringup in debug configurations * for-next/tbi: (10 commits) Introduce new syscall ABI with relaxed requirements for pointer tags * for-next/tlbi: (6 commits) Handle spurious page faults arising from kernel space
2019-08-30arm64: atomics: Use K constraint when toolchain appears to support itWill Deacon2-24/+48
The 'K' constraint is a documented AArch64 machine constraint supported by GCC for matching integer constants that can be used with a 32-bit logical instruction. Unfortunately, some released compilers erroneously accept the immediate '4294967295' for this constraint, which is later refused by GAS at assembly time. This had led us to avoid the use of the 'K' constraint altogether. Instead, detect whether the compiler is up to the job when building the kernel and pass the 'K' constraint to our 32-bit atomic macros when it appears to be supported. Signed-off-by: Will Deacon <will@kernel.org>
2019-08-30arm64: atomics: Undefine internal macros after useWill Deacon2-0/+11
We use a bunch of internal macros when constructing our atomic and cmpxchg routines in order to save on boilerplate. Avoid exposing these directly to users of the header files. Reviewed-by: Andrew Murray <andrew.murray@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
2019-08-30arm64: lse: Make ARM64_LSE_ATOMICS depend on JUMP_LABELWill Deacon1-0/+1
Support for LSE atomic instructions (CONFIG_ARM64_LSE_ATOMICS) relies on a static key to select between the legacy LL/SC implementation which is available on all arm64 CPUs and the super-duper LSE implementation which is available on CPUs implementing v8.1 and later. Unfortunately, when building a kernel with CONFIG_JUMP_LABEL disabled (e.g. because the toolchain doesn't support 'asm goto'), the static key inside the atomics code tries to use atomics itself. This results in a mess of circular includes and a build failure: In file included from ./arch/arm64/include/asm/lse.h:11, from ./arch/arm64/include/asm/atomic.h:16, from ./include/linux/atomic.h:7, from ./include/asm-generic/bitops/atomic.h:5, from ./arch/arm64/include/asm/bitops.h:26, from ./include/linux/bitops.h:19, from ./include/linux/kernel.h:12, from ./include/asm-generic/bug.h:18, from ./arch/arm64/include/asm/bug.h:26, from ./include/linux/bug.h:5, from ./include/linux/page-flags.h:10, from kernel/bounds.c:10: ./include/linux/jump_label.h: In function ‘static_key_count’: ./include/linux/jump_label.h:254:9: error: implicit declaration of function ‘atomic_read’ [-Werror=implicit-function-declaration] return atomic_read(&key->enabled); ^~~~~~~~~~~ [ ... more of the same ... ] Since LSE atomic instructions are not critical to the operation of the kernel, make them depend on JUMP_LABEL at compile time. Reviewed-by: Andrew Murray <andrew.murray@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
2019-08-30arm64: asm: Kill 'asm/atomic_arch.h'Will Deacon4-157/+140
The contents of 'asm/atomic_arch.h' can be split across some of our other 'asm/' headers. Remove it. Reviewed-by: Andrew Murray <andrew.murray@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
2019-08-30arm64: lse: Remove unused 'alt_lse' assembly macroWill Deacon1-22/+0
The 'alt_lse' assembly macro has been unused since 7c8fc35dfc32 ("locking/atomics/arm64: Replace our atomic/lock bitop implementations with asm-generic"). Remove it. Reviewed-by: Andrew Murray <andrew.murray@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
2019-08-30crypto: arm64/aes - implement accelerated ESSIV/CBC modeArd Biesheuvel2-0/+152
Add an accelerated version of the 'essiv(cbc(aes),sha256)' skcipher, which is used by fscrypt or dm-crypt on systems where CBC mode is signficantly more performant than XTS mode (e.g., when using a h/w accelerator which supports the former but not the latter) This avoids a separate call into the AES cipher for every invocation. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-08-30crypto: arm64/aes-cts-cbc - factor out CBC en/decryption of a walkArd Biesheuvel1-42/+40
The plain CBC driver and the CTS one share some code that iterates over a scatterwalk and invokes the CBC asm code to do the processing. The upcoming ESSIV/CBC mode will clone that pattern for the third time, so let's factor it out first. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-08-29arm64: dts: meson-sm1-sei610: add stdout-path property backNeil Armstrong1-0/+4
The commit d4609acce187 ("arm64: dts: meson-sm1-sei610: enable DVFS") incorrectly removed the chosen node and the stdout-path property. Add these back. Fixes: d4609acce187 ("arm64: dts: meson-sm1-sei610: enable DVFS") Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-sm1-sei610: enable DVFSNeil Armstrong1-4/+0
This enables DVFS for the Amlogic SM1 based SEI610 board by: - Adding the SM1 SoC OPPs taken from the vendor tree - Selecting the SM1 Clock controller instead of the G12A one - Adding the CPU rail regulator, PWM and OPPs for each CPU nodes. Each power supply can achieve 0.69V to 1.05V using a single PWM output clocked at 666KHz with an inverse duty-cycle. DVFS has been tested by running the arm64 cpuburn at [1] and cycling between all the possible cpufreq translations of the cpu cluster and checking the final frequency using the clock-measurer, script at [2]. [1] https://github.com/ssvb/cpuburn-arm/blob/master/cpuburn-a53.S [2] https://gist.github.com/superna9999/d4de964dbc0f84b7d527e1df2ddea25f Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Kevin Hilman <khilman@baylibre.com> Tested-by: Kevin Hilman <khilman@baylibre.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: khadas-vim3: add support for the SM1 based VIM3LNeil Armstrong2-0/+71
Add the Amlogic SM1 based Khadas VIM3L, sharing all the same features as the G12B based VIM3, but: - a different DVFS support since only a single cluster is available - audio is still not available on SM1 Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Kevin Hilman <khilman@baylibre.com> Tested-by: Kevin Hilman <khilman@baylibre.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: khadas-vim3: move common nodes into meson-khadas-vim3.dtsiNeil Armstrong4-355/+362
To prepare support of the Amlogic SM1 based Khadas VIM3, move the non-G12B specific nodes (all except DVFS and Audio) to a new meson-khadas-vim3.dtsi Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Kevin Hilman <khilman@baylibre.com> Tested-by: Kevin Hilman <khilman@baylibre.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson: g12a: add reset to tdm formattersJerome Brunet1-0/+8
Add the reset to the TDM formatters of the g12a. This helps with channel mapping when a playback/capture uses more than 1 lane. Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson: g12a: audio clock controller provides resetsJerome Brunet1-0/+1
The clock controller dedicated to audio clocks also provides reset lines on the g12 SoC family Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-sm1-sei610: enable DVFSNeil Armstrong2-0/+124
This enables DVFS for the Amlogic SM1 based SEI610 board by: - Adding the SM1 SoC OPPs taken from the vendor tree - Selecting the SM1 Clock controller instead of the G12A one - Adding the CPU rail regulator, PWM and OPPs for each CPU nodes. Each power supply can achieve 0.69V to 1.05V using a single PWM output clocked at 666KHz with an inverse duty-cycle. DVFS has been tested by running the arm64 cpuburn at [1] and cycling between all the possible cpufreq translations of the cpu cluster and checking the final frequency using the clock-measurer, script at [2]. [1] https://github.com/ssvb/cpuburn-arm/blob/master/cpuburn-a53.S [2] https://gist.github.com/superna9999/d4de964dbc0f84b7d527e1df2ddea25f Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Kevin Hilman <khilman@baylibre.com> Tested-by: Kevin Hilman <khilman@baylibre.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-gxm-khadas-vim2: use rc-khadas keymapChristian Hewitt1-1/+1
Swap to the rc-khadas keymap that maps the mouse button to KEY_MUTE. Signed-off-by: Christian Hewitt <christianshewitt@gmail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-gxl-s905w-tx3-mini: add rc-tx3mini keymapChristian Hewitt1-0/+4
add the rc-tx3mini keymap to the ir node Signed-off-by: Christian Hewitt <christianshewitt@gmail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-gxl-s905x-khadas-vim: use rc-khadas keymapChristian Hewitt1-1/+1
Swap to the rc-khadas keymap that maps the mouse button to KEY_MUTE. Signed-off-by: Christian Hewitt <christianshewitt@gmail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-gxbb-wetek-play2: add rc-wetek-play2 keymapChristian Hewitt1-0/+4
add the rc-wetek-play2 keymap to the ir node Signed-off-by: Christian Hewitt <christianshewitt@gmail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-gxbb-wetek-hub: add rc-wetek-hub keymapChristian Hewitt1-0/+4
add the rc-wetek-hub keymap to the ir node Signed-off-by: Christian Hewitt <christianshewitt@gmail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-g12a-x96-max: add rc-x96max keymapChristian Hewitt1-0/+1
add the rc-x96max keymap to the ir node Signed-off-by: Christian Hewitt <christianshewitt@gmail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-g12b-odroid-n2: add rc-odroid keymapChristian Hewitt1-0/+1
add the rc-odroid keymap to the ir node Signed-off-by: Christian Hewitt <christianshewitt@gmail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-sm1-sei610: add USB supportNeil Armstrong1-0/+5
Add the USB properties for the Amlogic SM1 Based SEI610 Board in order to support the USB DRD Type-C port and the USB3 Type A port. The USB DRD Type-C controller uses the ID signal to toggle the USB role between the DWC3 Host controller and the DWC2 Device controller. Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-sm1-sei610: add HDMI display supportNeil Armstrong1-0/+23
Add the HDMI support nodes for the Amlogic SM1 Based SEI610 Board. Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-g12: add Everything-Else power domain controllerNeil Armstrong4-48/+78
Replace the VPU-centric power domain controller by the generic system-wide Everything-Else power domain controller and setup the right power-domains properties on the VPU, Ethernet & USB nodes. Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Kevin Hilman <khilman@baylibre.com> Tested-by: Kevin Hilman <khilman@baylibre.com> [khilman: minor subject edit: add dts] Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson: fix boards regulators states formatNeil Armstrong6-12/+12
This fixes the following DT schemas check errors: meson-gxbb-odroidc2.dt.yaml: gpio-regulator-tf_io: states:0: Additional items are not allowed (1800000, 1 were unexpected) meson-gxbb-odroidc2.dt.yaml: gpio-regulator-tf_io: states:0: [3300000, 0, 1800000, 1] is too long meson-gxbb-nexbox-a95x.dt.yaml: gpio-regulator: states:0: Additional items are not allowed (3300000, 1 were unexpected) meson-gxbb-nexbox-a95x.dt.yaml: gpio-regulator: states:0: [1800000, 0, 3300000, 1] is too long meson-gxbb-p200.dt.yaml: gpio-regulator: states:0: Additional items are not allowed (3300000, 1 were unexpected) meson-gxbb-p200.dt.yaml: gpio-regulator: states:0: [1800000, 0, 3300000, 1] is too long meson-gxl-s905x-hwacom-amazetv.dt.yaml: gpio-regulator: states:0: Additional items are not allowed (3300000, 1 were unexpected) meson-gxl-s905x-hwacom-amazetv.dt.yaml: gpio-regulator: states:0: [1800000, 0, 3300000, 1] is too long meson-gxbb-p201.dt.yaml: gpio-regulator: states:0: Additional items are not allowed (3300000, 1 were unexpected) meson-gxbb-p201.dt.yaml: gpio-regulator: states:0: [1800000, 0, 3300000, 1] is too long meson-g12b-odroid-n2.dt.yaml: gpio-regulator-tf_io: states:0: Additional items are not allowed (1800000, 1 were unexpected) meson-g12b-odroid-n2.dt.yaml: gpio-regulator-tf_io: states:0: [3300000, 0, 1800000, 1] is too long meson-gxl-s905x-nexbox-a95x.dt.yaml: gpio-regulator: states:0: Additional items are not allowed (3300000, 1 were unexpected) meson-gxl-s905x-nexbox-a95x.dt.yaml: gpio-regulator: states:0: [1800000, 0, 3300000, 1] is too long Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-gxbb-p201: fix snps, reset-delays-us formatNeil Armstrong1-1/+1
This fixes the following DT schemas check errors: meson-gxbb-p201.dt.yaml: ethernet@c9410000: snps,reset-delays-us: [[0, 10000, 1000000]] is too short Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-gxbb-nanopi-k2: add missing modelNeil Armstrong1-0/+1
This fixes the following DT schemas check errors: meson-gxbb-nanopi-k2.dt.yaml: /: 'model' is a required property Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-g12a-x96-max: fix compatibleNeil Armstrong1-1/+1
This fixes the following DT schemas check errors: meson-g12a-x96-max.dt.yaml: /: compatible: ['amediatech,x96-max', 'amlogic,u200', 'amlogic,g12a'] is not valid under any of the given schemas Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2019-08-29arm64: dts: meson-g12a: fix reset controller compatibleNeil Armstrong1-2/+1
This fixes the following DT schemas check errors: meson-g12a-u200.dt.yaml: reset-controller@1004: compatible:0: 'amlogic,meson-g12a-reset' is not one of ['amlogic,meson8b-reset', 'amlogic,meson-gxbb-reset', 'amlogic,meson-axg-reset'] meson-g12a-sei510.dt.yaml: reset-controller@1004: compatible:0: 'amlogic,meson-g12a-reset' is not one of ['amlogic,meson8b-reset', 'amlogic,meson-gxbb-reset', 'amlogic,meson-axg-reset'] Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>