summaryrefslogtreecommitdiff
path: root/arch/arm
AgeCommit message (Collapse)AuthorFilesLines
2022-11-14ARM: findbit: document ARMv5 bit offset calculationRussell King (Oracle)1-4/+4
Document the ARMv5 bit offset calculation code. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-14ARM: 9259/1: stacktrace: Convert stacktrace to generic ARCH_STACKWALKLi Huafei2-82/+33
Historically architectures have had duplicated code in their stack trace implementations for filtering what gets traced. In order to avoid this duplication some generic code has been provided using a new interface arch_stack_walk(), enabled by selecting ARCH_STACKWALK in Kconfig, which factors all this out into the generic stack trace code. Convert ARM to use this common infrastructure. When initializing the stack frame of the current task, arm64 uses __builtin_frame_address(1) to initialize the frame pointer, skipping arch_stack_walk(), see the commit c607ab4f916d ("arm64: stacktrace: don't trace arch_stack_walk()"). Since __builtin_frame_address(1) does not work on ARM, unwind_frame() is used to unwind the stack one layer forward before calling walk_stackframe(). Signed-off-by: Li Huafei <lihuafei1@huawei.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-14Merge tag 'at91-fixes-6.1' of ↵Arnd Bergmann3-2/+27
https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into arm/fixes AT91 fixes for 6.1 It contains: - signal name fix for a pin on SAMA7G5 - memory self-refresh fix for SAMA7G5 by avoid soft resetting AC DLL which can introduce glitches in RAM controller and lead to unexpected behavior - led support fix for lan966x-pcb8291 board by enabling sgpio node * tag 'at91-fixes-6.1' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux: ARM: at91: pm: avoid soft resetting AC DLL ARM: dts: lan966x: Enable sgpio on pcb8291 ARM: dts: at91: sama7g5: fix signal name of pin PB2 Link: https://lore.kernel.org/r/20221110115411.180876-1-claudiu.beznea@microchip.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-14ARM: dts: imx: e60k02: Add touchscreenAndreas Kemnade3-1/+24
Add the touchscreen now, since the driver is available. Signed-off-by: Andreas Kemnade <andreas@kemnade.info> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-11-14ARM: dts: imx6qdl-sabre: Add mmc aliasesDetlev Casanova1-0/+5
If not specified, the mmc0 and mmc1 devices will be the devices mmc@2190000 and mmc@2194000, which are in disabled state on the iMX.6 Sabrelite devices. The actual SD card reader devices are the ones at mmc@2198000 and mmc@219c000. Set aliases to use the correct mmc devices order. Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-11-11ASoC: Set BQ parameters for some Dell modelsMark Brown13-2/+82
There are some Dell SKUs that need to set the parameters of the crossover filter (biquad). Each amplifier connects to one tweeter speaker and one woofer speaker. We should control HPF/LPF to output the proper frequency for the different speakers. If the codec driver got the BQ parameters from the device property, it will apply these parameters to the hardware.
2022-11-11crypto: move gf128mul library into lib/cryptoArd Biesheuvel1-1/+1
The gf128mul library does not depend on the crypto API at all, so it can be moved into lib/crypto. This will allow us to use it in other library code in a subsequent patch without having to depend on CONFIG_CRYPTO. While at it, change the Kconfig symbol name to align with other crypto library implementations. However, the source file name is retained, as it is reflected in the module .ko filename, and changing this might break things for users. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2022-11-11ARM: imx3: Remove unneeded #include <linux/pinctrl/machine.h>Geert Uytterhoeven1-1/+0
Commit 6c5f05a6cd88c77f ("ARM: imx3: Remove imx3 soc_init()") removed the last user of the pinctrl machine API. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-11-11ARM: mxs: Remove unneeded #include <linux/pinctrl/consumer.h>Geert Uytterhoeven1-1/+0
Commit 7705b5ed8adccd92 ("ARM: mxs: remove obsolete startup code for TX28") removed the last user of the pinctrl consumer API. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-11-11ARM: dts: imx6ul/ull: suspend i.MX6UL watchdog in wait modeAndrej Picej1-0/+4
It was discovered that the watchdog triggers when the device is put into "Suspend-To-Idle"/"freeze" low-power mode. Setting WDW bit disables watchdog when the device is put into WAIT mode. Signed-off-by: Andrej Picej <andrej.picej@norik.com> Reviewed-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-11-11ARM: dts: imx7: Fix NAND controller size-cellsMarek Vasut1-2/+2
The NAND controller size-cells should be 0 per DT bindings. Fix the following warning produces by DT bindings check: " nand-controller@33002000: #size-cells:0:0: 0 was expected nand-controller@33002000: Unevaluated properties are not allowed ('#address-cells', '#size-cells' were unexpected) " Fix the missing space in node name too. Fixes: e7495a45a76de ("ARM: dts: imx7: add GPMI NAND and APBH DMA") Signed-off-by: Marek Vasut <marex@denx.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-11-11Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski13-2/+82
drivers/net/can/pch_can.c ae64438be192 ("can: dev: fix skb drop check") 1dd1b521be85 ("can: remove obsolete PCH CAN driver") https://lore.kernel.org/all/20221110102509.1f7d63cc@canb.auug.org.au/ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-11-10ARM: dts: bcm283x: Move ACT LED into separate dtsiStefan Wahren19-159/+164
The usage of the label property for gpio-leds has been deprecated a long time ago. In bcm2835-rpi.dtsi the ACT LED uses such a label and derive it to almost every Raspberry Pi board. Since we cannot break userspace interface this property must be kept. But we can move the ACT LED into a separate dtsi and include them from the board files. This change have two benefits: - with both new refs it's now clear the LED part is included from a dtsi - new boards do not include the deprecated stuff automatically Reported-by: Alexander Dahl <ada@thorsis.com> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Link: https://lore.kernel.org/r/20221110173105.6633-3-stefan.wahren@i2se.com Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2022-11-10ARM: dts: bcm283x: Fix underscores in node namesStefan Wahren6-96/+96
A lot pinctrl node names, regulators and local_intc do not follow the node name convention to avoid underscore. So fix this by using hyphen or a proper node name. Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20221110173105.6633-2-stefan.wahren@i2se.com Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2022-11-10ARM: dts: BCM5301X: Correct description of TP-Link partitionsRafał Miłecki2-40/+10
TP-Link routers have flash space partitioned according to the partitions table. It may look like fixed partitioning but those partitions can be actually reorganized. New can be added (or some removed), offsets and sizes may change. Fix DT to use binding for the TP-Link SafeLoader partitioning method. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> Link: https://lore.kernel.org/r/20221108110708.13693-1-zajec5@gmail.com Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2022-11-10ARM: dts: bcm47094: Add devicetree for D-Link DIR-890LLinus Walleij2-0/+212
This adds a device tree for the D-Link DIR-890L. This device is very similar to D-Link DIR-885L, the differences are detailed as a comment in the DTS file. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20221107134104.1422169-2-linus.walleij@linaro.org Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2022-11-10ARM: dts: bcm2835-rpi: Use firmware clocks for displayMaxime Ripard1-0/+17
We've experienced a number of issues around the cohabitation between the "real" clock driver in Linux and the one backed by the firmware. One solution around this is to follow what the RaspberryPi foundation in its downstream clock, which is also what we've been doing on the RaspberryPi4: to use the clocks exposed by the firmware. Link: https://lore.kernel.org/linux-clk/20221021140505.kjmw5x4s6qhnrfif@houat/ Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://lore.kernel.org/r/20221026-rpi-display-fw-clk-v1-2-5c29b7a3d8b0@cerno.tech Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2022-11-10ARM: dts: bcm283x: Remove bcm2835-rpi-common.dtsi from SoC DTSIMaxime Ripard12-3/+9
According to the commit log of the commit 3ac395a5b3f3 ("ARM: dts: bcm283x: Use firmware PM driver for V3D"), the initial intent behind the bcm2835-rpi-common DTSI was to share data between the RaspberryPies based on the BCM2835, 36 and 37. However, it was included by these SoCs' main DTSI. This is creating an improper layering. On top of that, bcm2835.dtsi is being included by bcm2711.dtsi, which means that, even though the bcm2835-rpi-common DTSI wasn't actually meant to contain data for the BCM2711, it actually leaks into the BCM2711 DTSI. In order to remove both issues, let's remove the include of bcm2835-rpi-common.dtsi from bcm283{5-7}.dtsi and put them into the bcm283{6,7}-rpi.dtsi. BCM2835 has to be handled with special care due to the fact that bcm2835.dtsi is being included by bcm2711.dtsi. Thus, we chose to include bcm2835-rpi-common.dtsi directly into the board DTS. This will be more error-prone, but given that it's a fairly old SoC by now, the chance that we will get more BCM2835 boards is fairly low. BCM2711 isn't modified since the content of bcm2835-rpi-common.dtsi was only a power-domain for the v3d that was overridden anyway. Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://lore.kernel.org/r/20221026-rpi-display-fw-clk-v1-1-5c29b7a3d8b0@cerno.tech Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2022-11-10ARM: imx_v6_v7_defconfig: Enable the cyttsp5 touchscreenAlistair Francis1-0/+1
The imx6/7 based devices Remarkable 2, Kobo Clara HD, Kobo Libra H2O, Tolino Shine 3, Tolino Vision 5 all contain a Cypress TT2100 touchscreen so enable the corresponding driver. Signed-off-by: Alistair Francis <alistair@alistair23.me> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-11-10ARM: dts: qcom-msm8960-cdp: align TLMM pin configuration with DT schemaKrzysztof Kozlowski1-10/+9
DT schema expects TLMM pin configuration nodes to be named with '-state' suffix and their optional children with '-pins' suffix. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> [bjorn: Fixed up expected typo in cs-pins function] Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221109105140.48196-3-krzysztof.kozlowski@linaro.org
2022-11-10ARM: dts: qcom-msm8960: use define for interrupt constantsKrzysztof Kozlowski2-11/+13
Replace GIC_PPI, GIC_SPI and interrupt type numbers with appropriate defines. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221109105140.48196-2-krzysztof.kozlowski@linaro.org
2022-11-09ARM: dts: bcm53016: Add devicetree for D-Link DWL-8610APLinus Walleij2-0/+132
This adds a device tree for the BCM53016-based D-Link DWL-8610AP access point wireless router. The TRX-format partitions had to be named "firmware" due to an OpenWrt patch that only accepts parting such nodes if they are named "firmware". Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20221019193449.3036010-2-linus.walleij@linaro.org Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2022-11-09efi: libstub: Move screen_info handling to common codeArd Biesheuvel2-29/+5
Currently, arm64, RISC-V and LoongArch rely on the fact that struct screen_info can be accessed directly, due to the fact that the EFI stub and the core kernel are part of the same image. This will change after a future patch, so let's ensure that the screen_info handling is able to deal with this, by adopting the arm32 approach of passing it as a configuration table. While at it, switch to ACPI reclaim memory to hold the screen_info data, which is more appropriate for this kind of allocation. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2022-11-09ARM: dts: am335x-pcm-953: Define fixed regulators in root nodeDominik Haller1-15/+13
Remove the regulators node and define fixed regulators in the root node. Prevents the sdhci-omap driver from waiting in probe deferral forever because of the missing vmmc-supply and keeps am335x-pcm-953 consistent with the other Phytec AM335 boards. Fixes: bb07a829ec38 ("ARM: dts: Add support for phyCORE-AM335x PCM-953 carrier board") Signed-off-by: Dominik Haller <d.haller@phytec.de> Message-Id: <20221011143115.248003-1-d.haller@phytec.de> Signed-off-by: Tony Lindgren <tony@atomide.com>
2022-11-09mm: remove kern_addr_valid() completelyKefeng Wang2-6/+0
Most architectures (except arm64/x86/sparc) simply return 1 for kern_addr_valid(), which is only used in read_kcore(), and it calls copy_from_kernel_nofault() which could check whether the address is a valid kernel address. So as there is no need for kern_addr_valid(), let's remove it. Link: https://lkml.kernel.org/r/20221018074014.185687-1-wangkefeng.wang@huawei.com Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> [m68k] Acked-by: Heiko Carstens <hca@linux.ibm.com> [s390] Acked-by: Christoph Hellwig <hch@lst.de> Acked-by: Helge Deller <deller@gmx.de> [parisc] Acked-by: Michael Ellerman <mpe@ellerman.id.au> [powerpc] Acked-by: Guo Ren <guoren@kernel.org> [csky] Acked-by: Catalin Marinas <catalin.marinas@arm.com> [arm64] Cc: Alexander Gordeev <agordeev@linux.ibm.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com> Cc: <aou@eecs.berkeley.edu> Cc: Borislav Petkov <bp@alien8.de> Cc: Christian Borntraeger <borntraeger@linux.ibm.com> Cc: Christophe Leroy <christophe.leroy@csgroup.eu> Cc: Chris Zankel <chris@zankel.net> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: David S. Miller <davem@davemloft.net> Cc: Dinh Nguyen <dinguyen@kernel.org> Cc: Greg Ungerer <gerg@linux-m68k.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Huacai Chen <chenhuacai@kernel.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: James Bottomley <James.Bottomley@HansenPartnership.com> Cc: Johannes Berg <johannes@sipsolutions.net> Cc: Jonas Bonn <jonas@southpole.se> Cc: Matt Turner <mattst88@gmail.com> Cc: Max Filippov <jcmvbkbc@gmail.com> Cc: Michal Simek <monstr@monstr.eu> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: Palmer Dabbelt <palmer@rivosinc.com> Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Richard Henderson <richard.henderson@linaro.org> Cc: Richard Weinberger <richard@nod.at> Cc: Rich Felker <dalias@libc.org> Cc: Russell King <linux@armlinux.org.uk> Cc: Stafford Horne <shorne@gmail.com> Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> Cc: Sven Schnelle <svens@linux.ibm.com> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vasily Gorbik <gor@linux.ibm.com> Cc: Vineet Gupta <vgupta@kernel.org> Cc: Will Deacon <will@kernel.org> Cc: Xuerui Wang <kernel@xen0n.name> Cc: Yoshinori Sato <ysato@users.osdn.me> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2022-11-08ARM: ux500: Drop unused register fileLinus Walleij4-200/+0
This file with all base addresses and offsets is not used anymore, everything is looked up from the device tree. Delete it. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2022-11-08ARM: 9258/1: stacktrace: Make stack walk callback consistent with generic codeLi Huafei4-17/+15
As with the generic arch_stack_walk() code the ARM stack walk code takes a callback that is called per stack frame. Currently the ARM code always passes a struct stackframe to the callback and the generic code just passes the pc, however none of the users ever reference anything in the struct other than the pc value. The ARM code also uses a return type of int while the generic code uses a return type of bool though in both cases the return value is a boolean value and the sense is inverted between the two. In order to reduce code duplication when ARM is converted to use arch_stack_walk() change the signature and return sense of the ARM specific callback to match that of the generic code. Signed-off-by: Li Huafei <lihuafei1@huawei.com> Reviewed-by: Mark Brown <broonie@kernel.org> Reviewed-by: Linus Waleij <linus.walleij@linaro.org> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-08ARM: 9265/1: pass -march= only to compilerNick Desaulniers1-11/+25
When both -march= and -Wa,-march= are specified for assembler or assembler-with-cpp sources, GCC and Clang will prefer the -Wa,-march= value but Clang will warn that -march= is unused. warning: argument unused during compilation: '-march=armv6k' [-Wunused-command-line-argument] This is the top group of warnings we observe when using clang to assemble the kernel via `ARCH=arm make LLVM=1`. Split the arch-y make variable into two, so that -march= flags only get passed to the compiler, not the assembler. -D flags are added to KBUILD_CPPFLAGS which is used for both C and assembler-with-cpp sources. Clang is trying to warn that it doesn't support different values for -march= and -Wa,-march= (like GCC does, but the kernel doesn't need this) though the value of the preprocessor define __thumb2__ is based on -march=. Make sure to re-set __thumb2__ via -D flag for assembler sources now that we're no longer passing -march= to the assembler. Set it to a different value than the preprocessor would for -march= in case -march= gets accidentally re-added to KBUILD_AFLAGS in the future. Thanks to Ard and Nathan for this suggestion. Link: https://github.com/ClangBuiltLinux/linux/issues/1315 Link: https://github.com/ClangBuiltLinux/linux/issues/1587 Link: https://github.com/llvm/llvm-project/issues/55656 Suggested-by: Ard Biesheuvel <ardb@kernel.org> Suggested-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-08ARM: 9264/1: only use -mtp=cp15 for the compilerNick Desaulniers1-1/+1
Avoids an error from the assembler for CONFIG_THUMB2 kernels: clang-15: error: hardware TLS register is not supported for the thumbv4t sub-architecture This flag only makes sense to pass to the compiler, not the assembler. Perhaps CFLAGS_ABI can be renamed to CPPFLAGS_ABI to reflect that they will be passed to both the compiler and assembler for sources that require pre-processing. Reviewed-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-08ARM: 9263/1: use .arch directives instead of assembler command line flagsNick Desaulniers37-37/+52
Similar to commit a6c30873ee4a ("ARM: 8989/1: use .fpu assembler directives instead of assembler arguments"). GCC and GNU binutils support setting the "sub arch" via -march=, -Wa,-march, target function attribute, and .arch assembler directive. Clang was missing support for -Wa,-march=, but this was implemented in clang-13. The behavior of both GCC and Clang is to prefer -Wa,-march= over -march= for assembler and assembler-with-cpp sources, but Clang will warn about the -march= being unused. clang: warning: argument unused during compilation: '-march=armv6k' [-Wunused-command-line-argument] Since most assembler is non-conditionally assembled with one sub arch (modulo arch/arm/delay-loop.S which conditionally is assembled as armv4 based on CONFIG_ARCH_RPC, and arch/arm/mach-at91/pm-suspend.S which is conditionally assembled as armv7-a based on CONFIG_CPU_V7), prefer the .arch assembler directive. Add a few more instances found in compile testing as found by Arnd and Nathan. Link: https://github.com/llvm/llvm-project/commit/1d51c699b9e2ebc5bcfdbe85c74cc871426333d4 Link: https://bugs.llvm.org/show_bug.cgi?id=48894 Link: https://github.com/ClangBuiltLinux/linux/issues/1195 Link: https://github.com/ClangBuiltLinux/linux/issues/1315 Suggested-by: Arnd Bergmann <arnd@arndb.de> Suggested-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Tested-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-08ARM: dts: qcom-apq8060: align TLMM pin configuration with DT schemaKrzysztof Kozlowski1-75/+51
DT schema expects TLMM pin configuration nodes to be named with '-state' suffix and their optional children with '-pins' suffix. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221107185931.22075-2-krzysztof.kozlowski@linaro.org
2022-11-08ARM: dts: qcom: msm8226: Add MMCC nodeRayyan Ansari1-0/+8
Add a node for the Multimedia Clock Controller found on MSM8226. Signed-off-by: Rayyan Ansari <rayyan@ansari.sh> Signed-off-by: Matti Lehtimäki <matti.lehtimaki@gmail.com> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221002122859.75525-2-matti.lehtimaki@gmail.com
2022-11-08ARM: dts: qcom: pm8941: fix iadc nodeLuca Weiss1-1/+1
The spmi-pmic bindings require the iadc node to be named just 'adc'. Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by: Luca Weiss <luca@z3ntu.xyz> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221031182456.952648-2-luca@z3ntu.xyz
2022-11-08ARM: dts: qcom: pm8941: fix vadc channel node namesLuca Weiss1-9/+16
The spmi-vadc bindings require the '@' in the node. Additionally change the node name to adc-chan which both makes it a generic node name and also removes the underscore from it. At the same time sort the nodes by reg value. Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org> Signed-off-by: Luca Weiss <luca@z3ntu.xyz> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221031181022.947412-2-luca@z3ntu.xyz
2022-11-08ARM: dts: qcom: pma8084: fix vadc channel node namesLuca Weiss1-6/+11
The spmi-vadc bindings require the '@' in the node. Additionally change the node name to adc-chan which both makes it a generic node name and also removes the underscore from it. Signed-off-by: Luca Weiss <luca@z3ntu.xyz> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221031181022.947412-1-luca@z3ntu.xyz
2022-11-08ARM: dts: qcom: pm8941: rename misc node nameLuca Weiss1-1/+1
The spmi-pmic bindings is now using usb-detect@ for this node, so adjust the dts to match. Signed-off-by: Luca Weiss <luca@z3ntu.xyz> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221031175717.942237-3-luca@z3ntu.xyz
2022-11-08arm/mach-ux500: fix repeated words in commentswangjianli1-1/+1
Delete the redundant word 'in'. Signed-off-by: wangjianli <wangjianli@cdjrlc.com> Link: https://lore.kernel.org/r/20221020124558.38060-1-wangjianli@cdjrlc.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2022-11-08ARM: dts: qcom: pm8941: adjust coincell node name to bindingsLuca Weiss1-1/+1
The spmi-pmic bindings say that pm8941-coincell should be called 'charger'. Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org> Signed-off-by: Luca Weiss <luca@z3ntu.xyz> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221031175119.939860-2-luca@z3ntu.xyz
2022-11-08ARM: dts: qcom: pm8226: fix regulators node nameLuca Weiss1-1/+1
Adjust the node name to match bindings and fix the validation warning. Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by: Luca Weiss <luca@z3ntu.xyz> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221031175119.939860-1-luca@z3ntu.xyz
2022-11-07ARM: dts: qcom: Drop MMCI interrupt-namesMarek Vasut4-12/+0
The pl18x MMCI driver does not use the interrupt-names property, the binding document has been updated to recommend this property be unused, remove it. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Marek Vasut <marex@denx.de> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221013221242.218808-2-marex@denx.de
2022-11-07ARM: dts: qcom: mdm9615: drop unit ids from PMIC nodesDmitry Baryshkov1-1/+1
On MDM9615 the PMICs are connected using SSBI devices, which do not have any addressing scheme. Drop the unused unit ids from PMIC device nodes. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20220930212052.894834-2-dmitry.baryshkov@linaro.org
2022-11-07ARM: 9262/1: remove lazy evaluation in MakefileNick Desaulniers1-33/+27
arch-y and tune-y used lazy evaluation since they used to contain cc-option checks. They don't any longer, so just eagerly evaluate these command line flags. Reviewed-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-07ARM: 9260/1: lib/xor: use r10 rather than r7 in xor_arm4regs_{2|3}Nick Desaulniers1-2/+2
kbuild test robot reports: In file included from crypto/xor.c:17: ./arch/arm/include/asm/xor.h:61:3: error: write to reserved register 'R7' GET_BLOCK_4(p1); ^ ./arch/arm/include/asm/xor.h:20:10: note: expanded from macro 'GET_BLOCK_4' __asm__("ldmia %0, {%1, %2, %3, %4}" ^ ./arch/arm/include/asm/xor.h:63:3: error: write to reserved register 'R7' PUT_BLOCK_4(p1); ^ ./arch/arm/include/asm/xor.h:42:23: note: expanded from macro 'PUT_BLOCK_4' __asm__ __volatile__("stmia %0!, {%2, %3, %4, %5}" ^ ./arch/arm/include/asm/xor.h:83:3: error: write to reserved register 'R7' GET_BLOCK_4(p1); ^ ./arch/arm/include/asm/xor.h:20:10: note: expanded from macro 'GET_BLOCK_4' __asm__("ldmia %0, {%1, %2, %3, %4}" ^ ./arch/arm/include/asm/xor.h:86:3: error: write to reserved register 'R7' PUT_BLOCK_4(p1); ^ ./arch/arm/include/asm/xor.h:42:23: note: expanded from macro 'PUT_BLOCK_4' __asm__ __volatile__("stmia %0!, {%2, %3, %4, %5}" ^ Thumb2 uses r7 rather than r11 as the frame pointer. Let's use r10 rather than r7 for these temporaries. Link: https://github.com/ClangBuiltLinux/linux/issues/1732 Link: https://lore.kernel.org/llvm/202210072120.V1O2SuKY-lkp@intel.com/ Reported-by: kernel test robot <lkp@intel.com> Suggested-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-07ARM: 9257/1: Disable FIQs (but not IRQs) on CPUs shutdown pathsGuilherme G. Piccoli2-3/+4
Currently the regular CPU shutdown path for ARM disables IRQs/FIQs in the secondary CPUs - smp_send_stop() calls ipi_cpu_stop(), which is responsible for that. IRQs are architecturally masked when we take an interrupt, but FIQs are high priority than IRQs, hence they aren't masked. With that said, it makes sense to disable FIQs here, but there's no need for (re-)disabling IRQs. More than that: there is an alternative path for disabling CPUs, in the form of function crash_smp_send_stop(), which is used for kexec/panic path. This function relies on a SMP call that also triggers a busy-wait loop [at machine_crash_nonpanic_core()], but without disabling FIQs. This might lead to odd scenarios, like early interrupts in the boot of kexec'd kernel or even interrupts in secondary "disabled" CPUs while the main one still works in the panic path and assumes all secondary CPUs are (really!) off. So, let's disable FIQs in both paths and *not* disable IRQs a second time, since they are already masked in both paths by the architecture. This way, we keep both CPU quiesce paths consistent and safe. Cc: Marc Zyngier <maz@kernel.org> Cc: Michael Kelley <mikelley@microsoft.com> Signed-off-by: Guilherme G. Piccoli <gpiccoli@igalia.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-07ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmodNick Desaulniers1-0/+6
clang-15's ability to elide loops completely became more aggressive when it can deduce how a variable is being updated in a loop. Counting down one variable by an increment of another can be replaced by a modulo operation. For 64b variables on 32b ARM EABI targets, this can result in the compiler generating calls to __aeabi_uldivmod, which it does for a do while loop in float64_rem(). For the kernel, we'd generally prefer that developers not open code 64b division via binary / operators and instead use the more explicit helpers from div64.h. On arm-linux-gnuabi targets, failure to do so can result in linkage failures due to undefined references to __aeabi_uldivmod(). While developers can avoid open coding divisions on 64b variables, the compiler doesn't know that the Linux kernel has a partial implementation of a compiler runtime (--rtlib) to enforce this convention. It's also undecidable for the compiler whether the code in question would be faster to execute the loop vs elide it and do the 64b division. While I actively avoid using the internal -mllvm command line flags, I think we get better code than using barrier() here, which will force reloads+spills in the loop for all toolchains. Link: https://github.com/ClangBuiltLinux/linux/issues/1666 Reported-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Tested-by: Nathan Chancellor <nathan@kernel.org> Cc: stable@vger.kernel.org Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-07ARM: 9255/1: efi/dump UEFI runtime page tables for ARMWang Kefeng1-0/+1
UEFI runtime page tables dump only for ARM64 at present, but ARM support EFI and ARM_PTDUMP_DEBUGFS now. Since ARM could potentially execute with a 1G/3G user/kernel split, choosing 1G as the upper limit for UEFI runtime end, with this, we could enable UEFI runtime page tables on ARM. Acked-by: Ard Biesheuvel <ardb@kernel.org> Tested-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-07ARM: 9254/1: mm: Provide better message when kernel faultWang Kefeng1-2/+3
If there is a kernel fault, see do_kernel_fault(), we only print the generic "paging request" or "NULL pointer dereference" message which don't show read, write or excute information, let's provide better fault message for them. Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-07ARM: 9253/1: ubsan: select ARCH_HAS_UBSAN_SANITIZE_ALLSeung-Woo Kim3-0/+3
To enable UBSAN on ARM, this patch enables ARCH_HAS_UBSAN_SANITIZE_ALL from arm confiuration. Basic kernel bootup test is passed on arm with CONFIG_UBSAN_SANITIZE_ALL enabled. [florian: rebased against v6.0-rc7] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-07ARM: 9252/1: module: Teach unwinder about PLTsAlex Sverdlin3-1/+31
"unwind: Index not found eef26358" warnings keep popping up on CONFIG_ARM_MODULE_PLTS-enabled systems if the PC points to a PLT veneer. Teach the unwinder how to deal with them, taking into account they don't change state of the stack or register file except loading PC. Link: https://lore.kernel.org/linux-arm-kernel/20200402153845.30985-1-kursad.oney@broadcom.com/ Tested-by: Kursad Oney <kursad.oney@broadcom.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-11-07ARM: 9266/1: mm: fix no-MMU ZERO_PAGE() implementationGiulio Benetti3-13/+28
Actually in no-MMU SoCs(i.e. i.MXRT) ZERO_PAGE(vaddr) expands to ``` virt_to_page(0) ``` that in order expands to: ``` pfn_to_page(virt_to_pfn(0)) ``` and then virt_to_pfn(0) to: ``` ((((unsigned long)(0) - PAGE_OFFSET) >> PAGE_SHIFT) + PHYS_PFN_OFFSET) ``` where PAGE_OFFSET and PHYS_PFN_OFFSET are the DRAM offset(0x80000000) and PAGE_SHIFT is 12. This way we obtain 16MB(0x01000000) summed to the base of DRAM(0x80000000). When ZERO_PAGE(0) is then used, for example in bio_add_page(), the page gets an address that is out of DRAM bounds. So instead of using fake virtual page 0 let's allocate a dedicated zero_page during paging_init() and assign it to a global 'struct page * empty_zero_page' the same way mmu.c does and it's the same approach used in m68k with commit dc068f462179 as discussed here[0]. Then let's move ZERO_PAGE() definition to the top of pgtable.h to be in common between mmu.c and nommu.c. [0]: https://lore.kernel.org/linux-m68k/2a462b23-5b8e-bbf4-ec7d-778434a3b9d7@google.com/T/#m1266ceb63 ad140743174d6b3070364d3c9a5179b Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>