diff options
137 files changed, 515 insertions, 433 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index db53a82699b6..9f8d226b305a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3542,14 +3542,12 @@ N: s5pv210 ARM/SAMSUNG S5P SERIES 2D GRAPHICS ACCELERATION (G2D) SUPPORT M: Ćukasz Stelmach <l.stelmach@samsung.com> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) -L: linux-media@vger.kernel.org S: Maintained F: drivers/media/platform/samsung/s5p-g2d/ ARM/SAMSUNG S5P SERIES HDMI CEC SUBSYSTEM SUPPORT M: Marek Szyprowski <m.szyprowski@samsung.com> L: linux-samsung-soc@vger.kernel.org -L: linux-media@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/media/cec/samsung,s5p-cec.yaml F: drivers/media/cec/platform/s5p/ @@ -3559,7 +3557,6 @@ M: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com> M: Jacek Anaszewski <jacek.anaszewski@gmail.com> M: Sylwester Nawrocki <s.nawrocki@samsung.com> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) -L: linux-media@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/media/samsung,s5pv210-jpeg.yaml F: drivers/media/platform/samsung/s5p-jpeg/ @@ -3568,7 +3565,6 @@ ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT M: Marek Szyprowski <m.szyprowski@samsung.com> M: Andrzej Hajda <andrzej.hajda@intel.com> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) -L: linux-media@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/media/samsung,s5p-mfc.yaml F: drivers/media/platform/samsung/s5p-mfc/ @@ -5643,7 +5639,6 @@ F: drivers/media/pci/bt8xx/bttv* BUS FREQUENCY DRIVER FOR SAMSUNG EXYNOS M: Chanwoo Choi <cw00.choi@samsung.com> -L: linux-pm@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git @@ -16036,7 +16031,6 @@ F: drivers/power/supply/max77976_charger.c MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS M: Krzysztof Kozlowski <krzk@kernel.org> -L: linux-pm@vger.kernel.org S: Maintained B: mailto:linux-samsung-soc@vger.kernel.org F: Documentation/devicetree/bindings/power/supply/maxim,max14577.yaml @@ -20734,7 +20728,6 @@ F: drivers/pci/controller/dwc/*rcar* PCI DRIVER FOR SAMSUNG EXYNOS M: Jingoo Han <jingoohan1@gmail.com> -L: linux-pci@vger.kernel.org L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-samsung-soc@vger.kernel.org S: Maintained @@ -24009,7 +24002,6 @@ F: arch/arm64/boot/dts/exynos/exynos8855* SAMSUNG EXYNOS ACPM MAILBOX PROTOCOL M: Tudor Ambarus <tudor.ambarus@linaro.org> -L: linux-kernel@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Supported F: Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml @@ -24019,7 +24011,6 @@ F: include/linux/firmware/samsung/exynos-acpm-protocol.h SAMSUNG EXYNOS MAILBOX DRIVER M: Tudor Ambarus <tudor.ambarus@linaro.org> -L: linux-kernel@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Supported F: Documentation/devicetree/bindings/mailbox/google,gs101-mbox.yaml @@ -24049,7 +24040,6 @@ F: drivers/platform/x86/samsung-galaxybook.c SAMSUNG INTERCONNECT DRIVERS M: Sylwester Nawrocki <s.nawrocki@samsung.com> M: Artur ĆwigoĆ <a.swigon@samsung.com> -L: linux-pm@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Supported F: drivers/interconnect/samsung/ @@ -24062,7 +24052,6 @@ F: drivers/platform/x86/samsung-laptop.c SAMSUNG MULTIFUNCTION PMIC DEVICE DRIVERS M: AndrĂ© Draszik <andre.draszik@linaro.org> -L: linux-kernel@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Maintained B: mailto:linux-samsung-soc@vger.kernel.org @@ -24081,7 +24070,6 @@ F: include/linux/mfd/samsung/ SAMSUNG S3C24XX/S3C64XX SOC SERIES CAMIF DRIVER M: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> -L: linux-media@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Maintained F: drivers/media/platform/samsung/s3c-camif/ @@ -24096,14 +24084,12 @@ F: drivers/nfc/s3fwrn5 SAMSUNG S5C73M3 CAMERA DRIVER M: Sylwester Nawrocki <s.nawrocki@samsung.com> M: Andrzej Hajda <andrzej.hajda@intel.com> -L: linux-media@vger.kernel.org S: Supported F: Documentation/devicetree/bindings/media/samsung,s5c73m3.yaml F: drivers/media/i2c/s5c73m3/* SAMSUNG S5K3M5 CAMERA DRIVER M: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org> -L: linux-media@vger.kernel.org S: Maintained T: git git://linuxtv.org/media_tree.git F: Documentation/devicetree/bindings/media/i2c/samsung,s5k3m5.yaml @@ -24112,13 +24098,11 @@ F: drivers/media/i2c/s5k3m5.c SAMSUNG S5K5BAF CAMERA DRIVER M: Sylwester Nawrocki <s.nawrocki@samsung.com> M: Andrzej Hajda <andrzej.hajda@intel.com> -L: linux-media@vger.kernel.org S: Supported F: drivers/media/i2c/s5k5baf.c SAMSUNG S5KJN1 CAMERA DRIVER M: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org> -L: linux-media@vger.kernel.org S: Maintained T: git git://linuxtv.org/media_tree.git F: Documentation/devicetree/bindings/media/i2c/samsung,s5kjn1.yaml @@ -24127,7 +24111,6 @@ F: drivers/media/i2c/s5kjn1.c SAMSUNG S5P Security SubSystem (SSS) DRIVER M: Krzysztof Kozlowski <krzk@kernel.org> M: Vladimir Zapolskiy <vz@mleia.com> -L: linux-crypto@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/crypto/samsung-slimsss.yaml @@ -24136,7 +24119,6 @@ F: drivers/crypto/s5p-sss.c SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS M: Sylwester Nawrocki <s.nawrocki@samsung.com> -L: linux-media@vger.kernel.org S: Supported Q: https://patchwork.linuxtv.org/project/linux-media/list/ F: Documentation/devicetree/bindings/media/samsung,exynos4210-csis.yaml @@ -24166,7 +24148,6 @@ F: include/linux/clk/samsung.h SAMSUNG SPI DRIVERS M: Andi Shyti <andi.shyti@kernel.org> R: Tudor Ambarus <tudor.ambarus@linaro.org> -L: linux-spi@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/spi/samsung,spi*.yaml @@ -24182,7 +24163,6 @@ F: drivers/net/ethernet/samsung/sxgbe/ SAMSUNG THERMAL DRIVER M: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> M: Krzysztof Kozlowski <krzk@kernel.org> -L: linux-pm@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/thermal/samsung,exynos-thermal.yaml @@ -27762,7 +27742,6 @@ F: drivers/ufs/host/*dwc* UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER EXYNOS HOOKS M: Alim Akhtar <alim.akhtar@samsung.com> R: Peter Griffin <peter.griffin@linaro.org> -L: linux-scsi@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Maintained F: drivers/ufs/host/ufs-exynos* diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 7788949992f4..f10379dfe7a3 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -472,7 +472,7 @@ source "arch/arm/mach-zynq/Kconfig" # ARMv7-M architecture config ARCH_LPC18XX - bool "NXP LPC18xx/LPC43xx" + bool "NXP LPC18xx/LPC43xx (DEPRECATED)" depends on ARM_SINGLE_ARMV7M select ARCH_HAS_RESET_CONTROLLER select ARM_AMBA @@ -482,8 +482,10 @@ config ARCH_LPC18XX Support for NXP's LPC18xx Cortex-M3 and LPC43xx Cortex-M4 high performance microcontrollers. + This platform is scheduled for removal in early 2027 + config ARCH_MPS2 - bool "ARM MPS2 platform" + bool "ARM MPS2 platform (DEPRECATED)" depends on ARM_SINGLE_ARMV7M select ARM_AMBA select CLKSRC_MPS2 @@ -494,6 +496,8 @@ config ARCH_MPS2 Please, note that depends which Application Note is used memory map for the platform may vary, so adjustment of RAM base might be needed. + This platform is scheduled for removal in early 2027 + # Definitions to make life easier config ARCH_ACORN bool @@ -514,13 +518,21 @@ config PLAT_VERSATILE source "arch/arm/mm/Kconfig" config IWMMXT - bool "Enable iWMMXt support" - depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK - default y if PXA27x || PXA3xx || ARCH_MMP + bool "Enable iWMMXt support (DEPRECATED)" + depends on PXA27x || PXA3xx || ARCH_MMP help Enable support for iWMMXt context switching at run time if running on a CPU that supports it. + Machines that actually support this feature are very rare, + and support is deprecated in new gcc-14. While there were a + few applications that used this in the past, none are known + to still do so. + + If you use this, please send a patch to remove the + deprecation, otherwise this will be removed in early + 2027. + if !MMU source "arch/arm/Kconfig-nommu" endif @@ -1152,23 +1164,23 @@ config ARM_PATCH_IDIV code to do integer division. config AEABI - bool "Use the ARM EABI to compile the kernel" if !CPU_V7 && \ - !CPU_V7M && !CPU_V6 && !CPU_V6K && !CC_IS_CLANG - default CPU_V7 || CPU_V7M || CPU_V6 || CPU_V6K || CC_IS_CLANG + bool "Use the ARM EABI to compile the kernel" if CPU_SA110 || CPU_SA1100 + default y help - This option allows for the kernel to be compiled using the latest - ARM ABI (aka EABI). This is only useful if you are using a user - space environment that is also compiled with EABI. + The Arm EABI is the default ABI on all modern Linux + distributions, replacing the obsolete and "OABI" that was + commonly used on ARMv4 distributions before ca. 2013. - Since there are major incompatibilities between the legacy ABI and - EABI, especially with regard to structure member alignment, this - option also changes the kernel syscall calling convention to - disambiguate both ABIs and allow for backward compatibility support - (selected with CONFIG_OABI_COMPAT). + Everyone should enable this, as support for OABI user space + was dropped in gcc-4.8 and most distributions after ca. 2013. + + Support for OABI mode will be removed from the kernel + once Intel StrongARM CPUs are phased out. config OABI_COMPAT bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" depends on AEABI && !THUMB2_KERNEL + depends on CPU_SA110 || CPU_SA1100 help This option preserves the old syscall interface along with the new (ARM EABI) one. It also provides a compatibility layer to @@ -1181,11 +1193,8 @@ config OABI_COMPAT selected, since there is no way yet to sensibly distinguish between calling conventions during filtering. - If you know you'll be using only pure EABI user space then you - can say N here. If this option is not selected and you attempt - to execute a legacy ABI binary then the result will be - UNPREDICTABLE (in fact it can be predicted that it won't work - at all). If in doubt say N. + Support for OABI_COMPAT will be removed from the kernel + once Intel StrongARM CPUs are phased out. config ARCH_SELECT_MEMORY_MODEL def_bool y @@ -1394,19 +1403,22 @@ config ARCH_WANT_FLAT_DTB_INSTALL config ATAGS bool "Support for the traditional ATAGS boot data passing" - default y + depends on EXPERT help - This is the traditional way of passing data to the kernel at boot - time. If you are solely relying on the flattened device tree (or - the ARM_ATAG_DTB_COMPAT option) then you may unselect this option - to remove ATAGS support from your kernel binary. + This is the traditional way of passing data to the kernel at + boot but is now only used by a few of the oldest ARMv4 and + ARMv5 machines. Users that still rely on ATAGS should plan + on migrating to devicetree based booting. + + Support for ATAGS will be removed when the last machine using + it is either converted to DT or removed. config DEPRECATED_PARAM_STRUCT - bool "Provide old way to pass kernel parameters" + bool "Provide old way to pass kernel parameters (DEPRECATED)" depends on ATAGS help This was deprecated in 2001 and announced to live on for 5 years. - Some old boot loaders still use this way. + It is now scheduled for removal in early 2027. # Compressed boot loader in ROM. Yes, we really want to ask about # TEXT and BSS so we preserve their values in the config files. @@ -1652,16 +1664,16 @@ menu "Floating point emulation" comment "At least one emulation must be selected" config FPE_NWFPE - bool "NWFPE math emulation" + bool "NWFPE math emulation (DEPRECATED)" depends on (!AEABI || OABI_COMPAT) && !THUMB2_KERNEL help Say Y to include the NWFPE floating point emulator in the kernel. - This is necessary to run most binaries. Linux does not currently - support floating point hardware so you need to say Y here even if - your machine has an FPA or floating point co-processor podule. - You may say N here if you are going to load the Acorn FPEmulator - early in the bootup. + This is only used on OABI userspace binaries, either using a + pure OABI (!CONFIG_AEABI) kernel, or the OABI emulation. + + Support for NWFPE will be removed in the future when OABI + support is removed. config FPE_NWFPE_XP bool "Support extended precision" diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms index 386eccc81868..2e118b65f93b 100644 --- a/arch/arm/Kconfig.platforms +++ b/arch/arm/Kconfig.platforms @@ -33,7 +33,7 @@ config ARCH_MULTI_V4_V5 config ARCH_MULTI_V6 bool "ARMv6 based platforms (ARM11)" select ARCH_MULTI_V6_V7 - select CPU_V6K + select CPU_ARM1176 config ARCH_MULTI_V7 bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" diff --git a/arch/arm/configs/am200epdkit_defconfig b/arch/arm/configs/am200epdkit_defconfig index d8198592fe1b..61beac88e863 100644 --- a/arch/arm/configs/am200epdkit_defconfig +++ b/arch/arm/configs/am200epdkit_defconfig @@ -7,8 +7,7 @@ CONFIG_EXPERT=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_PXA=y CONFIG_ARCH_GUMSTIX=y -CONFIG_AEABI=y -# CONFIG_OABI_COMPAT is not set +CONFIG_ATAGS=y CONFIG_CMDLINE="console=ttyS0,115200n8 root=1f01 rootfstype=jffs2" CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/configs/aspeed_g4_defconfig b/arch/arm/configs/aspeed_g4_defconfig index 45d8738abb75..f86dd4ce7d0d 100644 --- a/arch/arm/configs/aspeed_g4_defconfig +++ b/arch/arm/configs/aspeed_g4_defconfig @@ -22,9 +22,7 @@ CONFIG_KEXEC=y CONFIG_ARCH_ASPEED=y CONFIG_MACH_ASPEED_G4=y CONFIG_VMSPLIT_2G=y -CONFIG_AEABI=y CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_JUMP_LABEL=y CONFIG_STRICT_KERNEL_RWX=y # CONFIG_BLK_DEBUG_FS is not set diff --git a/arch/arm/configs/aspeed_g5_defconfig b/arch/arm/configs/aspeed_g5_defconfig index ec558e57d081..45b937419dbd 100644 --- a/arch/arm/configs/aspeed_g5_defconfig +++ b/arch/arm/configs/aspeed_g5_defconfig @@ -29,7 +29,6 @@ CONFIG_VMSPLIT_2G=y CONFIG_NR_CPUS=2 CONFIG_HIGHMEM=y CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_VFP=y CONFIG_NEON=y CONFIG_KERNEL_MODE_NEON=y diff --git a/arch/arm/configs/assabet_defconfig b/arch/arm/configs/assabet_defconfig index 07ab9eaac4af..e4264fdac2e5 100644 --- a/arch/arm/configs/assabet_defconfig +++ b/arch/arm/configs/assabet_defconfig @@ -1,10 +1,13 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_ASSABET=y +# CONFIG_AEABI is not set +CONFIG_ATAGS=y CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M root=/dev/ram" CONFIG_FPE_NWFPE=y CONFIG_PM=y diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig index e331242dece7..830c6c0dbdaf 100644 --- a/arch/arm/configs/at91_dt_defconfig +++ b/arch/arm/configs/at91_dt_defconfig @@ -18,9 +18,7 @@ CONFIG_SOC_AT91SAM9=y CONFIG_SOC_SAM9X60=y CONFIG_SOC_SAM9X7=y # CONFIG_ATMEL_CLOCKSOURCE_PIT is not set -CONFIG_AEABI=y CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_CMDLINE="console=ttyS0,115200 initrd=0x21100000,25165824 root=/dev/ram0 rw" diff --git a/arch/arm/configs/axm55xx_defconfig b/arch/arm/configs/axm55xx_defconfig index 0952e5e94c5e..541e38e2205b 100644 --- a/arch/arm/configs/axm55xx_defconfig +++ b/arch/arm/configs/axm55xx_defconfig @@ -38,8 +38,6 @@ CONFIG_PCIE_AXXIA=y CONFIG_SMP=y CONFIG_NR_CPUS=16 CONFIG_HOTPLUG_CPU=y -CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig index 4a8ac09843d7..b469ecc36cf5 100644 --- a/arch/arm/configs/bcm2835_defconfig +++ b/arch/arm/configs/bcm2835_defconfig @@ -25,7 +25,6 @@ CONFIG_CRASH_DUMP=y CONFIG_ARCH_MULTI_V6=y CONFIG_ARCH_BCM=y CONFIG_ARCH_BCM2835=y -CONFIG_AEABI=y CONFIG_SECCOMP=y CONFIG_KEXEC=y CONFIG_CPU_FREQ=y diff --git a/arch/arm/configs/clps711x_defconfig b/arch/arm/configs/clps711x_defconfig index f66d502ce2ef..7ba344e84c62 100644 --- a/arch/arm/configs/clps711x_defconfig +++ b/arch/arm/configs/clps711x_defconfig @@ -6,7 +6,6 @@ CONFIG_RD_LZMA=y CONFIG_EXPERT=y CONFIG_JUMP_LABEL=y CONFIG_PARTITION_ADVANCED=y -CONFIG_AEABI=y # CONFIG_COREDUMP is not set CONFIG_SLUB_TINY=y CONFIG_NET=y diff --git a/arch/arm/configs/collie_defconfig b/arch/arm/configs/collie_defconfig index 578c6a4af620..570a5f8bc57b 100644 --- a/arch/arm/configs/collie_defconfig +++ b/arch/arm/configs/collie_defconfig @@ -9,8 +9,8 @@ CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_COLLIE=y +CONFIG_ATAGS=y CONFIG_CMDLINE="noinitrd root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1" -CONFIG_FPE_NWFPE=y CONFIG_PM=y # CONFIG_SWAP is not set CONFIG_SLUB_TINY=y diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig index 72703ef0c51c..e6fbe1f03920 100644 --- a/arch/arm/configs/davinci_all_defconfig +++ b/arch/arm/configs/davinci_all_defconfig @@ -17,7 +17,6 @@ CONFIG_ARCH_DAVINCI=y CONFIG_ARCH_DAVINCI_DA850=y CONFIG_DAVINCI_MUX_DEBUG=y CONFIG_DAVINCI_MUX_WARNINGS=y -CONFIG_AEABI=y CONFIG_SECCOMP=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/dove_defconfig b/arch/arm/configs/dove_defconfig index b6ed01216a62..917a864fec74 100644 --- a/arch/arm/configs/dove_defconfig +++ b/arch/arm/configs/dove_defconfig @@ -7,8 +7,8 @@ CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V7=y CONFIG_ARCH_DOVE=y CONFIG_MACH_CM_A510=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y +CONFIG_ATAGS=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_VFP=y diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig index ce41dc8c435c..6863d8fd7713 100644 --- a/arch/arm/configs/ep93xx_defconfig +++ b/arch/arm/configs/ep93xx_defconfig @@ -18,7 +18,6 @@ CONFIG_MACH_EDB9315=y CONFIG_MACH_EDB9315A=y CONFIG_MACH_TS72XX=y CONFIG_MACH_VISION_EP9307=y -CONFIG_AEABI=y CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/nfs ip=bootp" CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig index 5f6963687ee4..7fa556fb6cf4 100644 --- a/arch/arm/configs/footbridge_defconfig +++ b/arch/arm/configs/footbridge_defconfig @@ -9,8 +9,10 @@ CONFIG_ARCH_MULTI_V4=y CONFIG_ARCH_FOOTBRIDGE=y CONFIG_ARCH_EBSA285_HOST=y CONFIG_ARCH_NETWINDER=y +CONFIG_ATAGS=y CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE_XP=y +# CONFIG_AEABI is not set CONFIG_MODULES=y CONFIG_PARTITION_ADVANCED=y CONFIG_ACORN_PARTITION=y diff --git a/arch/arm/configs/gemini_defconfig b/arch/arm/configs/gemini_defconfig index 7b1daec630cb..5860b2fe7d1f 100644 --- a/arch/arm/configs/gemini_defconfig +++ b/arch/arm/configs/gemini_defconfig @@ -11,7 +11,6 @@ CONFIG_KEXEC=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_GEMINI=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_CMDLINE="console=ttyS0,115200n8" CONFIG_PM=y diff --git a/arch/arm/configs/h3600_defconfig b/arch/arm/configs/h3600_defconfig index 4e272875c797..3e8da62d959d 100644 --- a/arch/arm/configs/h3600_defconfig +++ b/arch/arm/configs/h3600_defconfig @@ -4,12 +4,13 @@ CONFIG_HIGH_RES_TIMERS=y CONFIG_PREEMPT=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_H3600=y # CONFIG_CPU_FREQ_STAT is not set -CONFIG_FPE_NWFPE=y +CONFIG_ATAGS=y CONFIG_MODULES=y CONFIG_NET=y CONFIG_UNIX=y diff --git a/arch/arm/configs/hisi_defconfig b/arch/arm/configs/hisi_defconfig index dde9cff951d4..c89b743784ca 100644 --- a/arch/arm/configs/hisi_defconfig +++ b/arch/arm/configs/hisi_defconfig @@ -10,7 +10,6 @@ CONFIG_ARCH_HIP04=y CONFIG_ARCH_HIX5HD2=y CONFIG_SMP=y CONFIG_NR_CPUS=16 -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/imx_v4_v5_defconfig b/arch/arm/configs/imx_v4_v5_defconfig index 9139d1784c70..871e93dd65b5 100644 --- a/arch/arm/configs/imx_v4_v5_defconfig +++ b/arch/arm/configs/imx_v4_v5_defconfig @@ -15,7 +15,6 @@ CONFIG_ARCH_MXC=y CONFIG_SOC_IMX1=y CONFIG_SOC_IMX25=y CONFIG_SOC_IMX27=y -CONFIG_AEABI=y CONFIG_PM_DEBUG=y CONFIG_KPROBES=y CONFIG_MODULES=y diff --git a/arch/arm/configs/integrator_defconfig b/arch/arm/configs/integrator_defconfig index 61711d4bbf74..82180381bf3c 100644 --- a/arch/arm/configs/integrator_defconfig +++ b/arch/arm/configs/integrator_defconfig @@ -13,8 +13,6 @@ CONFIG_ARCH_INTEGRATOR=y CONFIG_ARCH_INTEGRATOR_AP=y CONFIG_INTEGRATOR_IMPD1=y CONFIG_ARCH_INTEGRATOR_CP=y -CONFIG_AEABI=y -# CONFIG_ATAGS is not set CONFIG_CMDLINE="console=ttyAM0,38400n8 root=/dev/nfs ip=bootp" CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y diff --git a/arch/arm/configs/ixp4xx_defconfig b/arch/arm/configs/ixp4xx_defconfig index 418ef909572b..122ca7354986 100644 --- a/arch/arm/configs/ixp4xx_defconfig +++ b/arch/arm/configs/ixp4xx_defconfig @@ -9,7 +9,6 @@ CONFIG_EXPERT=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_IXP4XX=y CONFIG_CPU_BIG_ENDIAN=y -CONFIG_AEABI=y CONFIG_CMDLINE="console=ttyS0,115200" CONFIG_STRICT_KERNEL_RWX=y CONFIG_STRICT_MODULE_RWX=y diff --git a/arch/arm/configs/jornada720_defconfig b/arch/arm/configs/jornada720_defconfig index d57285cfefb2..a96cfb81aba5 100644 --- a/arch/arm/configs/jornada720_defconfig +++ b/arch/arm/configs/jornada720_defconfig @@ -1,12 +1,13 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_JORNADA720=y CONFIG_SA1100_JORNADA720_SSP=y -CONFIG_FPE_NWFPE=y CONFIG_PM=y +CONFIG_ATAGS=y CONFIG_MODULES=y CONFIG_NET=y CONFIG_PACKET=y diff --git a/arch/arm/configs/keystone_defconfig b/arch/arm/configs/keystone_defconfig index b0cadd878152..af91b9a420c9 100644 --- a/arch/arm/configs/keystone_defconfig +++ b/arch/arm/configs/keystone_defconfig @@ -22,7 +22,6 @@ CONFIG_PCI_KEYSTONE=y CONFIG_SMP=y CONFIG_HOTPLUG_CPU=y CONFIG_ARM_PSCI=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_VFP=y CONFIG_NEON=y diff --git a/arch/arm/configs/lpc32xx_defconfig b/arch/arm/configs/lpc32xx_defconfig index b9e2e603cd95..c0b45eea1b0f 100644 --- a/arch/arm/configs/lpc32xx_defconfig +++ b/arch/arm/configs/lpc32xx_defconfig @@ -10,7 +10,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_EXPERT=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_LPC32XX=y -CONFIG_AEABI=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_CMDLINE="console=ttyS0,115200n81 root=/dev/ram0" diff --git a/arch/arm/configs/mmp2_defconfig b/arch/arm/configs/mmp2_defconfig index 0ea608c75f22..2ca166d4e78f 100644 --- a/arch/arm/configs/mmp2_defconfig +++ b/arch/arm/configs/mmp2_defconfig @@ -4,7 +4,6 @@ CONFIG_PREEMPT=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_BLK_DEV_BSG is not set CONFIG_ARCH_MMP=y -CONFIG_AEABI=y CONFIG_MACH_MMP2_DT=y CONFIG_CMDLINE="root=/dev/nfs rootfstype=nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on console=ttyS2,38400 mem=128M user_debug=255 earlyprintk" CONFIG_VFP=y diff --git a/arch/arm/configs/moxart_defconfig b/arch/arm/configs/moxart_defconfig index e2d9f3610063..699d7ad98dd2 100644 --- a/arch/arm/configs/moxart_defconfig +++ b/arch/arm/configs/moxart_defconfig @@ -16,8 +16,6 @@ CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_MOXART=y CONFIG_MACH_UC7112LX=y -CONFIG_AEABI=y -# CONFIG_ATAGS is not set CONFIG_ARM_APPENDED_DTB=y # CONFIG_SWAP is not set # CONFIG_COMPAT_BRK is not set diff --git a/arch/arm/configs/mps2_defconfig b/arch/arm/configs/mps2_defconfig index e995e50537ef..cacf3876f6e4 100644 --- a/arch/arm/configs/mps2_defconfig +++ b/arch/arm/configs/mps2_defconfig @@ -16,7 +16,6 @@ CONFIG_ARCH_MPS2=y CONFIG_SET_MEM_PARAM=y CONFIG_DRAM_BASE=0x21000000 CONFIG_DRAM_SIZE=0x1000000 -# CONFIG_ATAGS is not set # CONFIG_SUSPEND is not set # CONFIG_BLOCK is not set CONFIG_BINFMT_FLAT=y diff --git a/arch/arm/configs/multi_v4t_defconfig b/arch/arm/configs/multi_v4t_defconfig index 1a86dc305523..7b592345db21 100644 --- a/arch/arm/configs/multi_v4t_defconfig +++ b/arch/arm/configs/multi_v4t_defconfig @@ -17,8 +17,6 @@ CONFIG_INTEGRATOR_IMPD1=y CONFIG_INTEGRATOR_CM720T=y CONFIG_INTEGRATOR_CM920T=y CONFIG_INTEGRATOR_CM922T_XA10=y -CONFIG_AEABI=y -# CONFIG_ATAGS is not set CONFIG_CPU_IDLE=y CONFIG_ARM_CPUIDLE=y CONFIG_ARM_CLPS711X_CPUIDLE=y diff --git a/arch/arm/configs/multi_v5_defconfig b/arch/arm/configs/multi_v5_defconfig index d237ea8ea327..a0d2fb2fcf9a 100644 --- a/arch/arm/configs/multi_v5_defconfig +++ b/arch/arm/configs/multi_v5_defconfig @@ -22,21 +22,11 @@ CONFIG_ARCH_NPCM=y CONFIG_ARCH_WPCM450=y CONFIG_ARCH_ORION5X=y CONFIG_MACH_RD88F5182_DT=y -CONFIG_MACH_KUROBOX_PRO=y -CONFIG_MACH_DNS323=y -CONFIG_MACH_TS209=y -CONFIG_MACH_TERASTATION_PRO2=y -CONFIG_MACH_LINKSTATION_PRO=y CONFIG_MACH_LINKSTATION_MINI=y -CONFIG_MACH_TS409=y -CONFIG_MACH_TS78XX=y -CONFIG_MACH_MV2120=y CONFIG_MACH_D2NET_DT=y -CONFIG_MACH_NET2BIG=y CONFIG_MACH_MSS2_DT=y CONFIG_ARCH_SUNXI=y CONFIG_ARCH_VERSATILE=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/mv78xx0_defconfig b/arch/arm/configs/mv78xx0_defconfig index 1174893102bd..e3cc8de7c1c2 100644 --- a/arch/arm/configs/mv78xx0_defconfig +++ b/arch/arm/configs/mv78xx0_defconfig @@ -11,9 +11,8 @@ CONFIG_ARCH_MULTI_V5=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_MV78XX0=y CONFIG_MACH_TERASTATION_WXL=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y -CONFIG_FPE_NWFPE=y +CONFIG_ATAGS=y CONFIG_VFP=y CONFIG_KPROBES=y CONFIG_MODULES=y diff --git a/arch/arm/configs/mvebu_v5_defconfig b/arch/arm/configs/mvebu_v5_defconfig index 781f8f72df5f..dbc6c511e70b 100644 --- a/arch/arm/configs/mvebu_v5_defconfig +++ b/arch/arm/configs/mvebu_v5_defconfig @@ -10,19 +10,9 @@ CONFIG_ARCH_MVEBU=y CONFIG_MACH_KIRKWOOD=y CONFIG_ARCH_ORION5X=y CONFIG_MACH_RD88F5182_DT=y -CONFIG_MACH_KUROBOX_PRO=y -CONFIG_MACH_DNS323=y -CONFIG_MACH_TS209=y -CONFIG_MACH_TERASTATION_PRO2=y -CONFIG_MACH_LINKSTATION_PRO=y CONFIG_MACH_LINKSTATION_MINI=y -CONFIG_MACH_TS409=y -CONFIG_MACH_TS78XX=y -CONFIG_MACH_MV2120=y CONFIG_MACH_D2NET_DT=y -CONFIG_MACH_NET2BIG=y CONFIG_MACH_MSS2_DT=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y diff --git a/arch/arm/configs/mxs_defconfig b/arch/arm/configs/mxs_defconfig index 603fb003b223..b0b5eb33d01e 100644 --- a/arch/arm/configs/mxs_defconfig +++ b/arch/arm/configs/mxs_defconfig @@ -17,7 +17,6 @@ CONFIG_BLK_DEV_INITRD=y CONFIG_PERF_EVENTS=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_MXS=y -CONFIG_AEABI=y CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/configs/neponset_defconfig b/arch/arm/configs/neponset_defconfig index 8a5dcca743fc..164643f1b6c0 100644 --- a/arch/arm/configs/neponset_defconfig +++ b/arch/arm/configs/neponset_defconfig @@ -1,16 +1,19 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_SA1100=y CONFIG_SA1100_ASSABET=y CONFIG_ASSABET_NEPONSET=y +CONFIG_ATAGS=y CONFIG_ZBOOT_ROM_TEXT=0x80000 CONFIG_ZBOOT_ROM_BSS=0xc1000000 CONFIG_ZBOOT_ROM=y CONFIG_CMDLINE="console=ttySA0,38400n8 cpufreq=221200 rw root=/dev/mtdblock2 mtdparts=sa1100:512K(boot),1M(kernel),2560K(initrd),4M(root) mem=32M noinitrd initrd=0xc0800000,3M" CONFIG_FPE_NWFPE=y +# CONFIG_AEABI is not set CONFIG_PM=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y diff --git a/arch/arm/configs/netwinder_defconfig b/arch/arm/configs/netwinder_defconfig index e639e6ad02cb..77d4a2b5916b 100644 --- a/arch/arm/configs/netwinder_defconfig +++ b/arch/arm/configs/netwinder_defconfig @@ -1,9 +1,12 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_FOOTBRIDGE=y CONFIG_ARCH_NETWINDER=y +# CONFIG_AEABI is not set +CONFIG_ATAGS=y CONFIG_DEPRECATED_PARAM_STRUCT=y CONFIG_CMDLINE="root=0x801" CONFIG_FPE_NWFPE=y diff --git a/arch/arm/configs/nhk8815_defconfig b/arch/arm/configs/nhk8815_defconfig index 696b4fbc2412..7a307bd93730 100644 --- a/arch/arm/configs/nhk8815_defconfig +++ b/arch/arm/configs/nhk8815_defconfig @@ -12,7 +12,6 @@ CONFIG_KALLSYMS_ALL=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_NOMADIK=y CONFIG_MACH_NOMADIK_8815NHK=y -CONFIG_AEABI=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_SWAP is not set diff --git a/arch/arm/configs/omap1_defconfig b/arch/arm/configs/omap1_defconfig index 7bf58e8a5ab5..fcbaaf37bc9b 100644 --- a/arch/arm/configs/omap1_defconfig +++ b/arch/arm/configs/omap1_defconfig @@ -28,9 +28,8 @@ CONFIG_MACH_OMAP_PALMTE=y CONFIG_MACH_SX1=y CONFIG_MACH_NOKIA770=y CONFIG_MACH_AMS_DELTA=y -CONFIG_AEABI=y +CONFIG_ATAGS=y CONFIG_CMDLINE="root=1f03 rootfstype=jffs2" -CONFIG_FPE_NWFPE=y # CONFIG_SUSPEND is not set CONFIG_PM=y CONFIG_MODULES=y diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig index f5be2e26d9ae..f47a84ac872f 100644 --- a/arch/arm/configs/orion5x_defconfig +++ b/arch/arm/configs/orion5x_defconfig @@ -10,20 +10,9 @@ CONFIG_ARCH_MULTI_V5=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_ORION5X=y CONFIG_MACH_RD88F5182_DT=y -CONFIG_MACH_KUROBOX_PRO=y -CONFIG_MACH_DNS323=y -CONFIG_MACH_TS209=y -CONFIG_MACH_TERASTATION_PRO2=y -CONFIG_MACH_LINKSTATION_PRO=y CONFIG_MACH_LINKSTATION_MINI=y -CONFIG_MACH_TS409=y -CONFIG_MACH_TS78XX=y -CONFIG_MACH_MV2120=y -CONFIG_MACH_NET2BIG=y -CONFIG_AEABI=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y -CONFIG_FPE_NWFPE=y CONFIG_VFP=y CONFIG_KPROBES=y CONFIG_MODULES=y diff --git a/arch/arm/configs/pxa168_defconfig b/arch/arm/configs/pxa168_defconfig index 8cbca84fe33a..d6af01434f04 100644 --- a/arch/arm/configs/pxa168_defconfig +++ b/arch/arm/configs/pxa168_defconfig @@ -3,11 +3,9 @@ CONFIG_SYSVIPC=y CONFIG_NO_HZ_IDLE=y CONFIG_HIGH_RES_TIMERS=y CONFIG_PREEMPT=y -CONFIG_AEABI=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_ARCH_MMP=y CONFIG_CMDLINE="root=/dev/nfs rootfstype=nfs nfsroot=192.168.2.100:/nfsroot/ ip=192.168.2.101:192.168.2.100::255.255.255.0::eth0:on console=ttyS0,115200 mem=128M" -CONFIG_FPE_NWFPE=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y diff --git a/arch/arm/configs/pxa3xx_defconfig b/arch/arm/configs/pxa3xx_defconfig index fb272e3a2337..2a777698d06f 100644 --- a/arch/arm/configs/pxa3xx_defconfig +++ b/arch/arm/configs/pxa3xx_defconfig @@ -7,9 +7,7 @@ CONFIG_KALLSYMS_ALL=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_PXA=y CONFIG_MACH_PXA3XX_DT=y -CONFIG_AEABI=y CONFIG_CMDLINE="root=/dev/nfs rootfstype=nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on console=ttyS0,115200 mem=64M debug" -CONFIG_FPE_NWFPE=y CONFIG_MODULES=y CONFIG_NET=y CONFIG_PACKET=y diff --git a/arch/arm/configs/pxa910_defconfig b/arch/arm/configs/pxa910_defconfig index 71ed0d73f8a9..9e7b11d1e723 100644 --- a/arch/arm/configs/pxa910_defconfig +++ b/arch/arm/configs/pxa910_defconfig @@ -10,8 +10,6 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set -CONFIG_AEABI=y -CONFIG_FPE_NWFPE=y CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y diff --git a/arch/arm/configs/pxa_defconfig b/arch/arm/configs/pxa_defconfig index 66cc149c5ca4..e7a7ed2b7ef7 100644 --- a/arch/arm/configs/pxa_defconfig +++ b/arch/arm/configs/pxa_defconfig @@ -16,11 +16,6 @@ CONFIG_PROFILING=y CONFIG_KEXEC=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_PXA=y -CONFIG_ARCH_GUMSTIX=y -CONFIG_PXA_SHARPSL=y -CONFIG_MACH_AKITA=y -CONFIG_MACH_BORZOI=y -CONFIG_AEABI=y CONFIG_ARCH_FORCE_MAX_ORDER=8 CONFIG_CMDLINE="root=/dev/ram0 ro" CONFIG_CPU_FREQ=y diff --git a/arch/arm/configs/rpc_defconfig b/arch/arm/configs/rpc_defconfig index 46df453e224e..edb52d56f679 100644 --- a/arch/arm/configs/rpc_defconfig +++ b/arch/arm/configs/rpc_defconfig @@ -2,11 +2,14 @@ CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y CONFIG_ARCH_MULTI_V4=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_RPC=y CONFIG_CPU_SA110=y CONFIG_FPE_NWFPE=y +# CONFIG_AEABI is not set +CONFIG_ATAGS=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_PARTITION_ADVANCED=y diff --git a/arch/arm/configs/s3c6400_defconfig b/arch/arm/configs/s3c6400_defconfig index 7bf28a83946a..a0707707d960 100644 --- a/arch/arm/configs/s3c6400_defconfig +++ b/arch/arm/configs/s3c6400_defconfig @@ -2,8 +2,10 @@ CONFIG_BLK_DEV_INITRD=y CONFIG_KALLSYMS_ALL=y CONFIG_ARCH_MULTI_V6=y # CONFIG_ARCH_MULTI_V7 is not set +CONFIG_EXPERT=y CONFIG_ARCH_S3C64XX=y CONFIG_MACH_WLF_CRAGG_6410=y +CONFIG_ATAGS=y CONFIG_CMDLINE="console=ttySAC0,115200 root=/dev/ram init=/linuxrc initrd=0x51000000,6M ramdisk_size=6144" CONFIG_VFP=y CONFIG_MODULES=y diff --git a/arch/arm/configs/sama5_defconfig b/arch/arm/configs/sama5_defconfig index bd7f0b5f7d66..1eafad9139f1 100644 --- a/arch/arm/configs/sama5_defconfig +++ b/arch/arm/configs/sama5_defconfig @@ -13,7 +13,6 @@ CONFIG_SOC_SAMA5D3=y CONFIG_SOC_SAMA5D4=y # CONFIG_ATMEL_CLOCKSOURCE_PIT is not set CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_CMDLINE="console=ttyS0,115200 initrd=0x21100000,25165824 root=/dev/ram0 rw" CONFIG_VFP=y CONFIG_NEON=y diff --git a/arch/arm/configs/sama7_defconfig b/arch/arm/configs/sama7_defconfig index cc7f6daf9fc7..4af87c57483d 100644 --- a/arch/arm/configs/sama7_defconfig +++ b/arch/arm/configs/sama7_defconfig @@ -20,7 +20,6 @@ CONFIG_ATMEL_CLOCKSOURCE_TCB=y # CONFIG_CPU_SW_DOMAIN_PAN is not set CONFIG_ARCH_FORCE_MAX_ORDER=14 CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_CMDLINE="console=ttyS0,115200 earlyprintk ignore_loglevel" CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y diff --git a/arch/arm/configs/spear13xx_defconfig b/arch/arm/configs/spear13xx_defconfig index 6712ae741c19..648260f536a1 100644 --- a/arch/arm/configs/spear13xx_defconfig +++ b/arch/arm/configs/spear13xx_defconfig @@ -9,7 +9,6 @@ CONFIG_MACH_SPEAR1340=y CONFIG_SMP=y # CONFIG_SMP_ON_UP is not set # CONFIG_ARM_CPU_TOPOLOGY is not set -CONFIG_AEABI=y CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_VFP=y diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig index 8f8a058294fb..c7cf089001bf 100644 --- a/arch/arm/configs/spitz_defconfig +++ b/arch/arm/configs/spitz_defconfig @@ -10,8 +10,8 @@ CONFIG_ARCH_PXA=y CONFIG_PXA_SHARPSL=y CONFIG_MACH_AKITA=y CONFIG_MACH_BORZOI=y +CONFIG_ATAGS=y CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" -CONFIG_FPE_NWFPE=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y diff --git a/arch/arm/configs/stm32_defconfig b/arch/arm/configs/stm32_defconfig index 82190b155b14..7366aade19ad 100644 --- a/arch/arm/configs/stm32_defconfig +++ b/arch/arm/configs/stm32_defconfig @@ -20,7 +20,6 @@ CONFIG_ARCH_STM32=y CONFIG_CPU_V7M_NUM_IRQ=240 CONFIG_SET_MEM_PARAM=y CONFIG_DRAM_BASE=0x90000000 -# CONFIG_ATAGS is not set CONFIG_XIP_KERNEL=y CONFIG_XIP_PHYS_ADDR=0x08008000 # CONFIG_SUSPEND is not set diff --git a/arch/arm/configs/versatile_defconfig b/arch/arm/configs/versatile_defconfig index 849118cbbb44..bb9eb9ccbbde 100644 --- a/arch/arm/configs/versatile_defconfig +++ b/arch/arm/configs/versatile_defconfig @@ -6,8 +6,6 @@ CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_VERSATILE=y -CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y CONFIG_CMDLINE="root=1f03 mem=32M" CONFIG_FPE_NWFPE=y CONFIG_VFP=y diff --git a/arch/arm/configs/vt8500_v6_v7_defconfig b/arch/arm/configs/vt8500_v6_v7_defconfig index 41607a84abc8..2925a1f1dbb6 100644 --- a/arch/arm/configs/vt8500_v6_v7_defconfig +++ b/arch/arm/configs/vt8500_v6_v7_defconfig @@ -8,7 +8,6 @@ CONFIG_ARM_ERRATA_720789=y CONFIG_ARM_ERRATA_754322=y CONFIG_ARM_ERRATA_775420=y CONFIG_HAVE_ARM_ARCH_TIMER=y -CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_HIGHPTE=y CONFIG_ARM_APPENDED_DTB=y diff --git a/arch/arm/configs/wpcm450_defconfig b/arch/arm/configs/wpcm450_defconfig index 67b64a378166..7512ec4292a0 100644 --- a/arch/arm/configs/wpcm450_defconfig +++ b/arch/arm/configs/wpcm450_defconfig @@ -13,9 +13,7 @@ CONFIG_PROFILING=y CONFIG_ARCH_NPCM=y CONFIG_ARCH_WPCM450=y CONFIG_CPU_DCACHE_WRITETHROUGH=y -CONFIG_AEABI=y CONFIG_UACCESS_WITH_MEMCPY=y -# CONFIG_ATAGS is not set CONFIG_ARM_APPENDED_DTB=y CONFIG_CPU_IDLE=y CONFIG_KPROBES=y diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index c5ef27e3cd8f..cb0e3ff8e0ca 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig @@ -15,13 +15,15 @@ menuconfig ARCH_AT91 if ARCH_AT91 config SOC_SAMV7 - bool "SAM Cortex-M7 family" if ARM_SINGLE_ARMV7M + bool "SAM Cortex-M7 family (DEPRECATED)" if ARM_SINGLE_ARMV7M select COMMON_CLK_AT91 select PINCTRL_AT91 help Select this if you are using an SoC from Microchip's SAME7, SAMS7 or SAMV7 families. + This platform is scheduled for removal in early 2027 + config SOC_SAMA5D2 bool "SAMA5D2 family" depends on ARCH_MULTI_V7 diff --git a/arch/arm/mach-axxia/Kconfig b/arch/arm/mach-axxia/Kconfig index d3eae6037913..f773a66c1402 100644 --- a/arch/arm/mach-axxia/Kconfig +++ b/arch/arm/mach-axxia/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 config ARCH_AXXIA - bool "LSI Axxia platforms" + bool "LSI Axxia platforms (DEPRECATED)" depends on ARCH_MULTI_V7 && ARM_LPAE select ARM_AMBA select ARM_GIC @@ -13,3 +13,5 @@ config ARCH_AXXIA The LSI Axxia platforms require a Flattened Device Tree to be passed to the kernel. + + This platform is scheduled for removal in early 2027 diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c index 706f8241b5e7..611cce70c5bb 100644 --- a/arch/arm/mach-davinci/da850.c +++ b/arch/arm/mach-davinci/da850.c @@ -9,7 +9,7 @@ * 2009 (c) MontaVista Software, Inc. */ -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/init.h> #include <linux/io.h> #include <linux/mfd/da8xx-cfgchip.h> diff --git a/arch/arm/mach-dove/Kconfig b/arch/arm/mach-dove/Kconfig index 996888ffcfe7..f547120e223e 100644 --- a/arch/arm/mach-dove/Kconfig +++ b/arch/arm/mach-dove/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 menuconfig ARCH_DOVE - bool "Marvell Dove" if ARCH_MULTI_V7 + bool "Marvell Dove (DEPRECATED)" if ARCH_MULTI_V7 depends on ATAGS select CPU_PJ4 select GPIOLIB @@ -11,7 +11,11 @@ menuconfig ARCH_DOVE select PM_GENERIC_DOMAINS if PM select PCI_QUIRKS if PCI help - Support for the Marvell Dove SoC 88AP510 + Support for the Marvell Dove SoC 88AP510 using board files. + + Support for this machine will be removed in early 2027, unless + there is a strong reason to keep it. Users should migrate to + the devicetree-enabled version (CONFIG_MACH_DOVE) instead. if ARCH_DOVE diff --git a/arch/arm/mach-dove/mpp.c b/arch/arm/mach-dove/mpp.c index 93cb137da5f8..e41bd473abe9 100644 --- a/arch/arm/mach-dove/mpp.c +++ b/arch/arm/mach-dove/mpp.c @@ -6,7 +6,7 @@ */ #include <linux/kernel.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/io.h> #include <plat/mpp.h> #include <plat/orion-gpio.h> diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig index 78189997caa1..96a74d447028 100644 --- a/arch/arm/mach-footbridge/Kconfig +++ b/arch/arm/mach-footbridge/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only menuconfig ARCH_FOOTBRIDGE - bool "FootBridge Implementations" + bool "FootBridge Implementations (DEPRECATED)" depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5) depends on !(ARCH_MOXART || ARCH_GEMINI || ARCH_SA1100) depends on ATAGS @@ -12,7 +12,10 @@ menuconfig ARCH_FOOTBRIDGE select NEED_MACH_MEMORY_H help Support for systems based on the DC21285 companion chip - ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. + ("FootBridge"), used in the EBSA285 and the Rebel NetWinder. + + Support for these machines will go away in 2027, + unless there are any remaining users that speak up. if ARCH_FOOTBRIDGE diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index a361840d7a04..3f0521c652cb 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -40,14 +40,19 @@ if ARCH_MULTI_V6 comment "ARM1136 platforms" config SOC_IMX31 - bool "i.MX31 support" - select CPU_V6 + bool "i.MX31 support (DEPRECATED)" + depends on !SMP + select CPU_ARM1136R0 select MXC_AVIC help This enables support for Freescale i.MX31 processor + This SoC is scheduled for removal in early 2027, + since it uses the ARM1136r0 CPU revision. + config SOC_IMX35 bool "i.MX35 support" + select CPU_ARM1136R1 select MXC_AVIC help This enables support for Freescale i.MX35 processor @@ -214,12 +219,14 @@ config SOC_IMX7ULP This enables support for Freescale i.MX7 Ultra Low Power processor. config SOC_IMXRT - bool "i.MXRT support" + bool "i.MXRT support (DEPRECATED)" depends on ARM_SINGLE_ARMV7M select ARMV7M_SYSTICK if ARM_SINGLE_ARMV7M help This enables support for Freescale i.MXRT Crossover processor. + This platform is scheduled for removal in early 2027 + config SOC_VF610 bool "Vybrid Family VF610 support" select ARM_GIC if ARCH_MULTI_V7 diff --git a/arch/arm/mach-imx/avic.c b/arch/arm/mach-imx/avic.c index 3067c06b4b8e..6873a50bbe2c 100644 --- a/arch/arm/mach-imx/avic.c +++ b/arch/arm/mach-imx/avic.c @@ -173,6 +173,7 @@ static void __init mxc_init_irq(void __iomem *irqbase) np = of_find_compatible_node(NULL, NULL, "fsl,imx25-ccm"); mx25_ccm_base = of_iomap(np, 0); + of_node_put(np); if (mx25_ccm_base) { /* @@ -203,6 +204,7 @@ static void __init mxc_init_irq(void __iomem *irqbase) np = of_find_compatible_node(NULL, NULL, "fsl,avic"); domain = irq_domain_create_legacy(of_fwnode_handle(np), AVIC_NUM_IRQS, irq_base, 0, &irq_domain_simple_ops, NULL); + of_node_put(np); WARN_ON(!domain); for (i = 0; i < AVIC_NUM_IRQS / 32; i++, irq_base += 32) diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index 45c1a2a7b35f..d7ecaa822adb 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h @@ -14,23 +14,16 @@ struct platform_device; struct pt_regs; struct clk; struct device_node; -enum mxc_cpu_pwr_mode; -struct of_device_id; void mx31_map_io(void); void mx35_map_io(void); -void imx21_init_early(void); void imx31_init_early(void); void imx35_init_early(void); -void mx31_init_irq(void); -void mx35_init_irq(void); void mxc_set_cpu_type(unsigned int type); void mxc_restart(enum reboot_mode, const char *); void mxc_arch_reset_init(void __iomem *); -void imx1_reset_init(void __iomem *); void imx_set_aips(void __iomem *); void imx_aips_allow_unprivileged_access(const char *compat); -int mxc_device_init(void); void imx_set_soc_revision(unsigned int rev); void imx_init_revision_from_anatop(void); void imx6_enable_rbc(bool enable); diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c index 59a8e8cc4469..c3c80b4c3d53 100644 --- a/arch/arm/mach-imx/src.c +++ b/arch/arm/mach-imx/src.c @@ -171,6 +171,7 @@ void __init imx_src_init(void) if (!np) return; src_base = of_iomap(np, 0); + of_node_put(np); WARN_ON(!src_base); /* @@ -195,6 +196,7 @@ void __init imx7_src_init(void) return; src_base = of_iomap(np, 0); + of_node_put(np); if (!src_base) return; @@ -203,6 +205,7 @@ void __init imx7_src_init(void) return; gpc_base = of_iomap(np, 0); + of_node_put(np); if (!gpc_base) return; } diff --git a/arch/arm/mach-imx/system.c b/arch/arm/mach-imx/system.c index e88ca027129d..1afae485f203 100644 --- a/arch/arm/mach-imx/system.c +++ b/arch/arm/mach-imx/system.c @@ -74,14 +74,6 @@ void __init mxc_arch_reset_init(void __iomem *base) clk_prepare(wdog_clk); } -#ifdef CONFIG_SOC_IMX1 -void __init imx1_reset_init(void __iomem *base) -{ - wcr_enable = (1 << 0); - mxc_arch_reset_init(base); -} -#endif - #ifdef CONFIG_CACHE_L2X0 void __init imx_init_l2cache(void) { diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig index 7f812020e082..39d0e9a97c86 100644 --- a/arch/arm/mach-ixp4xx/Kconfig +++ b/arch/arm/mach-ixp4xx/Kconfig @@ -2,7 +2,6 @@ menuconfig ARCH_IXP4XX bool "IXP4xx-based platforms" depends on ARCH_MULTI_V5 - depends on CPU_BIG_ENDIAN select ARM_APPENDED_DTB # Old Redboot bootloaders deployed select CPU_XSCALE select GPIO_IXP4XX @@ -12,7 +11,7 @@ menuconfig ARCH_IXP4XX select I2C_IOP3XX select IXP4XX_IRQ select IXP4XX_TIMER - select USB_EHCI_BIG_ENDIAN_DESC - select USB_EHCI_BIG_ENDIAN_MMIO + select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN + select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN help Support for Intel's IXP4XX (XScale) family of processors. diff --git a/arch/arm/mach-lpc32xx/common.c b/arch/arm/mach-lpc32xx/common.c index 304ea61a0716..35ed3569c5a3 100644 --- a/arch/arm/mach-lpc32xx/common.c +++ b/arch/arm/mach-lpc32xx/common.c @@ -106,7 +106,7 @@ void __init lpc32xx_map_io(void) iotable_init(lpc32xx_io_desc, ARRAY_SIZE(lpc32xx_io_desc)); } -static int __init lpc32xx_check_uid(void) +void __init lpc32xx_check_uid(void) { u32 uid[4]; @@ -119,7 +119,4 @@ static int __init lpc32xx_check_uid(void) system_serial_low = uid[0]; system_serial_high = uid[1]; } - - return 1; } -arch_initcall(lpc32xx_check_uid); diff --git a/arch/arm/mach-lpc32xx/common.h b/arch/arm/mach-lpc32xx/common.h index 32f0ad217807..06b20bea324e 100644 --- a/arch/arm/mach-lpc32xx/common.h +++ b/arch/arm/mach-lpc32xx/common.h @@ -16,6 +16,8 @@ * Other arch specific structures and functions */ extern void __init lpc32xx_map_io(void); +extern void __init lpc32xx_check_uid(void); +extern void __init lpc32xx_pm_init(void); extern void __init lpc32xx_serial_init(void); /* diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c index 66701bf43248..fffce1fb8717 100644 --- a/arch/arm/mach-lpc32xx/phy3250.c +++ b/arch/arm/mach-lpc32xx/phy3250.c @@ -8,72 +8,14 @@ * Copyright (C) 2010 NXP Semiconductors */ -#include <linux/amba/pl08x.h> -#include <linux/mtd/lpc32xx_mlc.h> -#include <linux/mtd/lpc32xx_slc.h> -#include <linux/of_platform.h> - #include <asm/mach/arch.h> #include "common.h" -static struct pl08x_channel_data pl08x_slave_channels[] = { - { - .bus_id = "nand-slc", - .min_signal = 1, /* SLC NAND Flash */ - .max_signal = 1, - .periph_buses = PL08X_AHB1, - }, - { - .bus_id = "nand-mlc", - .min_signal = 12, /* MLC NAND Flash */ - .max_signal = 12, - .periph_buses = PL08X_AHB1, - }, -}; - -static int pl08x_get_signal(const struct pl08x_channel_data *cd) -{ - return cd->min_signal; -} - -static void pl08x_put_signal(const struct pl08x_channel_data *cd, int ch) -{ -} - -static struct pl08x_platform_data pl08x_pd = { - /* Some reasonable memcpy defaults */ - .memcpy_burst_size = PL08X_BURST_SZ_256, - .memcpy_bus_width = PL08X_BUS_WIDTH_32_BITS, - .slave_channels = &pl08x_slave_channels[0], - .num_slave_channels = ARRAY_SIZE(pl08x_slave_channels), - .get_xfer_signal = pl08x_get_signal, - .put_xfer_signal = pl08x_put_signal, - .lli_buses = PL08X_AHB1, - .mem_buses = PL08X_AHB1, -}; - -static struct lpc32xx_slc_platform_data lpc32xx_slc_data = { - .dma_filter = pl08x_filter_id, -}; - -static struct lpc32xx_mlc_platform_data lpc32xx_mlc_data = { - .dma_filter = pl08x_filter_id, -}; - -static const struct of_dev_auxdata lpc32xx_auxdata_lookup[] __initconst = { - OF_DEV_AUXDATA("arm,pl080", 0x31000000, "pl08xdmac", &pl08x_pd), - OF_DEV_AUXDATA("nxp,lpc3220-slc", 0x20020000, "20020000.flash", - &lpc32xx_slc_data), - OF_DEV_AUXDATA("nxp,lpc3220-mlc", 0x200a8000, "200a8000.flash", - &lpc32xx_mlc_data), - { } -}; - static void __init lpc3250_machine_init(void) { + lpc32xx_check_uid(); + lpc32xx_pm_init(); lpc32xx_serial_init(); - - of_platform_default_populate(NULL, lpc32xx_auxdata_lookup, NULL); } static const char *const lpc32xx_dt_compat[] __initconst = { diff --git a/arch/arm/mach-lpc32xx/pm.c b/arch/arm/mach-lpc32xx/pm.c index 2572bd89a5e8..9b5c5e1462ed 100644 --- a/arch/arm/mach-lpc32xx/pm.c +++ b/arch/arm/mach-lpc32xx/pm.c @@ -120,7 +120,7 @@ static const struct platform_suspend_ops lpc32xx_pm_ops = { #define EMC_DYN_MEM_CTRL_OFS 0x20 #define EMC_SRMMC (1 << 3) #define EMC_CTRL_REG io_p2v(LPC32XX_EMC_BASE + EMC_DYN_MEM_CTRL_OFS) -static int __init lpc32xx_pm_init(void) +void __init lpc32xx_pm_init(void) { /* * Setup SDRAM self-refresh clock to automatically disable o @@ -129,7 +129,4 @@ static int __init lpc32xx_pm_init(void) __raw_writel(__raw_readl(EMC_CTRL_REG) | EMC_SRMMC, EMC_CTRL_REG); suspend_set_ops(&lpc32xx_pm_ops); - - return 0; } -arch_initcall(lpc32xx_pm_init); diff --git a/arch/arm/mach-mv78xx0/Kconfig b/arch/arm/mach-mv78xx0/Kconfig index 670e6587827e..98b35f5d05ba 100644 --- a/arch/arm/mach-mv78xx0/Kconfig +++ b/arch/arm/mach-mv78xx0/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only menuconfig ARCH_MV78XX0 - bool "Marvell MV78xx0" + bool "Marvell MV78xx0 (DEPRECATED)" depends on ARCH_MULTI_V5 depends on CPU_LITTLE_ENDIAN depends on ATAGS @@ -14,6 +14,8 @@ menuconfig ARCH_MV78XX0 Support for the following Marvell MV78xx0 series SoCs: MV781x0, MV782x0. + This platform is scheduled for removal in early 2027. + if ARCH_MV78XX0 config MACH_TERASTATION_WXL diff --git a/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c b/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c index 62e982f74bc2..3b2e381b7383 100644 --- a/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c +++ b/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c @@ -14,7 +14,7 @@ #include <linux/mv643xx_eth.h> #include <linux/ethtool.h> #include <linux/i2c.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio_keys.h> #include <linux/input.h> #include <asm/mach-types.h> diff --git a/arch/arm/mach-mv78xx0/irq.c b/arch/arm/mach-mv78xx0/irq.c index a34b6855fb19..6e42f6446637 100644 --- a/arch/arm/mach-mv78xx0/irq.c +++ b/arch/arm/mach-mv78xx0/irq.c @@ -4,7 +4,7 @@ * * MV78xx0 IRQ handling. */ -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/kernel.h> #include <linux/irq.h> #include <linux/io.h> diff --git a/arch/arm/mach-mv78xx0/mpp.c b/arch/arm/mach-mv78xx0/mpp.c index aff0e612cbba..32bf590d79fe 100644 --- a/arch/arm/mach-mv78xx0/mpp.c +++ b/arch/arm/mach-mv78xx0/mpp.c @@ -4,7 +4,7 @@ * * MPP functions for Marvell MV78x00 SoCs */ -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/io.h> diff --git a/arch/arm/mach-mvebu/pm.c b/arch/arm/mach-mvebu/pm.c index b149d9b77505..616a7fb22d86 100644 --- a/arch/arm/mach-mvebu/pm.c +++ b/arch/arm/mach-mvebu/pm.c @@ -9,7 +9,7 @@ #include <linux/cpu_pm.h> #include <linux/delay.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/io.h> #include <linux/kernel.h> #include <linux/mbus.h> diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c index f639d5004351..c8231a480052 100644 --- a/arch/arm/mach-mxs/mach-mxs.c +++ b/arch/arm/mach-mxs/mach-mxs.c @@ -9,7 +9,7 @@ #include <linux/clkdev.h> #include <linux/delay.h> #include <linux/err.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/init.h> #include <linux/reboot.h> #include <linux/micrel_phy.h> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index f3f19bcfca2c..79f8afe3a6bf 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -8,8 +8,9 @@ config OMAP_HWMOD config ARCH_OMAP2 bool "TI OMAP2" depends on ARCH_MULTI_V6 + depends on !SMP select ARCH_OMAP2PLUS - select CPU_V6 + select CPU_ARM1136R0 select OMAP_HWMOD select SOC_HAS_OMAP2_SDRC @@ -206,18 +207,24 @@ comment "OMAP Core Type" depends on ARCH_OMAP2 config SOC_OMAP2420 - bool "OMAP2420 support" + bool "OMAP2420 support (DEPRECATED)" depends on ARCH_OMAP2 default y select OMAP_DM_SYSTIMER select OMAP_DM_TIMER select SOC_HAS_OMAP2_SDRC + help + This SoC is scheduled for removal in early 2027, + since it uses the ARM1136r0 CPU revision. config SOC_OMAP2430 - bool "OMAP2430 support" + bool "OMAP2430 support (DEPRECATED)" depends on ARCH_OMAP2 default y select SOC_HAS_OMAP2_SDRC + help + This SoC is scheduled for removal in early 2027, + since it uses the ARM1136r0 CPU revision. config SOC_OMAP3430 bool "OMAP3430 support" @@ -248,11 +255,14 @@ config MACH_NOKIA_N810_WIMAX bool config MACH_NOKIA_N8X0 - bool "Nokia N800/N810" + bool "Nokia N800/N810 (DEPRECATED)" depends on SOC_OMAP2420 default y select MACH_NOKIA_N810 select MACH_NOKIA_N810_WIMAX + help + This machine is scheduled for removal in early 2027, + since it uses the ARM1136r0 CPU revision. endmenu diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 974107ff18b4..03cd523dff87 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -2331,13 +2331,15 @@ static int __init _init(struct omap_hwmod *oh, void *data) if (r < 0) { WARN(1, "omap_hwmod: %s: doesn't have mpu register target base\n", oh->name); - return 0; + r = 0; + goto out_put_node; } r = _init_clocks(oh, np); if (r < 0) { WARN(1, "omap_hwmod: %s: couldn't init clocks\n", oh->name); - return -EINVAL; + r = -EINVAL; + goto out_put_node; } if (np) { @@ -2345,13 +2347,19 @@ static int __init _init(struct omap_hwmod *oh, void *data) parse_module_flags(oh, np); child = of_get_next_child(np, NULL); - if (child) + if (child) { parse_module_flags(oh, child); + of_node_put(child); + } } oh->_state = _HWMOD_STATE_INITIALIZED; - return 0; + r = 0; + +out_put_node: + of_node_put(bus); + return r; } /** @@ -3608,13 +3616,13 @@ int omap_hwmod_init_module(struct device *dev, #ifdef CONFIG_SERIAL_EARLYCON static void __init omap_hwmod_setup_earlycon_flags(void) { - struct device_node *np; + struct device_node *np, *chosen; struct omap_hwmod *oh; const char *uart; - np = of_find_node_by_path("/chosen"); - if (np) { - uart = of_get_property(np, "stdout-path", NULL); + chosen = of_find_node_by_path("/chosen"); + if (chosen) { + uart = of_get_property(chosen, "stdout-path", NULL); if (uart) { np = of_find_node_by_path(uart); if (np) { @@ -3629,8 +3637,10 @@ static void __init omap_hwmod_setup_earlycon_flags(void) if (oh) oh->flags |= DEBUG_OMAPUART_FLAGS; } + of_node_put(np); } } + of_node_put(chosen); } #endif diff --git a/arch/arm/mach-omap2/sleep44xx.S b/arch/arm/mach-omap2/sleep44xx.S index f09c9197808b..8b515f30072b 100644 --- a/arch/arm/mach-omap2/sleep44xx.S +++ b/arch/arm/mach-omap2/sleep44xx.S @@ -6,6 +6,7 @@ * Santosh Shilimkar <santosh.shilimkar@ti.com> */ +#include <linux/cfi_types.h> #include <linux/linkage.h> #include <asm/assembler.h> #include <asm/smp_scu.h> @@ -58,7 +59,7 @@ * stack frame and it expects the caller to take care of it. Hence the entire * stack frame is saved to avoid possible stack corruption. */ -ENTRY(omap4_finish_suspend) +SYM_TYPED_FUNC_START(omap4_finish_suspend) stmfd sp!, {r4-r12, lr} cmp r0, #0x0 beq do_WFI @ No lowpower state, jump to WFI @@ -223,7 +224,7 @@ skip_scu_gp_clear: isb dsb ldmfd sp!, {r4-r12, pc} -ENDPROC(omap4_finish_suspend) +SYM_FUNC_END(omap4_finish_suspend) /* * ============================ diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig index cef19bea6164..c61999d01c80 100644 --- a/arch/arm/mach-orion5x/Kconfig +++ b/arch/arm/mach-orion5x/Kconfig @@ -19,7 +19,7 @@ menuconfig ARCH_ORION5X if ARCH_ORION5X config ARCH_ORION5X_DT - bool "Marvell Orion5x Flattened Device Tree" + def_bool y select ORION_CLK select ORION_IRQCHIP select ORION_TIMER @@ -38,37 +38,49 @@ config MACH_RD88F5182_DT Orion-NAS (88F5182) RD2, Flattened Device Tree. config MACH_KUROBOX_PRO - bool "KuroBox Pro" + bool "KuroBox Pro (DEPRECATED)" select I2C_BOARDINFO if I2C depends on ATAGS help Say 'Y' here if you want your kernel to support the KuroBox Pro platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_DNS323 - bool "D-Link DNS-323" + bool "D-Link DNS-323 (DEPRECATED)" select I2C_BOARDINFO if I2C depends on ATAGS help Say 'Y' here if you want your kernel to support the D-Link DNS-323 platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_TS209 - bool "QNAP TS-109/TS-209" + bool "QNAP TS-109/TS-209 (DEPRECATED)" depends on ATAGS help Say 'Y' here if you want your kernel to support the QNAP TS-109/TS-209 platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_TERASTATION_PRO2 - bool "Buffalo Terastation Pro II/Live" + bool "Buffalo Terastation Pro II/Live (DEPRECATED)" depends on ATAGS help Say 'Y' here if you want your kernel to support the Buffalo Terastation Pro II/Live platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_LINKSTATION_PRO - bool "Buffalo Linkstation Pro/Live" + bool "Buffalo Linkstation Pro/Live (DEPRECATED)" depends on ATAGS select I2C_BOARDINFO if I2C help @@ -76,6 +88,9 @@ config MACH_LINKSTATION_PRO Buffalo Linkstation Pro/Live platform. Both v1 and v2 devices are supported. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_LINKSTATION_MINI bool "Buffalo Linkstation Mini (Flattened Device Tree)" select ARCH_ORION5X_DT @@ -84,26 +99,35 @@ config MACH_LINKSTATION_MINI Buffalo Linkstation Mini (LS-WSGL) platform. config MACH_TS409 - bool "QNAP TS-409" + bool "QNAP TS-409 (DEPRECATED)" depends on ATAGS help Say 'Y' here if you want your kernel to support the QNAP TS-409 platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_TS78XX - bool "Technologic Systems TS-78xx" + bool "Technologic Systems TS-78xx (DEPRECATED)" depends on ATAGS help Say 'Y' here if you want your kernel to support the Technologic Systems TS-78xx platform. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_MV2120 - bool "HP Media Vault mv2120" + bool "HP Media Vault mv2120 (DEPRECATED)" depends on ATAGS help Say 'Y' here if you want your kernel to support the HP Media Vault mv2120 or mv5100. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_D2NET_DT bool "LaCie d2 Network / Big Disk Network (Flattened Device Tree)" select ARCH_ORION5X_DT @@ -112,13 +136,16 @@ config MACH_D2NET_DT LaCie d2 Network NAS. config MACH_NET2BIG - bool "LaCie 2Big Network" + bool "LaCie 2Big Network (DEPRECATED)" depends on ATAGS select I2C_BOARDINFO if I2C help Say 'Y' here if you want your kernel to support the LaCie 2Big Network NAS. + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + config MACH_MSS2_DT bool "Maxtor Shared Storage II (Flattened Device Tree)" select ARCH_ORION5X_DT diff --git a/arch/arm/mach-orion5x/board-d2net.c b/arch/arm/mach-orion5x/board-d2net.c index 09bf366d05ff..7cf09da9d9e7 100644 --- a/arch/arm/mach-orion5x/board-d2net.c +++ b/arch/arm/mach-orion5x/board-d2net.c @@ -13,7 +13,7 @@ #include <linux/pci.h> #include <linux/irq.h> #include <linux/leds.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio/machine.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> diff --git a/arch/arm/mach-orion5x/board-rd88f5182.c b/arch/arm/mach-orion5x/board-rd88f5182.c index 1c14e49a90a6..9e2fe74ec68a 100644 --- a/arch/arm/mach-orion5x/board-rd88f5182.c +++ b/arch/arm/mach-orion5x/board-rd88f5182.c @@ -6,7 +6,7 @@ * * Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/of.h> diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c index fcd38ff7ca45..7b81b08b0dda 100644 --- a/arch/arm/mach-orion5x/dns323-setup.c +++ b/arch/arm/mach-orion5x/dns323-setup.c @@ -13,7 +13,7 @@ * License, or (at your option) any later version. * */ -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio/machine.h> #include <linux/kernel.h> #include <linux/init.h> diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c index e17727e53cb4..689bec1ebe89 100644 --- a/arch/arm/mach-orion5x/irq.c +++ b/arch/arm/mach-orion5x/irq.c @@ -6,7 +6,7 @@ * * Maintainer: Tzachi Perelstein <tzachi@marvell.com> */ -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/kernel.h> #include <linux/irq.h> #include <linux/io.h> diff --git a/arch/arm/mach-orion5x/kurobox_pro-setup.c b/arch/arm/mach-orion5x/kurobox_pro-setup.c index 339b10891808..e61b9ab06943 100644 --- a/arch/arm/mach-orion5x/kurobox_pro-setup.c +++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c @@ -4,7 +4,7 @@ * * Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/platform_device.h> diff --git a/arch/arm/mach-orion5x/mv2120-setup.c b/arch/arm/mach-orion5x/mv2120-setup.c index 5b0249f109cd..b15fe5b7a0f9 100644 --- a/arch/arm/mach-orion5x/mv2120-setup.c +++ b/arch/arm/mach-orion5x/mv2120-setup.c @@ -7,7 +7,7 @@ * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. */ -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio/machine.h> #include <linux/kernel.h> #include <linux/init.h> diff --git a/arch/arm/mach-orion5x/net2big-setup.c b/arch/arm/mach-orion5x/net2big-setup.c index 4afd9b4c71a9..f04571e79805 100644 --- a/arch/arm/mach-orion5x/net2big-setup.c +++ b/arch/arm/mach-orion5x/net2big-setup.c @@ -17,7 +17,7 @@ #include <linux/input.h> #include <linux/i2c.h> #include <linux/ata_platform.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio/machine.h> #include <linux/delay.h> #include <asm/mach-types.h> diff --git a/arch/arm/mach-orion5x/terastation_pro2-setup.c b/arch/arm/mach-orion5x/terastation_pro2-setup.c index a9f01859d101..c3db3376950a 100644 --- a/arch/arm/mach-orion5x/terastation_pro2-setup.c +++ b/arch/arm/mach-orion5x/terastation_pro2-setup.c @@ -4,7 +4,7 @@ * * Maintainer: Sylver Bruneau <sylver.bruneau@googlemail.com> */ -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/platform_device.h> diff --git a/arch/arm/mach-orion5x/ts209-setup.c b/arch/arm/mach-orion5x/ts209-setup.c index de9092e992c5..25cd50306c65 100644 --- a/arch/arm/mach-orion5x/ts209-setup.c +++ b/arch/arm/mach-orion5x/ts209-setup.c @@ -4,7 +4,7 @@ * * Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/platform_device.h> diff --git a/arch/arm/mach-orion5x/ts409-setup.c b/arch/arm/mach-orion5x/ts409-setup.c index 725688aa5cba..f92acef0b45f 100644 --- a/arch/arm/mach-orion5x/ts409-setup.c +++ b/arch/arm/mach-orion5x/ts409-setup.c @@ -7,7 +7,7 @@ * Copyright (C) 2008 Sylver Bruneau <sylver.bruneau@gmail.com> * Copyright (C) 2008 Martin Michlmayr <tbm@cyrius.com> */ -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio/machine.h> #include <linux/kernel.h> #include <linux/init.h> diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig index c478fb8a6f78..2fb29b9ef744 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig @@ -55,12 +55,15 @@ if ATAGS comment "Legacy board files" config ARCH_GUMSTIX - bool "Gumstix XScale 255 boards" + bool "Gumstix XScale 255 boards (DEPRECATED)" select PXA25x help Say Y here if you intend to run this kernel on Basix, Connex, ws-200ax, ws-400ax systems + Support for this machine will go away in early 2027, + unless it gets converted to device tree. + choice prompt "Gumstix Carrier/Expansion Board" depends on ARCH_GUMSTIX @@ -74,7 +77,7 @@ config GUMSTIX_AM300EPD endchoice config PXA_SHARPSL - bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models" + bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models (DEPRECATED)" select SHARP_PARAM select SHARP_SCOOP help @@ -84,6 +87,9 @@ config PXA_SHARPSL SL-C3000 (Spitz), SL-C3100 (Borzoi) or SL-C6000x (Tosa) handheld computer. + Support for these machines will go away in early 2027, + unless they get converted to device tree. + config PXA_SHARPSL_DETECT_MACH_ID bool "Detect machine ID at run-time in the decompressor" depends on PXA_SHARPSL diff --git a/arch/arm/mach-pxa/am200epd.c b/arch/arm/mach-pxa/am200epd.c index cac0bb09db14..4814f3cfe775 100644 --- a/arch/arm/mach-pxa/am200epd.c +++ b/arch/arm/mach-pxa/am200epd.c @@ -28,7 +28,7 @@ #include <linux/init.h> #include <linux/platform_device.h> #include <linux/irq.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include "pxa25x.h" #include "gumstix.h" diff --git a/arch/arm/mach-pxa/am300epd.c b/arch/arm/mach-pxa/am300epd.c index 4b55bc89db8f..435fb72da7de 100644 --- a/arch/arm/mach-pxa/am300epd.c +++ b/arch/arm/mach-pxa/am300epd.c @@ -26,7 +26,7 @@ #include <linux/init.h> #include <linux/platform_device.h> #include <linux/irq.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include "gumstix.h" #include "mfp-pxa25x.h" diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c index 02fdde7e3e34..f181e7b7c6be 100644 --- a/arch/arm/mach-pxa/generic.c +++ b/arch/arm/mach-pxa/generic.c @@ -13,7 +13,7 @@ * initialization stuff for PXA machines which can be overridden later if * need be. */ -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c index 6074815a4bca..7ab0cb015d1b 100644 --- a/arch/arm/mach-pxa/gumstix.c +++ b/arch/arm/mach-pxa/gumstix.c @@ -22,7 +22,7 @@ #include <linux/mtd/partitions.h> #include <linux/gpio/machine.h> #include <linux/gpio/property.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/err.h> #include <linux/clk.h> diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c index d1347055fbe4..566fb4e2adba 100644 --- a/arch/arm/mach-pxa/mfp-pxa2xx.c +++ b/arch/arm/mach-pxa/mfp-pxa2xx.c @@ -9,7 +9,7 @@ * on PXA3xx, what's more important, the low power pin state and * wakeup detection are also supported by the same framework. */ -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/gpio-pxa.h> #include <linux/module.h> #include <linux/kernel.h> diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index a4e878be004a..a273f0af095e 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c @@ -15,7 +15,7 @@ */ #include <linux/dmaengine.h> #include <linux/dma/pxa-dma.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/gpio-pxa.h> #include <linux/module.h> #include <linux/kernel.h> diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index 1d34de7e5fbe..814e0a12f38a 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c @@ -10,7 +10,7 @@ */ #include <linux/dmaengine.h> #include <linux/dma/pxa-dma.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/gpio-pxa.h> #include <linux/module.h> #include <linux/kernel.h> diff --git a/arch/arm/mach-pxa/reset.c b/arch/arm/mach-pxa/reset.c index 27293549f8ad..49d2e46a1fae 100644 --- a/arch/arm/mach-pxa/reset.c +++ b/arch/arm/mach-pxa/reset.c @@ -2,7 +2,7 @@ #include <linux/kernel.h> #include <linux/module.h> #include <linux/delay.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/io.h> #include <asm/proc-fns.h> #include <asm/system_misc.h> diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c index 71b282b146d0..a611eea70e5a 100644 --- a/arch/arm/mach-pxa/sharpsl_pm.c +++ b/arch/arm/mach-pxa/sharpsl_pm.c @@ -19,7 +19,7 @@ #include <linux/delay.h> #include <linux/leds.h> #include <linux/suspend.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/io.h> #include <asm/mach-types.h> diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 5091b601c4e1..5eaf38243b9e 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c @@ -12,7 +12,7 @@ #include <linux/platform_device.h> #include <linux/delay.h> #include <linux/gpio_keys.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio/machine.h> #include <linux/gpio/property.h> #include <linux/leds.h> diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c index 03b4b347f11a..806847c36549 100644 --- a/arch/arm/mach-pxa/spitz_pm.c +++ b/arch/arm/mach-pxa/spitz_pm.c @@ -10,7 +10,7 @@ #include <linux/init.h> #include <linux/kernel.h> #include <linux/delay.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio-pxa.h> #include <linux/interrupt.h> #include <linux/platform_device.h> diff --git a/arch/arm/mach-rpc/Kconfig b/arch/arm/mach-rpc/Kconfig index 55f6d829b677..60b3823b690c 100644 --- a/arch/arm/mach-rpc/Kconfig +++ b/arch/arm/mach-rpc/Kconfig @@ -1,5 +1,5 @@ config ARCH_RPC - bool "RiscPC" + bool "RiscPC (DEPRECATED)" depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5) depends on !(ARCH_FOOTBRIDGE || ARCH_SA1100 || ARCH_MOXART || ARCH_GEMINI) depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000 @@ -19,3 +19,6 @@ config ARCH_RPC help On the Acorn Risc-PC, Linux can support the internal IDE disk and CD-ROM interface, serial and parallel port, and the floppy drive. + + Support for these machines will go away in 2027, + unless there are any remaining users that speak up. diff --git a/arch/arm/mach-s3c/Kconfig.s3c64xx b/arch/arm/mach-s3c/Kconfig.s3c64xx index 3f97fba8e4f5..cf59147dc9ca 100644 --- a/arch/arm/mach-s3c/Kconfig.s3c64xx +++ b/arch/arm/mach-s3c/Kconfig.s3c64xx @@ -23,10 +23,17 @@ menuconfig ARCH_S3C64XX help Samsung S3C64XX series based systems - The platform is deprecated and scheduled for removal. Please reach to - the maintainers of the platform and linux-samsung-soc@vger.kernel.org if - you still use it. - Without such feedback, the platform will be removed after 2024. + The use of ATAGS based board files is on its way out, and + the only remaining S3C64xx machine in the kernel (Wolfson + Cragganmore 6410) relies on this, without any realistic way + to migrate it to devicetree. + + Support for S3C64XX will be kept until the 2027 LTS kernel + release and may be removed in early 2028. + + Please reach out to the maintainers of the platform and + linux-samsung-soc@vger.kernel.org if you use any additional + s3c64xx machines based on devicetree. if ARCH_S3C64XX diff --git a/arch/arm/mach-s3c/dev-audio-s3c64xx.c b/arch/arm/mach-s3c/dev-audio-s3c64xx.c index 7ce119dc3a72..8884374dbcdc 100644 --- a/arch/arm/mach-s3c/dev-audio-s3c64xx.c +++ b/arch/arm/mach-s3c/dev-audio-s3c64xx.c @@ -7,7 +7,7 @@ #include <linux/string.h> #include <linux/platform_device.h> #include <linux/dma-mapping.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/export.h> #include "irqs.h" diff --git a/arch/arm/mach-s3c/devs.c b/arch/arm/mach-s3c/devs.c index bab2abd8a34a..572b156644bd 100644 --- a/arch/arm/mach-s3c/devs.c +++ b/arch/arm/mach-s3c/devs.c @@ -5,7 +5,7 @@ // // Base Samsung platform device definitions -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/kernel.h> #include <linux/types.h> #include <linux/interrupt.h> diff --git a/arch/arm/mach-s3c/mach-crag6410.c b/arch/arm/mach-s3c/mach-crag6410.c index c4040aad1ed3..57176719d8a6 100644 --- a/arch/arm/mach-s3c/mach-crag6410.c +++ b/arch/arm/mach-s3c/mach-crag6410.c @@ -15,7 +15,7 @@ #include <linux/io.h> #include <linux/init.h> #include <linux/input-event-codes.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio/machine.h> #include <linux/leds.h> #include <linux/delay.h> diff --git a/arch/arm/mach-s3c/map-base.h b/arch/arm/mach-s3c/map-base.h index 463a995b399b..beb58e6f12e1 100644 --- a/arch/arm/mach-s3c/map-base.h +++ b/arch/arm/mach-s3c/map-base.h @@ -20,7 +20,7 @@ #define S3C_ADDR_BASE 0xF6000000 -#ifndef __ASSEMBLY__ +#ifndef __ASSEMBLER__ #define S3C_ADDR(x) ((void __iomem __force *)S3C_ADDR_BASE + (x)) #else #define S3C_ADDR(x) (S3C_ADDR_BASE + (x)) diff --git a/arch/arm/mach-s3c/pm-gpio.c b/arch/arm/mach-s3c/pm-gpio.c index cfdbc2337998..fd5897cc26c7 100644 --- a/arch/arm/mach-s3c/pm-gpio.c +++ b/arch/arm/mach-s3c/pm-gpio.c @@ -11,7 +11,7 @@ #include <linux/device.h> #include <linux/init.h> #include <linux/io.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include "gpio-samsung.h" diff --git a/arch/arm/mach-s3c/pm-s3c64xx.c b/arch/arm/mach-s3c/pm-s3c64xx.c index 284d5f462513..a73b8bd12949 100644 --- a/arch/arm/mach-s3c/pm-s3c64xx.c +++ b/arch/arm/mach-s3c/pm-s3c64xx.c @@ -11,7 +11,7 @@ #include <linux/suspend.h> #include <linux/serial_core.h> #include <linux/io.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/pm_domain.h> #include "map.h" diff --git a/arch/arm/mach-s3c/setup-fb-24bpp-s3c64xx.c b/arch/arm/mach-s3c/setup-fb-24bpp-s3c64xx.c index c3269cd6a848..20ae926e12db 100644 --- a/arch/arm/mach-s3c/setup-fb-24bpp-s3c64xx.c +++ b/arch/arm/mach-s3c/setup-fb-24bpp-s3c64xx.c @@ -9,7 +9,7 @@ #include <linux/kernel.h> #include <linux/types.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include "fb.h" #include "gpio-cfg.h" diff --git a/arch/arm/mach-s3c/setup-i2c0-s3c64xx.c b/arch/arm/mach-s3c/setup-i2c0-s3c64xx.c index a6ef8d2bc995..520e97dc8754 100644 --- a/arch/arm/mach-s3c/setup-i2c0-s3c64xx.c +++ b/arch/arm/mach-s3c/setup-i2c0-s3c64xx.c @@ -9,7 +9,7 @@ #include <linux/kernel.h> #include <linux/types.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> struct platform_device; /* don't need the contents */ diff --git a/arch/arm/mach-s3c/setup-i2c1-s3c64xx.c b/arch/arm/mach-s3c/setup-i2c1-s3c64xx.c index 0fe37363d26e..26f7ae455328 100644 --- a/arch/arm/mach-s3c/setup-i2c1-s3c64xx.c +++ b/arch/arm/mach-s3c/setup-i2c1-s3c64xx.c @@ -9,7 +9,7 @@ #include <linux/kernel.h> #include <linux/types.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> struct platform_device; /* don't need the contents */ diff --git a/arch/arm/mach-s3c/setup-keypad-s3c64xx.c b/arch/arm/mach-s3c/setup-keypad-s3c64xx.c index 8463ad37c6ab..2e1367878fb1 100644 --- a/arch/arm/mach-s3c/setup-keypad-s3c64xx.c +++ b/arch/arm/mach-s3c/setup-keypad-s3c64xx.c @@ -5,7 +5,7 @@ // // GPIO configuration for S3C64XX KeyPad device -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include "gpio-cfg.h" #include "keypad.h" #include "gpio-samsung.h" diff --git a/arch/arm/mach-s3c/setup-sdhci-gpio-s3c64xx.c b/arch/arm/mach-s3c/setup-sdhci-gpio-s3c64xx.c index 646ff949acd5..728b66f80493 100644 --- a/arch/arm/mach-s3c/setup-sdhci-gpio-s3c64xx.c +++ b/arch/arm/mach-s3c/setup-sdhci-gpio-s3c64xx.c @@ -11,7 +11,7 @@ #include <linux/interrupt.h> #include <linux/platform_device.h> #include <linux/io.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include "gpio-cfg.h" #include "sdhci.h" diff --git a/arch/arm/mach-s3c/setup-spi-s3c64xx.c b/arch/arm/mach-s3c/setup-spi-s3c64xx.c index 497aff71c29c..8d15b13ed7d5 100644 --- a/arch/arm/mach-s3c/setup-spi-s3c64xx.c +++ b/arch/arm/mach-s3c/setup-spi-s3c64xx.c @@ -3,7 +3,7 @@ // Copyright (C) 2011 Samsung Electronics Ltd. // http://www.samsung.com/ -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/platform_data/spi-s3c64xx.h> #include "gpio-cfg.h" #include "gpio-samsung.h" diff --git a/arch/arm/mach-sa1100/Kconfig b/arch/arm/mach-sa1100/Kconfig index e23700e0d6c8..d50721e39641 100644 --- a/arch/arm/mach-sa1100/Kconfig +++ b/arch/arm/mach-sa1100/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only menuconfig ARCH_SA1100 - bool "SA11x0 Implementations" + bool "SA11x0 Implementations (DEPRECATED)" depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5) depends on !(ARCH_MOXART || ARCH_GEMINI) depends on ATAGS @@ -20,6 +20,9 @@ menuconfig ARCH_SA1100 help Support for StrongARM 11x0 based boards. + Support for these machines will go away in 2027, + unless there are any remaining users that speak up. + if ARCH_SA1100 config SA1100_ASSABET diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c index 2b833aa0212b..b001f0b6a3fa 100644 --- a/arch/arm/mach-sa1100/assabet.c +++ b/arch/arm/mach-sa1100/assabet.c @@ -13,8 +13,10 @@ #include <linux/gpio/driver.h> #include <linux/gpio/gpio-reg.h> #include <linux/gpio/machine.h> -#include <linux/gpio_keys.h> +#include <linux/gpio/property.h> +#include <linux/input.h> #include <linux/ioport.h> +#include <linux/property.h> #include <linux/platform_data/sa11x0-serial.h> #include <linux/regulator/fixed.h> #include <linux/regulator/machine.h> @@ -467,28 +469,53 @@ static const struct gpio_led_platform_data assabet_leds_pdata __initconst = { .leds = assabet_leds, }; -static struct gpio_keys_button assabet_keys_buttons[] = { - { - .gpio = 0, - .irq = IRQ_GPIO0, - .desc = "gpio0", - .wakeup = 1, - .can_disable = 1, - .debounce_interval = 5, - }, { - .gpio = 1, - .irq = IRQ_GPIO1, - .desc = "gpio1", - .wakeup = 1, - .can_disable = 1, - .debounce_interval = 5, - }, +static const struct software_node assabet_gpio_keys_node = { + .name = "assabet-gpio-keys", +}; + +static const struct property_entry assabet_key0_props[] = { + PROPERTY_ENTRY_U32("linux,code", KEY_RESERVED), + PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node, + 0, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_STRING("label", "gpio0"), + PROPERTY_ENTRY_BOOL("wakeup-source"), + PROPERTY_ENTRY_BOOL("linux,can-disable"), + PROPERTY_ENTRY_U32("debounce-interval", 5), + { } +}; + +static const struct software_node assabet_key0_node = { + .parent = &assabet_gpio_keys_node, + .properties = assabet_key0_props, +}; + +static const struct property_entry assabet_key1_props[] = { + PROPERTY_ENTRY_U32("linux,code", KEY_RESERVED), + PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node, + 1, GPIO_ACTIVE_HIGH), + PROPERTY_ENTRY_STRING("label", "gpio1"), + PROPERTY_ENTRY_BOOL("wakeup-source"), + PROPERTY_ENTRY_BOOL("linux,can-disable"), + PROPERTY_ENTRY_U32("debounce-interval", 5), + { } +}; + +static const struct software_node assabet_key1_node = { + .parent = &assabet_gpio_keys_node, + .properties = assabet_key1_props, +}; + +static const struct software_node * const assabet_gpio_keys_swnodes[] __initconst = { + &assabet_gpio_keys_node, + &assabet_key0_node, + &assabet_key1_node, + NULL }; -static const struct gpio_keys_platform_data assabet_keys_pdata = { - .buttons = assabet_keys_buttons, - .nbuttons = ARRAY_SIZE(assabet_keys_buttons), - .rep = 0, +static const struct platform_device_info assabet_gpio_keys_dev_info __initconst = { + .name = "gpio-keys", + .id = PLATFORM_DEVID_NONE, + .swnode = &assabet_gpio_keys_node, }; static struct gpiod_lookup_table assabet_uart1_gpio_table = { @@ -571,10 +598,8 @@ static void __init assabet_init(void) } - platform_device_register_resndata(NULL, "gpio-keys", 0, - NULL, 0, - &assabet_keys_pdata, - sizeof(assabet_keys_pdata)); + software_node_register_node_group(assabet_gpio_keys_swnodes); + platform_device_register_full(&assabet_gpio_keys_dev_info); gpiod_add_lookup_table(&assabet_leds_gpio_table); gpio_led_register_device(-1, &assabet_leds_pdata); diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c index 466d755d5702..d1931f51c900 100644 --- a/arch/arm/mach-sa1100/collie.c +++ b/arch/arm/mach-sa1100/collie.c @@ -27,10 +27,11 @@ #include <linux/mtd/mtd.h> #include <linux/mtd/partitions.h> #include <linux/timer.h> -#include <linux/gpio_keys.h> +#include <linux/gpio/property.h> #include <linux/input.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio/machine.h> +#include <linux/property.h> #include <linux/power/gpio-charger.h> #include <video/sa1100fb.h> @@ -228,43 +229,57 @@ struct platform_device collie_locomo_device = { .resource = locomo_resources, }; -static struct gpio_keys_button collie_gpio_keys[] = { - { - .type = EV_PWR, - .code = KEY_RESERVED, - .gpio = COLLIE_GPIO_ON_KEY, - .desc = "On key", - .wakeup = 1, - .active_low = 1, - }, - { - .type = EV_PWR, - .code = KEY_WAKEUP, - .gpio = COLLIE_GPIO_WAKEUP, - .desc = "Sync", - .wakeup = 1, - .active_low = 1, - }, +static const struct software_node collie_gpio_keys_node = { + .name = "collie-gpio-keys", }; -static struct gpio_keys_platform_data collie_gpio_keys_data = { - .buttons = collie_gpio_keys, - .nbuttons = ARRAY_SIZE(collie_gpio_keys), +static const struct property_entry collie_on_key_props[] = { + PROPERTY_ENTRY_U32("linux,code", KEY_RESERVED), + PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node, + COLLIE_GPIO_ON_KEY, GPIO_ACTIVE_LOW), + PROPERTY_ENTRY_STRING("label", "On key"), + PROPERTY_ENTRY_U32("linux,input-type", EV_PWR), + PROPERTY_ENTRY_BOOL("wakeup-source"), + { } }; -static struct platform_device collie_gpio_keys_device = { - .name = "gpio-keys", - .id = -1, - .dev = { - .platform_data = &collie_gpio_keys_data, - }, +static const struct software_node collie_on_key_node = { + .parent = &collie_gpio_keys_node, + .properties = collie_on_key_props, +}; + +static const struct property_entry collie_wakeup_key_props[] = { + PROPERTY_ENTRY_U32("linux,code", KEY_WAKEUP), + PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node, + COLLIE_GPIO_WAKEUP, GPIO_ACTIVE_LOW), + PROPERTY_ENTRY_STRING("label", "Sync"), + PROPERTY_ENTRY_U32("linux,input-type", EV_PWR), + PROPERTY_ENTRY_BOOL("wakeup-source"), + { } +}; + +static const struct software_node collie_wakeup_key_node = { + .parent = &collie_gpio_keys_node, + .properties = collie_wakeup_key_props, +}; + +static const struct software_node * const collie_gpio_keys_swnodes[] __initconst = { + &collie_gpio_keys_node, + &collie_on_key_node, + &collie_wakeup_key_node, + NULL +}; + +static const struct platform_device_info collie_gpio_keys_dev_info __initconst = { + .name = "gpio-keys", + .id = PLATFORM_DEVID_NONE, + .swnode = &collie_gpio_keys_node, }; static struct platform_device *devices[] __initdata = { &collie_locomo_device, &colliescoop_device, &collie_power_device, - &collie_gpio_keys_device, }; static struct mtd_partition collie_partitions[] = { @@ -384,6 +399,9 @@ static void __init collie_init(void) printk(KERN_WARNING "collie: Unable to register LoCoMo device\n"); } + software_node_register_node_group(collie_gpio_keys_swnodes); + platform_device_register_full(&collie_gpio_keys_dev_info); + sa11x0_register_lcd(&collie_lcd_info); sa11x0_register_mtd(&collie_flash_data, collie_flash_resources, ARRAY_SIZE(collie_flash_resources)); diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c index 99ff55e8131d..a995625ab1a0 100644 --- a/arch/arm/mach-sa1100/generic.c +++ b/arch/arm/mach-sa1100/generic.c @@ -6,7 +6,7 @@ * * Code common to all SA11x0 machines. */ -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/gpio/machine.h> #include <linux/module.h> #include <linux/kernel.h> diff --git a/arch/arm/mach-sa1100/generic.h b/arch/arm/mach-sa1100/generic.h index 5fe0d4fc0f8c..3cfe3b647711 100644 --- a/arch/arm/mach-sa1100/generic.h +++ b/arch/arm/mach-sa1100/generic.h @@ -48,6 +48,9 @@ int sa11xx_clk_init(void); struct gpiod_lookup_table; void sa11x0_register_pcmcia(int socket, struct gpiod_lookup_table *); +struct software_node; +extern const struct software_node sa1100_gpiochip_node; + struct fixed_voltage_config; struct regulator_consumer_supply; int sa11x0_register_fixed_regulator(int n, struct fixed_voltage_config *cfg, diff --git a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c index 1cfc0b1fa41c..59e9251a138e 100644 --- a/arch/arm/mach-sa1100/h3600.c +++ b/arch/arm/mach-sa1100/h3600.c @@ -8,7 +8,7 @@ #include <linux/init.h> #include <linux/kernel.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <video/sa1100fb.h> diff --git a/arch/arm/mach-sa1100/h3xxx.c b/arch/arm/mach-sa1100/h3xxx.c index d685f03f51f3..6f4c5d2be569 100644 --- a/arch/arm/mach-sa1100/h3xxx.c +++ b/arch/arm/mach-sa1100/h3xxx.c @@ -8,9 +8,12 @@ #include <linux/kernel.h> #include <linux/gpio/machine.h> -#include <linux/gpio.h> +#include <linux/gpio/legacy.h> #include <linux/gpio_keys.h> +#include <linux/gpio/property.h> +#include <linux/gpio/consumer.h> #include <linux/input.h> +#include <linux/property.h> #include <linux/mtd/mtd.h> #include <linux/mtd/partitions.h> #include <linux/platform_data/gpio-htc-egpio.h> @@ -168,35 +171,48 @@ static struct platform_device h3xxx_egpio = { * GPIO keys */ -static struct gpio_keys_button h3xxx_button_table[] = { - { - .code = KEY_POWER, - .gpio = H3XXX_GPIO_PWR_BUTTON, - .desc = "Power Button", - .active_low = 1, - .type = EV_KEY, - .wakeup = 1, - }, { - .code = KEY_ENTER, - .gpio = H3XXX_GPIO_ACTION_BUTTON, - .active_low = 1, - .desc = "Action button", - .type = EV_KEY, - .wakeup = 0, - }, +static const struct software_node h3xxx_gpio_keys_node = { + .name = "h3xxx-gpio-keys", }; -static struct gpio_keys_platform_data h3xxx_keys_data = { - .buttons = h3xxx_button_table, - .nbuttons = ARRAY_SIZE(h3xxx_button_table), +static const struct property_entry h3xxx_power_key_props[] = { + PROPERTY_ENTRY_U32("linux,code", KEY_POWER), + PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node, + H3XXX_GPIO_PWR_BUTTON, GPIO_ACTIVE_LOW), + PROPERTY_ENTRY_STRING("label", "Power Button"), + PROPERTY_ENTRY_BOOL("wakeup-source"), + { } }; -static struct platform_device h3xxx_keys = { - .name = "gpio-keys", - .id = -1, - .dev = { - .platform_data = &h3xxx_keys_data, - }, +static const struct software_node h3xxx_power_key_node = { + .parent = &h3xxx_gpio_keys_node, + .properties = h3xxx_power_key_props, +}; + +static const struct property_entry h3xxx_action_key_props[] = { + PROPERTY_ENTRY_U32("linux,code", KEY_ENTER), + PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node, + H3XXX_GPIO_ACTION_BUTTON, GPIO_ACTIVE_LOW), + PROPERTY_ENTRY_STRING("label", "Action button"), + { } +}; + +static const struct software_node h3xxx_action_key_node = { + .parent = &h3xxx_gpio_keys_node, + .properties = h3xxx_action_key_props, +}; + +static const struct software_node * const h3xxx_gpio_keys_swnodes[] __initconst = { + &h3xxx_gpio_keys_node, + &h3xxx_power_key_node, + &h3xxx_action_key_node, + NULL +}; + +static const struct platform_device_info h3xxx_gpio_keys_dev_info __initconst = { + .name = "gpio-keys", + .id = PLATFORM_DEVID_NONE, + .swnode = &h3xxx_gpio_keys_node, }; static struct resource h3xxx_micro_resources[] = { @@ -214,7 +230,6 @@ struct platform_device h3xxx_micro_asic = { static struct platform_device *h3xxx_devices[] = { &h3xxx_egpio, - &h3xxx_keys, &h3xxx_micro_asic, }; @@ -240,6 +255,8 @@ void __init h3xxx_mach_init(void) sa1100_register_uart_fns(&h3xxx_port_fns); sa11x0_register_mtd(&h3xxx_flash_data, &h3xxx_flash_resource, 1); platform_add_devices(h3xxx_devices, ARRAY_SIZE(h3xxx_devices)); + software_node_register_node_group(h3xxx_gpio_keys_swnodes); + platform_device_register_full(&h3xxx_gpio_keys_dev_info); } static struct map_desc h3600_io_desc[] __initdata = { diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c index 747a96c58df1..647e5f9f6aa8 100644 --- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c +++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c @@ -140,6 +140,10 @@ static struct notifier_block regulator_quirk_nb = { static int __init rcar_gen2_regulator_quirk(void) { + static const char *const boards[] __initconst = { + "renesas,koelsch", "renesas,lager", "renesas,porter", + "renesas,stout", "renesas,gose", NULL + }; struct regulator_quirk *quirk, *pos, *tmp; struct of_phandle_args *args; const struct of_device_id *id; @@ -147,11 +151,7 @@ static int __init rcar_gen2_regulator_quirk(void) u32 mon, addr; int ret; - if (!of_machine_is_compatible("renesas,koelsch") && - !of_machine_is_compatible("renesas,lager") && - !of_machine_is_compatible("renesas,porter") && - !of_machine_is_compatible("renesas,stout") && - !of_machine_is_compatible("renesas,gose")) + if (!of_machine_compatible_match(boards)) return -ENODEV; for_each_matching_node_and_match(np, rcar_gen2_quirk_match, &id) { diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 3cd34a42e39b..514558905919 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c @@ -56,6 +56,10 @@ static unsigned int __init get_extal_freq(void) static void __init rcar_gen2_timer_init(void) { + static const char *const fixed_freq_socs[] __initconst = { + "renesas,r8a7745", "renesas,r8a77470", "renesas,r8a7792", + "renesas,r8a7794", NULL + }; bool need_update = true; void __iomem *base; u32 freq; @@ -76,10 +80,7 @@ static void __init rcar_gen2_timer_init(void) secure_cntvoff_init(); - if (of_machine_is_compatible("renesas,r8a7745") || - of_machine_is_compatible("renesas,r8a77470") || - of_machine_is_compatible("renesas,r8a7792") || - of_machine_is_compatible("renesas,r8a7794")) { + if (of_machine_compatible_match(fixed_freq_socs)) { freq = 260000000 / 8; /* ZS / 8 */ } else { /* At Linux boot time the r8a7790 arch timer comes up diff --git a/arch/arm/mach-stm32/Kconfig b/arch/arm/mach-stm32/Kconfig index 630b992f32b1..4ac3384e397a 100644 --- a/arch/arm/mach-stm32/Kconfig +++ b/arch/arm/mach-stm32/Kconfig @@ -14,30 +14,32 @@ menuconfig ARCH_STM32 select STM32_EXTI if ARM_SINGLE_ARMV7M select STM32_FIREWALL help - Support for STMicroelectronics STM32 processors. + Support for STMicroelectronics STM32MP1 processors using Cortex-A7 + cores. Note that support for the earlier Cortex-M based variants + is deprecated and scheduled for removal in early 2027. if ARCH_STM32 if ARM_SINGLE_ARMV7M config MACH_STM32F429 - bool "STMicroelectronics STM32F429" + bool "STMicroelectronics STM32F429 (DEPRECATED)" default y config MACH_STM32F469 - bool "STMicroelectronics STM32F469" + bool "STMicroelectronics STM32F469 (DEPRECATED)" default y config MACH_STM32F746 - bool "STMicroelectronics STM32F746" + bool "STMicroelectronics STM32F746 (DEPRECATED)" default y config MACH_STM32F769 - bool "STMicroelectronics STM32F769" + bool "STMicroelectronics STM32F769 (DEPRECATED)" default y config MACH_STM32H743 - bool "STMicroelectronics STM32H743" + bool "STMicroelectronics STM32H743 (DEPRECATED)" default y endif # ARMv7-M diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c index 4e1ee70b2a3f..e5a611dce7e7 100644 --- a/arch/arm/mach-tegra/irq.c +++ b/arch/arm/mach-tegra/irq.c @@ -66,9 +66,9 @@ static const struct of_device_id tegra114_dt_gic_match[] __initconst = { static void __init tegra114_gic_cpu_pm_registration(void) { - struct device_node *dn; + struct device_node *dn __free(device_node) = + of_find_matching_node(NULL, tegra114_dt_gic_match); - dn = of_find_matching_node(NULL, tegra114_dt_gic_match); if (!dn) return; @@ -88,7 +88,10 @@ static const struct of_device_id tegra_ictlr_match[] __initconst = { void __init tegra_init_irq(void) { - if (WARN_ON(!of_find_matching_node(NULL, tegra_ictlr_match))) + struct device_node *dn __free(device_node) = + of_find_matching_node(NULL, tegra_ictlr_match); + + if (WARN_ON(!dn)) pr_warn("Outdated DT detected, suspend/resume will NOT work\n"); tegra114_gic_cpu_pm_registration(); diff --git a/arch/arm/mach-tegra/reset.h b/arch/arm/mach-tegra/reset.h index 51265592cb1a..92a89713d5e5 100644 --- a/arch/arm/mach-tegra/reset.h +++ b/arch/arm/mach-tegra/reset.h @@ -21,7 +21,7 @@ #define RESET_DATA(x) ((TEGRA_RESET_##x)*4) -#ifndef __ASSEMBLY__ +#ifndef __ASSEMBLER__ #include "irammap.h" diff --git a/arch/arm/mach-tegra/sleep.h b/arch/arm/mach-tegra/sleep.h index 4718a3cb45a1..e332d261c1db 100644 --- a/arch/arm/mach-tegra/sleep.h +++ b/arch/arm/mach-tegra/sleep.h @@ -38,7 +38,7 @@ #define TEGRA_FLUSH_CACHE_LOUIS 0 #define TEGRA_FLUSH_CACHE_ALL 1 -#ifdef __ASSEMBLY__ +#ifdef __ASSEMBLER__ /* waits until the microsecond counter (base) is > rn */ .macro wait_until, rn, base, tmp add \rn, \rn, #1 diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig index 513618078440..1ee9b6608d71 100644 --- a/arch/arm/mach-versatile/Kconfig +++ b/arch/arm/mach-versatile/Kconfig @@ -110,10 +110,14 @@ config INTEGRATOR_CM1026EJS select CPU_ARM1026 config INTEGRATOR_CM1136JFS - bool "Integrator/CM1136JF-S core module" + bool "Integrator/CM1136JF-S core module (DEPRECATED)" depends on ARCH_INTEGRATOR_AP depends on ARCH_MULTI_V6 - select CPU_V6 + depends on !SMP + select CPU_ARM1136R0 + help + This machine is scheduled for removal in early 2027, + since it uses the ARM1136r0 CPU revision. config ARCH_INTEGRATOR_CP bool "Support Integrator/CP platform" @@ -135,7 +139,7 @@ config INTEGRATOR_CTB36 bool "Integrator/CTB36 (ARM1136JF-S) core tile" depends on ARCH_INTEGRATOR_CP depends on ARCH_MULTI_V6 - select CPU_V6 + select CPU_ARM1136R1 config ARCH_CINTEGRATOR depends on ARCH_INTEGRATOR_CP @@ -182,7 +186,7 @@ config MACH_REALVIEW_EB config REALVIEW_EB_ARM1136 bool "Support ARM1136J(F)-S Tile" depends on MACH_REALVIEW_EB && ARCH_MULTI_V6 - select CPU_V6 + select CPU_ARM1136R1 help Enable support for the ARM1136 tile fitted to the Realview(R) Emulation Baseboard platform. @@ -201,11 +205,10 @@ config REALVIEW_EB_A9MP Enable support for the Cortex-A9MPCore tile fitted to the Realview(R) Emulation Baseboard platform. -# ARMv6 CPU without K extensions, but does have the new exclusive ops config MACH_REALVIEW_PB1176 bool "Support RealView(R) Platform Baseboard for ARM1176JZF-S" depends on ARCH_MULTI_V6 - select CPU_V6 + select CPU_ARM1176 select HAVE_TCM help Include support for the ARM(R) RealView(R) Platform Baseboard for diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index f7bea397a201..6574659dfb61 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig @@ -376,6 +376,7 @@ config CPU_PJ4B # ARMv6 config CPU_V6 bool + depends on !SMP select CPU_32v6 select CPU_ABRT_EV6 select CPU_CACHE_V6 @@ -386,7 +387,6 @@ config CPU_V6 select CPU_PABRT_V6 select CPU_THUMB_CAPABLE select CPU_TLB_V6 if MMU - select SMP_ON_UP if SMP # ARMv6k config CPU_V6K @@ -403,6 +403,30 @@ config CPU_V6K select CPU_THUMB_CAPABLE select CPU_TLB_V6 if MMU +config CPU_ARM1136R0 + bool + select CPU_V6 + depends on !SMP + help + These early revisions of ARM1136 lack support for the + ARMv6k extensions for multiprocessing. + Support for this revision is scheduled for removal + from the kernel in early 2027. + +config CPU_ARM1136R1 + bool + select CPU_V6K + help + Later revisions of ARM1136 add ARMv6k (atomics, barriers + and TLS register) in addition to the features from r0. + +config CPU_ARM1176 + bool + select CPU_V6K + help + ARM1176 implements ARMv6k, VMSAv7 and Trustzone in + addition to the ARMv6 baseline. + # ARMv7 and ARMv8 architectures config CPU_V7 bool @@ -754,7 +778,8 @@ config CPU_LITTLE_ENDIAN space builds. config CPU_BIG_ENDIAN - bool "Build big-endian kernel" + bool "Build big-endian kernel (DEPRECATED)" + depends on ARCH_MULTI_V5 || BROKEN depends on !LD_IS_LLD help Say Y if you plan on running a kernel in big-endian mode. diff --git a/arch/arm/plat-orion/mpp.c b/arch/arm/plat-orion/mpp.c index 8a6880d528b6..673ecedc721d 100644 --- a/arch/arm/plat-orion/mpp.c +++ b/arch/arm/plat-orion/mpp.c @@ -12,7 +12,7 @@ #include <linux/init.h> #include <linux/mbus.h> #include <linux/io.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <plat/orion-gpio.h> #include <plat/mpp.h> diff --git a/drivers/firmware/imx/imx-scu.c b/drivers/firmware/imx/imx-scu.c index 67b267a7408a..203aac421252 100644 --- a/drivers/firmware/imx/imx-scu.c +++ b/drivers/firmware/imx/imx-scu.c @@ -82,6 +82,17 @@ static int imx_sc_linux_errmap[IMX_SC_ERR_LAST] = { static struct imx_sc_ipc *imx_sc_ipc_handle; +static void imx_scu_free_mbox_chan(void *data) +{ + mbox_free_channel(data); +} + +static void imx_scu_clear_handle(void *data) +{ + if (imx_sc_ipc_handle == data) + imx_sc_ipc_handle = NULL; +} + static inline int imx_sc_to_linux_errno(int errno) { if (errno >= IMX_SC_ERR_NONE && errno < IMX_SC_ERR_LAST) @@ -321,6 +332,11 @@ static int imx_scu_probe(struct platform_device *pdev) dev_dbg(dev, "request mbox chan %s\n", chan_name); /* chan_name is not used anymore by framework */ kfree(chan_name); + + ret = devm_add_action_or_reset(dev, imx_scu_free_mbox_chan, + sc_chan->ch); + if (ret) + return ret; } sc_ipc->dev = dev; @@ -330,6 +346,9 @@ static int imx_scu_probe(struct platform_device *pdev) init_completion(&sc_ipc->done); imx_sc_ipc_handle = sc_ipc; + ret = devm_add_action_or_reset(dev, imx_scu_clear_handle, sc_ipc); + if (ret) + return ret; ret = imx_scu_soc_init(dev); if (ret) @@ -342,7 +361,11 @@ static int imx_scu_probe(struct platform_device *pdev) dev_info(dev, "NXP i.MX SCU Initialized\n"); - return devm_of_platform_populate(dev); + ret = devm_of_platform_populate(dev); + if (ret) + of_platform_depopulate(dev); + + return ret; } static const struct of_device_id imx_scu_match[] = { diff --git a/drivers/firmware/imx/sm-misc.c b/drivers/firmware/imx/sm-misc.c index ac9af824c2d4..fb8d7bdb5b08 100644 --- a/drivers/firmware/imx/sm-misc.c +++ b/drivers/firmware/imx/sm-misc.c @@ -79,6 +79,9 @@ static int syslog_show(struct seq_file *file, void *priv) u16 size = SZ_4K / 4; int ret; + if (!syslog) + return -ENOMEM; + if (!ph) return -ENODEV; diff --git a/drivers/gpio/gpio-sa1100.c b/drivers/gpio/gpio-sa1100.c index 1938ffa2f4f3..ffa73dd3b982 100644 --- a/drivers/gpio/gpio-sa1100.c +++ b/drivers/gpio/gpio-sa1100.c @@ -13,6 +13,11 @@ #include <mach/hardware.h> #include <mach/irqs.h> #include <mach/generic.h> +#include <linux/property.h> + +const struct software_node sa1100_gpiochip_node = { + .name = "sa1100-gpio", +}; struct sa1100_gpio_chip { struct gpio_chip chip; @@ -317,6 +322,7 @@ static const int sa1100_gpio_irqs[] __initconst = { void __init sa1100_init_gpio(void) { struct sa1100_gpio_chip *sgc = &sa1100_gpio_chip; + struct gpio_chip *gc = &sgc->chip; int i; /* clear all GPIO edge detects */ @@ -324,7 +330,9 @@ void __init sa1100_init_gpio(void) writel_relaxed(0, sgc->membase + R_GRER); writel_relaxed(-1, sgc->membase + R_GEDR); - gpiochip_add_data(&sa1100_gpio_chip.chip, NULL); + software_node_register(&sa1100_gpiochip_node); + gc->fwnode = software_node_fwnode(&sa1100_gpiochip_node); + gpiochip_add_data(gc, NULL); sa1100_gpio_irqdomain = irq_domain_create_simple(NULL, 28, IRQ_GPIO0, diff --git a/drivers/soc/imx/soc-imx9.c b/drivers/soc/imx/soc-imx9.c index 58eef7d4f908..23b54b7d7502 100644 --- a/drivers/soc/imx/soc-imx9.c +++ b/drivers/soc/imx/soc-imx9.c @@ -35,6 +35,8 @@ static int imx9_soc_probe(struct platform_device *pdev) return dev_err_probe(dev, err, "%s: missing model property\n", __func__); attr->family = devm_kasprintf(dev, GFP_KERNEL, "Freescale i.MX"); + if (!attr->family) + return -ENOMEM; /* * Retrieve the soc id, rev & uid info: @@ -52,11 +54,18 @@ static int imx9_soc_probe(struct platform_device *pdev) rev_minor = SOC_REV_MINOR(res.a1); attr->soc_id = devm_kasprintf(dev, GFP_KERNEL, "i.MX%2x", soc_id); + if (!attr->soc_id) + return -ENOMEM; + attr->revision = devm_kasprintf(dev, GFP_KERNEL, "%d.%d", rev_major, rev_minor); + if (!attr->revision) + return -ENOMEM; uid127_64 = res.a2; uid63_0 = res.a3; attr->serial_number = devm_kasprintf(dev, GFP_KERNEL, "%016llx%016llx", uid127_64, uid63_0); + if (!attr->serial_number) + return -ENOMEM; sdev = soc_device_register(attr); if (IS_ERR(sdev)) diff --git a/include/linux/serial_s3c.h b/include/linux/serial_s3c.h index 102aa33d956c..f54cb6e23f85 100644 --- a/include/linux/serial_s3c.h +++ b/include/linux/serial_s3c.h @@ -269,7 +269,7 @@ #define APPLE_S5L_UTRSTAT_RXTO BIT(9) #define APPLE_S5L_UTRSTAT_ALL_FLAGS GENMASK(9, 3) -#ifndef __ASSEMBLY__ +#ifndef __ASSEMBLER__ #include <linux/serial_core.h> @@ -294,7 +294,7 @@ struct s3c2410_uartcfg { unsigned long ufcon; /* value of ufcon for port */ }; -#endif /* __ASSEMBLY__ */ +#endif /* __ASSEMBLER__ */ #endif /* __ASM_ARM_REGS_SERIAL_H */ diff --git a/include/soc/tegra/flowctrl.h b/include/soc/tegra/flowctrl.h index 1aacc5c7a9db..2a60bd4934c3 100644 --- a/include/soc/tegra/flowctrl.h +++ b/include/soc/tegra/flowctrl.h @@ -39,7 +39,7 @@ #define TEGRA30_FLOW_CTRL_CSR_WFE_BITMAP (0xF << 4) #define TEGRA30_FLOW_CTRL_CSR_WFI_BITMAP (0xF << 8) -#ifndef __ASSEMBLY__ +#ifndef __ASSEMBLER__ #ifdef CONFIG_SOC_TEGRA_FLOWCTRL u32 flowctrl_read_cpu_csr(unsigned int cpuid); void flowctrl_write_cpu_csr(unsigned int cpuid, u32 value); @@ -67,5 +67,5 @@ static inline void flowctrl_cpu_suspend_exit(unsigned int cpuid) { } #endif /* CONFIG_SOC_TEGRA_FLOWCTRL */ -#endif /* __ASSEMBLY */ +#endif /* __ASSEMBLER__ */ #endif /* __SOC_TEGRA_FLOWCTRL_H__ */ diff --git a/include/soc/tegra/fuse.h b/include/soc/tegra/fuse.h index 8f421b9f7585..c4f7a1b97c54 100644 --- a/include/soc/tegra/fuse.h +++ b/include/soc/tegra/fuse.h @@ -24,7 +24,7 @@ #define TEGRA30_FUSE_SATA_CALIB 0x124 #define TEGRA_FUSE_USB_CALIB_EXT_0 0x250 -#ifndef __ASSEMBLY__ +#ifndef __ASSEMBLER__ enum tegra_revision { TEGRA_REVISION_UNKNOWN = 0, @@ -122,6 +122,6 @@ static inline int tegra194_miscreg_mask_serror(void) struct device *tegra_soc_device_register(void); -#endif /* __ASSEMBLY__ */ +#endif /* __ASSEMBLER__ */ #endif /* __SOC_TEGRA_FUSE_H__ */ |
