aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
AgeCommit message (Collapse)AuthorFilesLines
2021-10-20ARM: Use of_get_cpu_hwid()Rob Herring1-20/+2
Replace the open coded parsing of CPU nodes' 'reg' property with of_get_cpu_hwid(). This change drops an error message for missing 'reg' property, but that should not be necessary as the DT tools will ensure 'reg' is present. Cc: Russell King <linux@armlinux.org.uk> Signed-off-by: Rob Herring <robh@kernel.org> Tested-by: Florian Fainelli <f.fainelli@gmail.com> Link: https://lore.kernel.org/r/20211006164332.1981454-3-robh@kernel.org
2021-10-20dt-bindings: net: wireless: ti,wlcore: Convert to json-schemaGeert Uytterhoeven1-1/+1
The Texas Instruments Wilink 6/7/8 (wl12xx/wl18xx) Wireless LAN Controllers can be connected via SPI or via SDIO. Convert the two Device Tree binding documents to json-schema, and merge them into a single document. Add missing ti,wl1285 compatible value. Add missing interrupt-names property. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/23a2fbc46255a988e5d36f6c14abb7130480d200.1634646975.git.geert+renesas@glider.be Signed-off-by: Rob Herring <robh@kernel.org>
2021-10-20ep93xx: clock: convert in-place to COMMON_CLKNikita Shubin4-434/+575
Converted in-place without moving file to drivers/clk. tested on ts7250 (EP9302). Only setting rate and change parent tested for, as they are missing on ts7250: - video - I2S - ADC/KEYPAD - PWM Only video and I2S clock are interesting, as they are GATE + double DIV + MUX, all other are pretty much common but require ep93xx_syscon_swlocked_write to set registers. Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me> Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com> Tested-by: Alexander Sverdlin <alexander.sverdlin@gmail.com> Acked-by: Alexander Sverdlin <alexander.sverdlin@gmail.com> Link: https://lore.kernel.org/r/20211018103105.146380-3-alexander.sverdlin@gmail.com' Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-20ARM: dts: mstar: Mark timer with arm,cpu-registers-not-fw-configuredRomain Perier1-0/+1
The vendor u-boot does not configure the arch timer correctly on MStar, let Linux do it. Signed-off-by: Romain Perier <romain.perier@gmail.com> Signed-off-by: Daniel Palmer <daniel@0x0f.com> Link: https://lore.kernel.org/linux-arm-kernel/20210923170747.5786-2-romain.perier@gmail.com
2021-10-20ARM: dts: mstar: Add rtc device nodeRomain Perier1-0/+8
This adds the definition of the rtc device node. The RTC being able to work with the oscillator at 12Mhz for now, it shares the same xtal than the watchdog. Signed-off-by: Romain Perier <romain.perier@gmail.com> Signed-off-by: Daniel Palmer <daniel@0x0f.com> Link: https://lore.kernel.org/all/20210823171613.18941-4-romain.perier@gmail.com
2021-10-20Merge tag 'sunxi-fixes-for-5.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/fixesArnd Bergmann1-1/+1
Two patches to fix the GMAC PHY mode on some boards. * tag 'sunxi-fixes-for-5.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node Link: https://lore.kernel.org/r/d4c41c71-f1ff-4464-a26f-1bfd4b52fd78.lettre@localhost Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-20Merge tag 'arm-soc/for-5.15/devicetree' of https://github.com/Broadcom/stblinux into arm/dtArnd Bergmann4-15/+24
This is already in v5.15-rc5, but I'm adding it here as well to get a clean build of the dts files. * tag 'arm-soc/for-5.15/devicetree': ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address ARM: dts: bcm2711-rpi-4-b: Fix pcie0's unit address formatting ARM: dts: bcm2711-rpi-4-b: fix sd_io_1v8_reg regulator states ARM: dts: bcm2711: fix MDIO #address- and #size-cells ARM: dts: bcm283x: Fix VEC address for BCM2711
2021-10-20Merge tag 'v5.16-rockchip-dts32-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dtArnd Bergmann6-34/+32
Adapt gpio subnode names to match the yaml binding and removal of the actually non-matching fallback-string for usb-phys on rk3066/rk3188 (most-specific compatible is and must always be used). * tag 'v5.16-rockchip-dts32-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: remove usb-phy fallback string from rk3066a/rk3188 ARM: dts: rockchip: change gpio nodenames Link: https://lore.kernel.org/r/3630369.N7QejLDta5@phil Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-20Merge tag 'gemini-dts-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into arm/dtArnd Bergmann9-97/+314
Gemini changes for the v5.16 kernel cycle: - Add device trees for Edimax NS2502 and SSI 1328 - Consolidate PCI interrupts * tag 'gemini-dts-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik: ARM: dts: gemini: Consolidate PCI interrupt-map properties ARM: gemini: add device tree for ssi1328 ARM: gemini: add device tree for edimax NS2502 dt-bindings: add vendor prefix for ssi dt-bindings: add vendor prefix for edimax ARM: dts: gemini: add labels for USB, IDE, flash and ethernet Link: https://lore.kernel.org/r/CACRpkdac5Sbt42CtuLMgCazfHdhcP98mEKGjeZ-DVcb=_N90Bg@mail.gmail.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-20Merge tag 'ixp4xx-dts-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into arm/dtArnd Bergmann14-2/+32
IXP4xx DTS changes for the v5.16 kernel: - Add the PTP timesource - Push down PCI interrupt properties to the individual board files. * tag 'ixp4xx-dts-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik: ARM: dts: ixp4xx: Group PCI interrupt properties together ARM: dts: Add PTP timesource to the IXP456x Link: https://lore.kernel.org/r/CACRpkdbSJ662h_B9mAGdXWBeq8ZwKTQvSJ7cZ2x2d8UgELP5QA@mail.gmail.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-20Merge tag 'sunxi-dt-for-5.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dtArnd Bergmann17-92/+121
Our usual round of DT patches for the 5.16 merge window, with: - DT schema fixes - I2S support for the R40 - HDMI support for the pinetab - devfreq support for the A64 GPU * tag 'sunxi-dt-for-5.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (21 commits) dt-bindings: interconnect: sunxi: Add R40 MBUS compatible arm64: dts: allwinner: NanoPi R1S H5: Add generic compatible string for I2C EEPROM arm64: dts: allwinner: pinetab: Add HDMI support arm64: dts: allwinner: a64: Add GPU opp table ARM: dts: sun8i: r40: Add I2S nodes dt-bindings: sound: sun4i-i2s: add Allwinner R40 I2S compatible arm64: dts: allwinner: teres-i: Remove wakekup-source from the PMIC arm64: dts: allwinner: teres-i: Add missing reg arm64: dts: allwinner: pinetab: Change regulator node name to avoid warning arm64: dts: allwinner: a100: Fix thermal zone node name arm64: dts: allwinner: h6: Fix de3 parent clocks ordering arm64: dts: allwinner: h5: Fix GPU thermal zone node name ARM: dts: cubieboard4: Remove the dumb-vga-dac compatible ARM: dts: tbs711: Fix touchscreen compatible ARM: dts: sunxi: Fix the SPI NOR node names ARM: dts: sunxi: Fix OPPs node name ARM: dts: sunxi: Fix OPP arrays ARM: dts: sunxi: Rename gpio pinctrl names ARM: dts: sunxi: Rename power-supply names dt-bindings: sunxi: Add Allwinner A80 PRCM Binding ... Link: https://lore.kernel.org/r/5cad5ac6-187d-4d36-9437-5821c6e8242d.lettre@localhost Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-20Merge tag 'imx-dt-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dtArnd Bergmann39-323/+1650
i.MX device tree changes for 5.16: - New board support: Kobo Libra H2O, Tolino Vision 5, SKOV LT2 and Colibri i.MX6ULL eMMC variants. - A series from Fabio Estevam to correct SPI chipselect polarity for various i.MX6/7 boards. - A couple of patches from Krzysztof Kozlowski to clean up unsupported properties from imx6dl-b1x5v2 and imx6dl-prtrvt boards. - A series from Li Yang to clean up LS1021a based boards and add missing device nodes. - A series from Matthias Schiffer to fix typo, add SPI-NOR flash and partition layout for imx7-tqma7/mba7 boards. - Fix the schema check errors in i.MX PCIe device nodes. - Other random and small fix-up and device additions. * tag 'imx-dt-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (42 commits) ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash ARM: dts: ls1021a: move thermal-zones node out of soc/ ARM: dts: ls1021a-tsn: remove undocumented property "position" from mma8452 node ARM: dts: ls1021a-qds: change fpga to simple-mfd device ARM: dts: ls1021a: add #power-domain-cells for power-controller node ARM: dts: ls1021a: add #dma-cells to qdma node ARM: dts: ls1021a: fix memory node for schema check ARM: dts: ls1021a: remove regulators simple-bus ARM: dts: ls1021a: disable ifc node by default ARM: dts: ls1021a: breakup long values in thermal node ARM: dts: ls1021a: fix board compatible to follow binding schema ARM: dts: ls1021a: update pcie nodes for dt-schema check ARM: dts: ls1021a-qds: Add node for QSPI flash ARM: dts: ls1021a: change to use SPDX identifiers ARM: dts: ls1021a: change dma channels order to match schema ARM: dts: ls1021a: remove clock-names property for i2c nodes ARM: dts: imx6dl-prtrvt: drop undocumented TRF7970A NFC properties ARM: dts: imx6: phytec: Add gpio pinctrl for i2c bus recovery ARM: dts: imx6: skov: provide panel support for lt2 variants ARM: dts: imx6qdl-apalis: Fix typo in ADC comment ... Link: https://lore.kernel.org/r/20211016140138.1603-3-shawnguo@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-20Merge tag 'mvebu-dt-5.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/dtArnd Bergmann2-0/+296
mvebu dt for 5.16 (part 1) Add support for Netgear GS110EMX switch (Armada 381 SoC based) * tag 'mvebu-dt-5.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu: ARM: dts: mvebu: add device tree for netgear gs110emx switch Link: https://lore.kernel.org/r/874k9imeel.fsf@BL-laptop Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-20ARM: dts: rockchip: remove usb-phy fallback string from rk3066a/rk3188Johan Jonker2-4/+2
With the conversion of rockchip-usb-phy.yaml a long time used fallback string for rk3066a/rk3188 was added. The linux driver doesn't do much with the GRF phy address range, however the u-boot driver rockchip_usb2_phy.c does. The bits in GRF_UOC0_CON2 for rk3066a/rk3188 and rk3288 for example don't match. Remove the usb-phy fallback string for rk3066a/rk3188 to prevent possible strange side effects. Signed-off-by: Johan Jonker <jbx6244@gmail.com> Link: https://lore.kernel.org/r/20210828111218.10026-2-jbx6244@gmail.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2021-10-20ARM: dts: gemini: Consolidate PCI interrupt-map propertiesRob Herring6-91/+20
The Gemini PCI 'interrupt-map' does not vary by board, so let's move the definition to a common location. This avoids having incomplete interrupt properties (i.e. #interrupt-cells without interrupt-map). Cc: Hans Ulli Kroll <ulli.kroll@googlemail.com> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Rob Herring <robh@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2021-10-20ARM: dts: ixp4xx: Group PCI interrupt properties togetherRob Herring13-2/+24
Move the PCI 'interrupt-map-mask' and '#interrupt-cells' properties alongside the 'interrupt-map' property in each board dts. This avoids having incomplete set of interrupt properties which may fail validation. Cc: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Rob Herring <robh@kernel.org>
2021-10-20Merge tag 'stm32-dt-for-v5.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/dtArnd Bergmann13-15/+508
STM32 DT for v5.16, round 1 Highlights: ---------- - MPU: - ST boards: - Add new stm32mp135f-dk board. It embedds new STM32MP135 SoC, with 512 MB of DDR3. Several connections are available on this board: 4*USB2.0, 1*USB2.0 typeC DRD, SDcard, 2*RJ45, HDMI, Combo Wifi/BT, ... Only SD card, uart4 (console) and watchdog IPs are enabled in this tag. - Change IRQ level for STUSB1600 on DKx boards. - Fix SAI subclocks range. - Add ck_usb0_48m clock in USB OHCI node device to match with STM32MP15 datasheet. - DH boards: - Reduce DHCOR SPI NOR frequency to 50 MHz to avoid sporadic issues. - Fix SAI pin muxing. - Odyssey: - Set DCMI pins. * tag 'stm32-dt-for-v5.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32: ARM: dts: stm32: use usbphyc ck_usbo_48m as USBH OHCI clock on stm32mp151 ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15 ARM: dts: stm32: fix SAI sub nodes register range ARM: dts: stm32: fix STUSB1600 Type-C irq level on stm32mp15xx-dkx ARM: dts: stm32: set the DCMI pins on stm32mp157c-odyssey ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz ARM: dts: stm32: add initial support of stm32mp135f-dk board dt-bindings: stm32: document stm32mp135f-dk board ARM: dts: stm32: add STM32MP13 SoCs support Link: https://lore.kernel.org/r/9d52c3e2-a3b9-89f3-1896-7cd3560e7010@foss.st.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-19Merge tag 'aspeed-5.16-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc into arm/dtArnd Bergmann8-21/+1872
ASPEED device tree updates for 5.15 - New machines: * TYAN S7106 BMC, a x86 server from about four years ago - Descriptions for the AST2600 ADC, which now has an upstream driver - Lots of GPIO line names. The OpenBMC project has adopted a scheme for naming the lines, and new additions will follow this guide - New I2C devices for Rainier, Everest, EthanolX, Mt Jade - Fixes for fp5280g2 which has seen some recent development, including the addtion of a QEmu machine for testing * tag 'aspeed-5.16-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc: ARM: dts: aspeed: fp5280g2: Use the 64M layout ARM: dts: aspeed: Add TYAN S7106 BMC machine ARM: dts: aspeed: rainier: Add power-config-full-load gpio ARM: dts: aspeed: p10bmc: Define secure boot gpio ARM: dts: aspeed: mtjade: Add some gpios ARM: dts: aspeed: Add ADC for AST2600 and enable for Rainier and Everest ARM: dts: everest: Define name for gpio line B6 ARM: dts: everest: Define name for gpio line Q2 ARM: dts: rainier: Define name for gpio line Q2 ARM: dts: everest: Add 'factory-reset-toggle' as GPIOF6 ARM: dts: aspeed: everest: Add I2C bus 15 muxes ARM: dts: aspeed: rainier: Add system LEDs ARM: dts: aspeed: amd-ethanolx: Add FRU EEPROM ARM: dts: fp5280g2: Enable KCS 3 for MCTP binding Link: https://lore.kernel.org/r/CACPK8XdrMzY9tzdof7KpzxKquTo7GcWW4N9Zqwtmmu73C7htXA@mail.gmail.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-19Merge tag 'ux500-dts-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into arm/dtArnd Bergmann10-38/+61
Ux500 DTS updates: - Flag the janice SPI display lines properly for the right line semantics. - Fix some errors in the Skomer regulator configuration. - Fix some SD card pin configurations on Skomer. - Assign the Skomer SD card a 300 ms power-on delay. - Rewrite the battery nodes to use the standard binding "monitored-battery" as used in the updated bindings, and provide the right Samsung battery compatibles for the Samsung phones. * tag 'ux500-dts-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik: ARM: dts: ux500: Switch battery nodes to standard ARM: dts: ux500: Skomer eMMC needs 300 ms power on ARM: dts: ux500: Fix up SD card pin config ARM: dts: ux500: Skomer regulator fixes ARM: dts: ux500: Tag Janice display SPI correct Link: https://lore.kernel.org/r/CACRpkdYf5GwRvG1Gemk4mE+aw6UnAVTY8OudwsVNPQXThHXu6g@mail.gmail.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-19Merge tag 'arm-soc/for-5.16/devicetree' of https://github.com/Broadcom/stblinux into arm/dtArnd Bergmann48-172/+1745
This pull request contains Broadcom ARM-based SoCs Device Tree changes for 5.16, please pull the following: - Matthew provides a set of updates to the Northstar Plus Device Tree files to fix a number of warnings, and prepare the files to support the addition of the Cisco Meraki MX64/MX65 wireless controller devices and finally adds support for those boards. - Rafal continues to provide updates to the BCM5301X Device Tree files in order to fix warnings with the various node names, MDIO muxes and memory nodes. He also adds support for the external switches on the BCM53573 SoC and adds Tenda AC9 switch ports. - Christian provides the description of the Ethernet switch ports for the Cisco Meraki MR32 based on the 53016 SoC - Arinc adds support for the Asus RT-AC88U device based on the BCM4709 and featuring 8 Ethernet ports over the integrated and the external Realtek switch (not supported yet) - Stefan adds support for the Raspberry Pi Compute Module 4 IO board and does a number of preparatory changes to get there to the Device Tree files before doing the actual addition * tag 'arm-soc/for-5.16/devicetree' of https://github.com/Broadcom/stblinux: (31 commits) arm64: dts: broadcom: Add reference to RPi CM4 IO Board ARM: dts: Add Raspberry Pi Compute Module 4 IO Board ARM: dts: Add Raspberry Pi Compute Module 4 dt-bindings: arm: bcm2835: Add Raspberry Pi Compute Module 4 ARM: dts: bcm283x-rpi: Move Wifi/BT into separate dtsi dt-bindings: display: bcm2835: add optional property power-domains ARM: dts: BCM5301X: Add DT for Asus RT-AC88U ARM: BCM53016: MR32: get mac-address from nvmem ARM: BCM53016: Specify switch ports for Meraki MR32 ARM: dts: BCM53573: Add Tenda AC9 switch ports ARM: dts: BCM53573: Describe on-SoC BCM53125 rev 4 switch ARM: dts: BCM5301X: Specify switch ports for more devices ARM: dts: NSP: Fix MX65 MDIO mux warnings ARM: dts: NSP: Fix MX64/MX65 eeprom node name ARM: dts: NSP: Fix MDIO mux node names ARM: dts: NSP: Fix mpcore, mmc node names ARM: dts: NSP: Add bcm958623hr board name to dts ARM: dts: BCM5301X: Fix memory nodes names ARM: dts: BCM5301X: Fix MDIO mux binding ARM: dts: BCM5301X: Fix nodes names ... Link: https://lore.kernel.org/r/20211013174016.831348-1-f.fainelli@gmail.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-19Merge tag 'samsung-dt-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dtArnd Bergmann4-23/+19
Samsung DTS ARM changes for v5.16 Minor cleanups - from undocumented or unused properties, coding style. * tag 'samsung-dt-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: dts: exynos: use spaces instead of tabs around '=' ARM: dts: exynos: remove unneeded DVS voltages from PMIC on Arndale ARM: dts: exynos: drop undocumented samsung,sata-freq property in Exynos5250 Link: https://lore.kernel.org/r/20211013162418.43072-1-krzysztof.kozlowski@canonical.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-19Merge tag 'qcom-dts-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dtArnd Bergmann11-22/+538
Qualcomm DTS updates for v5.16 This extends the previous limited description of MSM8226 with SDHC, UART, I2C, SCM, SMEM, RPM and basic PMIC definitions. Based on this, initial support for the LG G Watch R smartwatch is introduced. APQ8064 gets a couple of DT updates, one which will allow the GPU driver to drop supporting legacy "opp tables" in the future. DT bindings and DTS files are updated with additional compatibles, for completeness. * tag 'qcom-dts-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: dt-bindings: arm: qcom, add missing devices ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY ARM: dts: qcom: fill secondary compatible for multiple boards ARM: dts: qcom: apq8064: adjust memory node according to specs ARM: dts: qcom: apq8064: Convert adreno from legacy gpu-pwrlevels to opp-v2 ARM: dts: qcom: Add support for LG G Watch R dt-bindings: arm: qcom: Document APQ8026 SoC binding ARM: dts: qcom: Add pm8226 PMIC ARM: dts: qcom: msm8226: Add more SoC bits dt-bindings: arm: qcom: Document SDX65 platform and boards Link: https://lore.kernel.org/r/20211012174310.1017857-1-bjorn.andersson@linaro.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-19Merge branch 'timers/drivers/armv8.6_arch_timer' of https://git.linaro.org/people/daniel.lezcano/linux into for-next/8.6-timersWill Deacon1-15/+22
Pull Arm architected timer driver rework from Marc (via Daniel) so that we can add the Armv8.6 support on top. Link: https://lore.kernel.org/r/d0c55386-2f7f-a940-45bb-d80ae5e0f378@linaro.org * 'timers/drivers/armv8.6_arch_timer' of https://git.linaro.org/people/daniel.lezcano/linux: clocksource/drivers/arch_arm_timer: Move workaround synchronisation around clocksource/drivers/arm_arch_timer: Fix masking for high freq counters clocksource/drivers/arm_arch_timer: Drop unnecessary ISB on CVAL programming clocksource/drivers/arm_arch_timer: Remove any trace of the TVAL programming interface clocksource/drivers/arm_arch_timer: Work around broken CVAL implementations clocksource/drivers/arm_arch_timer: Advertise 56bit timer to the core code clocksource/drivers/arm_arch_timer: Move MMIO timer programming over to CVAL clocksource/drivers/arm_arch_timer: Fix MMIO base address vs callback ordering issue clocksource/drivers/arm_arch_timer: Move drop _tval from erratum function names clocksource/drivers/arm_arch_timer: Move system register timer programming over to CVAL clocksource/drivers/arm_arch_timer: Extend write side of timer register accessors to u64 clocksource/drivers/arm_arch_timer: Drop CNT*_TVAL read accessors clocksource/arm_arch_timer: Add build-time guards for unhandled register accesses
2021-10-19ARM: 9141/1: only warn about XIP address when not compile testingArnd Bergmann1-1/+1
In randconfig builds, we sometimes come across this warning: arm-linux-gnueabi-ld: XIP start address may cause MPU programming issues While this is helpful for actual systems to figure out why it fails, the warning does not provide any benefit for build testing, so guard it in a check for CONFIG_COMPILE_TEST, which is usually set on randconfig builds. Fixes: 216218308cfb ("ARM: 8713/1: NOMMU: Support MPU in XIP configuration") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9139/1: kprobes: fix arch_init_kprobes() prototypeArnd Bergmann1-1/+1
With extra warnings enabled, gcc complains about this function definition: arch/arm/probes/kprobes/core.c: In function 'arch_init_kprobes': arch/arm/probes/kprobes/core.c:465:12: warning: old-style function definition [-Wold-style-definition] 465 | int __init arch_init_kprobes() Link: https://lore.kernel.org/all/20201027093057.c685a14b386acacb3c449e3d@kernel.org/ Fixes: 24ba613c9d6c ("ARM kprobes: core code") Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9138/1: fix link warning with XIP + frame-pointerArnd Bergmann1-0/+4
When frame pointers are used instead of the ARM unwinder, and the kernel is built using clang with an external assembler and CONFIG_XIP_KERNEL, every file produces two warnings like: arm-linux-gnueabi-ld: warning: orphan section `.ARM.extab' from `net/mac802154/util.o' being placed in section `.ARM.extab' arm-linux-gnueabi-ld: warning: orphan section `.ARM.exidx' from `net/mac802154/util.o' being placed in section `.ARM.exidx' The same fix was already merged for the normal (non-XIP) linker script, with a longer description. Fixes: c39866f268f8 ("arm/build: Always handle .ARM.exidx and .ARM.extab sections") Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9134/1: remove duplicate memcpy() definitionArnd Bergmann1-0/+3
Both the decompressor code and the kasan logic try to override the memcpy() and memmove() definitions, which leading to a clash in a KASAN-enabled kernel with XZ decompression: arch/arm/boot/compressed/decompress.c:50:9: error: 'memmove' macro redefined [-Werror,-Wmacro-redefined] #define memmove memmove ^ arch/arm/include/asm/string.h:59:9: note: previous definition is here #define memmove(dst, src, len) __memmove(dst, src, len) ^ arch/arm/boot/compressed/decompress.c:51:9: error: 'memcpy' macro redefined [-Werror,-Wmacro-redefined] #define memcpy memcpy ^ arch/arm/include/asm/string.h:58:9: note: previous definition is here #define memcpy(dst, src, len) __memcpy(dst, src, len) ^ Here we want the set of functions from the decompressor, so undefine the other macros before the override. Link: https://lore.kernel.org/linux-arm-kernel/CACRpkdZYJogU_SN3H9oeVq=zJkRgRT1gDz3xp59gdqWXxw-B=w@mail.gmail.com/ Link: https://lore.kernel.org/lkml/202105091112.F5rmd4By-lkp@intel.com/ Fixes: d6d51a96c7d6 ("ARM: 9014/2: Replace string mem* functions for KASan") Fixes: a7f464f3db93 ("ARM: 7001/2: Wire up support for the XZ decompressor") Reported-by: kernel test robot <lkp@intel.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B alignedNick Desaulniers1-0/+1
A kernel built with CONFIG_THUMB2_KERNEL=y and using clang as the assembler could generate non-naturally-aligned v7wbi_tlb_fns which results in a boot failure. The original commit adding the macro missed the .align directive on this data. Link: https://github.com/ClangBuiltLinux/linux/issues/1447 Link: https://lore.kernel.org/all/0699da7b-354f-aecc-a62f-e25693209af4@linaro.org/ Debugged-by: Ard Biesheuvel <ardb@kernel.org> Debugged-by: Nathan Chancellor <nathan@kernel.org> Debugged-by: Richard Henderson <richard.henderson@linaro.org> Fixes: 66a625a88174 ("ARM: mm: proc-macros: Add generic proc/cache/tlb struct definition macros") Suggested-by: Ard Biesheuvel <ardb@kernel.org> Acked-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Tested-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9132/1: Fix __get_user_check failure with ARM KASAN imagesLexi Shao1-1/+3
ARM: kasan: Fix __get_user_check failure with kasan In macro __get_user_check defined in arch/arm/include/asm/uaccess.h, error code is store in register int __e(r0). When kasan is enabled, assigning value to kernel address might trigger kasan check, which unexpectedly overwrites r0 and causes undefined behavior on arm kasan images. One example is failure in do_futex and results in process soft lockup. Log: watchdog: BUG: soft lockup - CPU#0 stuck for 62946ms! [rs:main Q:Reg:1151] ... (__asan_store4) from (futex_wait_setup+0xf8/0x2b4) (futex_wait_setup) from (futex_wait+0x138/0x394) (futex_wait) from (do_futex+0x164/0xe40) (do_futex) from (sys_futex_time32+0x178/0x230) (sys_futex_time32) from (ret_fast_syscall+0x0/0x50) The soft lockup happens in function futex_wait_setup. The reason is function get_futex_value_locked always return EINVAL, thus pc jump back to retry label and causes looping. This line in function get_futex_value_locked ret = __get_user(*dest, from); is expanded to *dest = (typeof(*(p))) __r2; , in macro __get_user_check. Writing to pointer dest triggers kasan check and overwrites the return value of __get_user_x function. The assembly code of get_futex_value_locked in kernel/futex.c: ... c01f6dc8: eb0b020e bl c04b7608 <__get_user_4> // "x = (typeof(*(p))) __r2;" triggers kasan check and r0 is overwritten c01f6dCc: e1a00007 mov r0, r7 c01f6dd0: e1a05002 mov r5, r2 c01f6dd4: eb04f1e6 bl c0333574 <__asan_store4> c01f6dd8: e5875000 str r5, [r7] // save ret value of __get_user(*dest, from), which is dest address now c01f6ddc: e1a05000 mov r5, r0 ... // checking return value of __get_user failed c01f6e00: e3550000 cmp r5, #0 ... c01f6e0c: 01a00005 moveq r0, r5 // assign return value to EINVAL c01f6e10: 13e0000d mvnne r0, #13 Return value is the destination address of get_user thus certainly non-zero, so get_futex_value_locked always return EINVAL. Fix it by using a tmp vairable to store the error code before the assignment. This fix has no effects to non-kasan images thanks to compiler optimization. It only affects cases that overwrite r0 due to kasan check. This should fix bug discussed in Link: [1] https://lore.kernel.org/linux-arm-kernel/0ef7c2a5-5d8b-c5e0-63fa-31693fd4495c@gmail.com/ Fixes: 421015713b30 ("ARM: 9017/2: Enable KASan for ARM") Signed-off-by: Lexi Shao <shaolexi@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9125/1: fix incorrect use of get_kernel_nofault()Ard Biesheuvel1-1/+1
Commit 344179fc7ef4 ("ARM: 9106/1: traps: use get_kernel_nofault instead of set_fs()") replaced an occurrence of __get_user() with get_kernel_nofault(), but inverted the sense of the conditional in the process, resulting in no values to be printed at all. I.e., every exception stack now looks like this: Exception stack(0xc18d1fb0 to 0xc18d1ff8) 1fa0: ???????? ???????? ???????? ???????? 1fc0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ???????? 1fe0: ???????? ???????? ???????? ???????? ???????? ???????? which is rather unhelpful. Fixes: 344179fc7ef4 ("ARM: 9106/1: traps: use get_kernel_nofault instead of set_fs()") Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9122/1: select HAVE_FUTEX_CMPXCHGNick Desaulniers1-0/+1
tglx notes: This function [futex_detect_cmpxchg] is only needed when an architecture has to runtime discover whether the CPU supports it or not. ARM has unconditional support for this, so the obvious thing to do is the below. Fixes linkage failure from Clang randconfigs: kernel/futex.o:(.text.fixup+0x5c): relocation truncated to fit: R_ARM_JUMP24 against `.init.text' and boot failures for CONFIG_THUMB2_KERNEL. Link: https://github.com/ClangBuiltLinux/linux/issues/325 Comments from Nick Desaulniers: See-also: 03b8c7b623c8 ("futex: Allow architectures to skip futex_atomic_cmpxchg_inatomic() test") Reported-by: Arnd Bergmann <arnd@arndb.de> Reported-by: Nathan Chancellor <nathan@kernel.org> Suggested-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Cc: stable@vger.kernel.org # v3.14+ Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9131/1: mm: Fix PXN process with LPAE featureWang Kefeng2-1/+23
When user code execution with privilege mode, it will lead to infinite loop in the page fault handler if ARM_LPAE enabled, The issue could be reproduced with "echo EXEC_USERSPACE > /sys/kernel/debug/provoke-crash/DIRECT" As Permission fault shows in ARM spec, IFSR format when using the Short-descriptor translation table format Permission fault: 01101 First level 01111 Second level IFSR format when using the Long-descriptor translation table format Permission fault: 0011LL LL bits indicate levelb. Add is_permission_fault() function to check permission fault and die if permission fault occurred under instruction fault in do_page_fault(). Fixes: 1d4d37159d01 ("ARM: 8235/1: Support for the PXN CPU feature on ARMv7") Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9130/1: mm: Provide die_kernel_fault() helperWang Kefeng1-9/+21
Provide die_kernel_fault() helper to do the kernel fault reporting, which with msg argument, it could report different message in different scenes, and the later patch "ARM: mm: Fix PXN process with LPAE feature" will use it. Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9126/1: mm: Kill page table base print in show_pte()Wang Kefeng1-1/+0
Now the show_pts() will dump the virtual (hashed) address of page table base, it is useless, kill it. Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9127/1: mm: Cleanup access_error()Wang Kefeng1-24/+14
Now the write fault check in do_page_fault() and access_error() twice, we can cleanup access_error(), and make the fault check and vma flags set into do_page_fault() directly, then pass the vma flags to __do_page_fault. No functional change. Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9129/1: mm: Kill task_struct argument for __do_page_fault()Wang Kefeng1-7/+3
The __do_page_fault() won't use task_struct argument, kill it and also use current->mm directly in do_page_fault(). No functional change. Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9128/1: mm: Refactor the __do_page_fault()Wang Kefeng1-21/+13
Clean up the multiple goto statements and drops local variable vm_fault_t fault, which will make the __do_page_fault() much more readability. No functional change. Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: imx6: mark OCRAM mapping read-onlyRussell King (Oracle)1-0/+2
iMX6 needs to write some code to OCRAM which resumes the DDR controller after suspend. However, merely using __arm_ioremap_exec() causes the kernel to complain of a W+X mapping. Solve this by using the newly introduced __arm_iomem_set_ro() function to prevent inadvertent or malicious writes to code we may later execute. Tested-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: add __arm_iomem_set_ro() to write-protect ioremapped areaRussell King (Oracle)2-0/+7
__arm_iomem_set_ro() marks an ioremapped area read-only. This is intended for use with __arm_ioremap_exec() to allow the kernel to write some code into e.g. SRAM and then write-protect it so the kernel doesn't complain about W+X mappings. Tested-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9124/1: uncompress: Parse "linux,usable-memory-range" DT propertyGeert Uytterhoeven1-6/+42
Add support for parsing the "linux,usable-memory-range" DT property. This property is used to describe the usable memory reserved for the crash dump kernel, and thus makes the memory reservation explicit. If present, Linux no longer needs to mask the program counter, and rely on the "mem=" kernel parameter to obtain the start and size of usable memory. For backwards compatibility, the traditional method to derive the start of memory is still used if "linux,usable-memory-range" is absent. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9123/1: scoop: Drop if with an always false conditionUwe Kleine-König1-3/+0
The remove callback is only called after probe completed successfully. In this case platform_set_drvdata() was called with a non-NULL argument and so !sdev is never true. The motivation for this change is to get rid of non-zero return values for remove callbacks as their only effect is to trigger a runtime warning. See commit e5e1c2097881 ("driver core: platform: Emit a warning if a remove callback returned non-zero") for further details. Link: https://lore.kernel.org/linux-arm-kernel/20210721205450.2173923-1-u.kleine-koenig@pengutronix.de Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: 9125/1: fix incorrect use of get_kernel_nofault()Ard Biesheuvel1-1/+1
Commit 344179fc7ef4 ("ARM: 9106/1: traps: use get_kernel_nofault instead of set_fs()") replaced an occurrence of __get_user() with get_kernel_nofault(), but inverted the sense of the conditional in the process, resulting in no values to be printed at all. I.e., every exception stack now looks like this: Exception stack(0xc18d1fb0 to 0xc18d1ff8) 1fa0: ???????? ???????? ???????? ???????? 1fc0: ???????? ???????? ???????? ???????? ???????? ???????? ???????? ???????? 1fe0: ???????? ???????? ???????? ???????? ???????? ???????? which is rather unhelpful. Fixes: 344179fc7ef4 ("ARM: 9106/1: traps: use get_kernel_nofault instead of set_fs()") Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2021-10-19ARM: dts: s5pv210: add 'chassis-type' propertyKrzysztof Kozlowski2-0/+2
A new 'chassis-type' root node property has recently been approved for the device-tree specification. Add this property for end-user devices (such as laptops, smartphones and tablets) based on Samsung S5Pv210 ARM SoCs. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Link: https://lore.kernel.org/r/20211017101228.19478-3-krzysztof.kozlowski@canonical.com
2021-10-19ARM: dts: exynos: add 'chassis-type' propertyKrzysztof Kozlowski14-0/+14
A new 'chassis-type' root node property has recently been approved for the device-tree specification. Add this property for end-user devices (such as laptops, smartphones and tablets) based on Samsung Exynos ARM SoCs. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Link: https://lore.kernel.org/r/20211017101228.19478-2-krzysztof.kozlowski@canonical.com
2021-10-19Merge branch 'timers/drivers/armv8.6_arch_timer' into timers/drivers/nextDaniel Lezcano1-15/+22
The branch is a stable branch shared with ARM maintainers for the first 13th patches of the series: It is based on v5.14-rc3. As stated by the changelog: " [... ] enabling ARMv8.6 support for timer subsystem, and was prompted by a discussion with Oliver around the fact that an ARMv8.6 implementation must have a 1GHz counter, which leads to a number of things to break in the timer code: - the counter rollover can come pretty quickly as we only advertise a 56bit counter, - the maximum timer delta can be remarkably small, as we use the countdown interface which is limited to 32bit... Thankfully, there is a way out: we can compute the minimal width of the counter based on the guarantees that the architecture gives us, and we can use the 64bit comparator interface instead of the countdown to program the timer. Finally, we start making use of the ARMv8.6 ECV features by switching accesses to the counters to a self-synchronising register, removing the need for an ISB. Hopefully, implementations will *not* just stick an invisible ISB there... A side effect of the switch to CVAL is that XGene-1 breaks. I have added a workaround to keep it alive. I have added Oliver's original patch[0] to the series and tweaked a couple of things. Blame me if I broke anything. The whole things has been tested on Juno (sysreg + MMIO timers), XGene-1 (broken sysreg timers), FVP (FEAT_ECV, CNT*CTSS_EL0). " Link: https://lore.kernel.org/r/20211017124225.3018098-1-maz@kernel.org Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
2021-10-18mm: Add flush_dcache_folio()Matthew Wilcox (Oracle)1-0/+1
This is a default implementation which calls flush_dcache_page() on each page in the folio. If architectures can do better, they should implement their own version of it. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Acked-by: Vlastimil Babka <vbabka@suse.cz>
2021-10-18Merge 5.15-rc6 into usb-nextGreg Kroah-Hartman10-29/+56
We need the usb fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-17Merge tag 'driver-core-5.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-coreLinus Torvalds4-4/+0
Pull driver core fixes from Greg KH: "Here are some small driver core fixes for 5.15-rc6, all of which have been in linux-next for a while with no reported issues. They include: - kernfs negative dentry bugfix - simple pm bus fixes to resolve reported issues" * tag 'driver-core-5.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: drivers: bus: Delete CONFIG_SIMPLE_PM_BUS drivers: bus: simple-pm-bus: Add support for probing simple bus only devices driver core: Reject pointless SYNC_STATE_ONLY device links kernfs: don't create a negative dentry if inactive node exists
2021-10-17ARM: dts: qcom-pma8084: add interrupt controller propertiesDmitry Baryshkov1-8/+2
Now that the pmic-mpp is a proper hierarchical IRQ chip, add interrupt controller properties ('interrupt-controller' and '#interrupt-cells'). The interrupts property is no longer needed so remove it. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Link: https://lore.kernel.org/r/20211008012524.481877-24-dmitry.baryshkov@linaro.org
2021-10-17ARM: dts: qcom-pm8941: add interrupt controller propertiesDmitry Baryshkov1-8/+2
Now that the pmic-mpp is a proper hierarchical IRQ chip, add interrupt controller properties ('interrupt-controller' and '#interrupt-cells'). The interrupts property is no longer needed so remove it. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Link: https://lore.kernel.org/r/20211008012524.481877-23-dmitry.baryshkov@linaro.org