diff --git a/Makefile b/Makefile
index aba9169baf..0f4ab130bc 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ $(if $(findstring $(space),$(TOPDIR)),$(error ERROR: The path to the OpenWrt dir
world:
-DISTRO_PKG_CONFIG:=$(shell $(TOPDIR)/scripts/command_all.sh pkg-config | grep -E '\/usr' -m 1)
+DISTRO_PKG_CONFIG:=$(shell $(TOPDIR)/scripts/command_all.sh pkg-config | grep '/usr' -m 1)
export PATH:=$(TOPDIR)/staging_dir/host/bin:$(PATH)
ifneq ($(OPENWRT_BUILD),1)
diff --git a/README.md b/README.md
index f11a0845c1..59b53c764d 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,13 @@ Compared the official one, we allow to use hacks or non-upstreamable patches / m
Default login address: http://192.168.1.1 or http://immortalwrt.lan, username: __root__, password: __password__.
+## Download
+Built firmware images are available for many architectures and come with a package selection to be used as WiFi home router. To quickly find a factory image usable to migrate from a vendor stock firmware to ImmortalWrt, try the *Firmware Selector*.
+
+- [ImmortalWrt Firmware Selector](https://firmware-selector.immortalwrt.org/)
+
+If your device is supported, please follow the **Info** link to see install instructions or consult the support resources listed below.
+
## Development
To build your own firmware you need a GNU/Linux, BSD or MacOSX system (case sensitive filesystem required). Cygwin is unsupported because of the lack of a case sensitive file system.
@@ -118,11 +125,9 @@ To build your own firmware you need a GNU/Linux, BSD or MacOSX system (case sens
- [LuCI Web Interface](https://github.com/immortalwrt/luci): Modern and modular interface to control the device via a web browser.
- [ImmortalWrt Packages](https://github.com/immortalwrt/packages): Community repository of ported packages.
- [OpenWrt Routing](https://github.com/openwrt/routing): Packages specifically focused on (mesh) routing.
+ - [OpenWrt Video](https://github.com/openwrt/video): Packages specifically focused on display servers and clients (Xorg and Wayland).
- [CONTRIBUTED.md](https://github.com/immortalwrt/immortalwrt/blob/master/CONTRIBUTED.md): the 3rd-party packages we introduced.
-* [OpenWrt Video](https://github.com/openwrt/video): Packages specifically
- focused on display servers and clients (Xorg and Wayland).
-
## Support Information
For a list of supported devices see the [OpenWrt Hardware Database](https://openwrt.org/supported_devices)
### Documentation
diff --git a/config/Config-devel.in b/config/Config-devel.in
index 87f9157106..3f73cb404d 100644
--- a/config/Config-devel.in
+++ b/config/Config-devel.in
@@ -45,6 +45,13 @@ menuconfig DEVEL
This allows you to symlink build_dir into a scratch location, e.g. a ramdisk,
which does not have enough space to keep a complete build_dir.
+ config BUILD_ALL_HOST_TOOLS
+ bool "Compile all host tools" if DEVEL
+ default n
+ help
+ Compile all host host tools even if not needed. This is needed to prepare a
+ universal precompiled host tools archive to use in another buildroot.
+
config BUILD_SUFFIX
string "Build suffix to append to the target BUILD_DIR variable" if DEVEL
default ""
diff --git a/include/depends.mk b/include/depends.mk
index 073fb03632..a858d4b033 100644
--- a/include/depends.mk
+++ b/include/depends.mk
@@ -12,6 +12,7 @@
DEP_FINDPARAMS := -x "*/.svn*" -x ".*" -x "*:*" -x "*\!*" -x "* *" -x "*\\\#*" -x "*/.*_check" -x "*/.*.swp" -x "*/.pkgdir*"
find_md5=find $(wildcard $(1)) -type f $(patsubst -x,-and -not -path,$(DEP_FINDPARAMS) $(2)) -printf "%p%T@\n" | sort | $(MKHASH) md5
+find_md5_reproducible=find $(wildcard $(1)) -type f $(patsubst -x,-and -not -path,$(DEP_FINDPARAMS) $(2)) -print0 | xargs -0 $(MKHASH) md5 | sort | $(MKHASH) md5
define rdep
.PRECIOUS: $(2)
diff --git a/include/download.mk b/include/download.mk
index 68dc39bcd2..6cd5445133 100644
--- a/include/download.mk
+++ b/include/download.mk
@@ -18,6 +18,9 @@ endif
DOWNLOAD_RDEP=$(STAMP_PREPARED) $(HOST_STAMP_PREPARED)
+# Export options for download.pl
+export DOWNLOAD_CHECK_CERTIFICATE:=$(CONFIG_DOWNLOAD_CHECK_CERTIFICATE)
+
define dl_method_git
$(if $(filter https://github.com/% git://github.com/%,$(1)),github_archive,git)
endef
diff --git a/include/host-build.mk b/include/host-build.mk
index f06dd80230..22fcc31f15 100644
--- a/include/host-build.mk
+++ b/include/host-build.mk
@@ -21,7 +21,7 @@ include $(INCLUDE_DIR)/depends.mk
include $(INCLUDE_DIR)/quilt.mk
BUILD_TYPES += host
-HOST_STAMP_PREPARED=$(HOST_BUILD_DIR)/.prepared$(if $(HOST_QUILT)$(DUMP),,$(shell $(call find_md5,${CURDIR} $(PKG_FILE_DEPENDS),))_$(call confvar,CONFIG_AUTOREMOVE $(HOST_PREPARED_DEPENDS)))
+HOST_STAMP_PREPARED=$(HOST_BUILD_DIR)/.prepared$(if $(HOST_QUILT)$(DUMP),,$(shell $(call $(if $(CONFIG_AUTOREMOVE),find_md5_reproducible,find_md5),${CURDIR} $(PKG_FILE_DEPENDS),))_$(call confvar,CONFIG_AUTOREMOVE $(HOST_PREPARED_DEPENDS)))
HOST_STAMP_CONFIGURED:=$(HOST_BUILD_DIR)/.configured
HOST_STAMP_BUILT:=$(HOST_BUILD_DIR)/.built
HOST_BUILD_PREFIX?=$(if $(IS_PACKAGE_BUILD),$(STAGING_DIR_HOSTPKG),$(STAGING_DIR_HOST))
diff --git a/include/kernel-5.10 b/include/kernel-5.10
index 3dee01cdcf..60b71eea92 100644
--- a/include/kernel-5.10
+++ b/include/kernel-5.10
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.10 = .144
-LINUX_KERNEL_HASH-5.10.144 = 20c6d26f4d9d0d15d628982bc5e35862b3016d1832f5a545b3bdb131203cd3ca
+LINUX_VERSION-5.10 = .146
+LINUX_KERNEL_HASH-5.10.146 = 7bbd97f3278eadb73c19a1ca8c1a655c60afcee9f487b910063cdd15e9ee6dc1
diff --git a/include/kernel-5.15 b/include/kernel-5.15
index 1d10e56bb2..3085a029d2 100644
--- a/include/kernel-5.15
+++ b/include/kernel-5.15
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .69
-LINUX_KERNEL_HASH-5.15.69 = e32839ca761e5251f25708f7939b37b101d28fc29515a97bfc0c838a21efdf34
+LINUX_VERSION-5.15 = .71
+LINUX_KERNEL_HASH-5.15.71 = 5f5408138e016c0e029e015d98ceab86f4e6366c65cd611259dac808ab1d1e53
diff --git a/include/kernel-build.mk b/include/kernel-build.mk
index cc651f29b1..5b332258f8 100644
--- a/include/kernel-build.mk
+++ b/include/kernel-build.mk
@@ -10,7 +10,7 @@ ifneq ($(DUMP),1)
endif
KERNEL_FILE_DEPENDS=$(GENERIC_BACKPORT_DIR) $(GENERIC_PATCH_DIR) $(GENERIC_HACK_DIR) $(PATCH_DIR) $(GENERIC_FILES_DIR) $(FILES_DIR)
-STAMP_PREPARED=$(LINUX_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call find_md5,$(KERNEL_FILE_DEPENDS),)))
+STAMP_PREPARED=$(LINUX_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call $(if $(CONFIG_AUTOREMOVE),find_md5_reproducible,find_md5),$(KERNEL_FILE_DEPENDS),)))
STAMP_CONFIGURED:=$(LINUX_DIR)/.configured
include $(INCLUDE_DIR)/download.mk
include $(INCLUDE_DIR)/quilt.mk
diff --git a/include/package.mk b/include/package.mk
index 5861533bf5..368bf0d7ca 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -85,7 +85,7 @@ ifneq ($(PREV_STAMP_PREPARED),)
STAMP_PREPARED:=$(PREV_STAMP_PREPARED)
CONFIG_AUTOREBUILD:=
else
- STAMP_PREPARED=$(PKG_BUILD_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call find_md5,${CURDIR} $(PKG_FILE_DEPENDS),))_$(call confvar,CONFIG_AUTOREMOVE $(PKG_PREPARED_DEPENDS)))
+ STAMP_PREPARED=$(PKG_BUILD_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call $(if $(CONFIG_AUTOREMOVE),find_md5_reproducible,find_md5),${CURDIR} $(PKG_FILE_DEPENDS),))_$(call confvar,CONFIG_AUTOREMOVE $(PKG_PREPARED_DEPENDS)))
endif
STAMP_CONFIGURED=$(PKG_BUILD_DIR)/.configured$(if $(DUMP),,_$(call confvar,$(PKG_CONFIG_DEPENDS)))
STAMP_CONFIGURED_WILDCARD=$(PKG_BUILD_DIR)/.configured_*
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index e1687da370..c5c2f1c8bb 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -213,4 +213,4 @@ prereq: $(STAGING_DIR_HOST)/bin/mkhash $(STAGING_DIR_HOST)/bin/xxd
# Install ldconfig stub
$(eval $(call TestHostCommand,ldconfig-stub,Failed to install stub, \
- $(LN) /bin/true $(STAGING_DIR_HOST)/bin/ldconfig))
+ $(LN) $(firstword $(wildcard /bin/true /usr/bin/true)) $(STAGING_DIR_HOST)/bin/ldconfig))
diff --git a/include/target.mk b/include/target.mk
index e6fefc5467..a9a19ab479 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -81,7 +81,7 @@ endif
target_conf=$(subst .,_,$(subst -,_,$(subst /,_,$(1))))
ifeq ($(DUMP),)
- PLATFORM_DIR:=$(TOPDIR)/target/linux/$(BOARD)
+ PLATFORM_DIR:=$(firstword $(wildcard $(TOPDIR)/target/linux/feeds/$(BOARD) $(TOPDIR)/target/linux/$(BOARD)))
SUBTARGET:=$(strip $(foreach subdir,$(patsubst $(PLATFORM_DIR)/%/target.mk,%,$(wildcard $(PLATFORM_DIR)/*/target.mk)),$(if $(CONFIG_TARGET_$(call target_conf,$(BOARD)_$(subdir))),$(subdir))))
else
PLATFORM_DIR:=${CURDIR}
diff --git a/package/boot/uboot-mvebu/patches/0001-tools-termios_linux.h-Fix-compilation-on-non-glibc-s.patch b/package/boot/uboot-mvebu/patches/0001-tools-termios_linux.h-Fix-compilation-on-non-glibc-s.patch
new file mode 100644
index 0000000000..e2f8a08bea
--- /dev/null
+++ b/package/boot/uboot-mvebu/patches/0001-tools-termios_linux.h-Fix-compilation-on-non-glibc-s.patch
@@ -0,0 +1,44 @@
+From 82a6da13c3a113eefdb378ff53635f32a6184d6f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pali=20Roh=C3=A1r?=
+Date: Thu, 8 Sep 2022 16:59:36 +0200
+Subject: [PATCH] tools: termios_linux.h: Fix compilation on non-glibc systems
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+TCGETS2 is defined in header file asm/ioctls.h provided by linux kernel.
+On glib systems it is automatically included by some other glibc include
+header file and therefore TCGETS2 is present in termios_linux.h when
+linux kernel provides it.
+
+On non-glibc systems (e.g. musl) asm/ioctls.h is not automatically included
+which results in the strange error that BOTHER is supported, TCGETS2 not
+defined and struct termios does not provide c_ispeed member.
+
+ tools/kwboot.c: In function 'kwboot_tty_change_baudrate':
+ tools/kwboot.c:662:6: error: 'struct termios' has no member named 'c_ospeed'
+ 662 | tio.c_ospeed = tio.c_ispeed = baudrate;
+ | ^
+
+Fix this issue by explicitly including asm/ioctls.h file which provides
+TCGETS2 macro (if supported on selected architecture) to not depending on
+glibc auto-include behavior and because termios_linux.h requires it.
+
+With this change it is possible compile kwboot with musl libc.
+
+Reported-by: Michal Vasilek
+Signed-off-by: Pali Rohár
+---
+ tools/termios_linux.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/tools/termios_linux.h
++++ b/tools/termios_linux.h
+@@ -29,6 +29,7 @@
+ #include
+ #include
+ #include
++#include
+ #include
+
+ #if defined(BOTHER) && defined(TCGETS2)
diff --git a/package/boot/uboot-mvebu/patches/0002-tools-mkimage-fix-build-with-LibreSSL.patch b/package/boot/uboot-mvebu/patches/0002-tools-mkimage-fix-build-with-LibreSSL.patch
new file mode 100644
index 0000000000..ebea2a41cd
--- /dev/null
+++ b/package/boot/uboot-mvebu/patches/0002-tools-mkimage-fix-build-with-LibreSSL.patch
@@ -0,0 +1,28 @@
+From aed6107ae96870cd190b23d6da34a7e616799ed3 Mon Sep 17 00:00:00 2001
+From: Michal Vasilek
+Date: Fri, 22 Jul 2022 19:55:53 +0200
+Subject: [PATCH 1/2] tools: mkimage: fix build with LibreSSL
+
+RSA_get0_* functions are not available in LibreSSL
+
+Signed-off-by: Michal Vasilek
+Reviewed-by: Simon Glass
+---
+ tools/sunxi_toc0.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/tools/sunxi_toc0.c
++++ b/tools/sunxi_toc0.c
+@@ -34,6 +34,12 @@
+ #define pr_warn(fmt, args...) fprintf(stderr, pr_fmt(fmt), "warning", ##args)
+ #define pr_info(fmt, args...) fprintf(stderr, pr_fmt(fmt), "info", ##args)
+
++#if defined(LIBRESSL_VERSION_NUMBER)
++#define RSA_get0_n(key) (key)->n
++#define RSA_get0_e(key) (key)->e
++#define RSA_get0_d(key) (key)->d
++#endif
++
+ struct __packed toc0_key_item {
+ __le32 vendor_id;
+ __le32 key0_n_len;
diff --git a/package/boot/uboot-mvebu/patches/0003-tools-mkimage-fix-build-with-recent-LibreSSL.patch b/package/boot/uboot-mvebu/patches/0003-tools-mkimage-fix-build-with-recent-LibreSSL.patch
new file mode 100644
index 0000000000..2e955848e8
--- /dev/null
+++ b/package/boot/uboot-mvebu/patches/0003-tools-mkimage-fix-build-with-recent-LibreSSL.patch
@@ -0,0 +1,27 @@
+From 16b94d211b18ae0204c4f850fdf23573b19170ec Mon Sep 17 00:00:00 2001
+From: Mark Kettenis
+Date: Mon, 29 Aug 2022 13:34:01 +0200
+Subject: [PATCH 2/2] tools: mkimage: fix build with recent LibreSSL
+
+LibreSSL 3.5.0 and later (also shipped as part of OpenBSD 7.1 and
+and later) have an opaque RSA object and do provide the
+RSA_get0_* functions that OpenSSL provides.
+
+Fixes: 2ecc354b8e46 ("tools: mkimage: fix build with LibreSSL")
+Signed-off-by: Mark Kettenis
+Reviewed-by: Jonathan Gray
+---
+ tools/sunxi_toc0.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/tools/sunxi_toc0.c
++++ b/tools/sunxi_toc0.c
+@@ -34,7 +34,7 @@
+ #define pr_warn(fmt, args...) fprintf(stderr, pr_fmt(fmt), "warning", ##args)
+ #define pr_info(fmt, args...) fprintf(stderr, pr_fmt(fmt), "info", ##args)
+
+-#if defined(LIBRESSL_VERSION_NUMBER)
++#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3050000fL
+ #define RSA_get0_n(key) (key)->n
+ #define RSA_get0_e(key) (key)->e
+ #define RSA_get0_d(key) (key)->d
diff --git a/package/devel/trace-cmd/Makefile b/package/devel/trace-cmd/Makefile
index 3f96d43b77..9e8c46bc6f 100644
--- a/package/devel/trace-cmd/Makefile
+++ b/package/devel/trace-cmd/Makefile
@@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=trace-cmd
-PKG_VERSION:=v3.1.2
+PKG_VERSION:=v3.1.3
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/snapshot/
-PKG_HASH:=206672af60aa0bc35cfc44a4be746efa575bac729060e54b6453f7d5dfbcd979
+PKG_HASH:=1fd8515f38fc29fd7a66e7b6b5931856906522e8a1845999fc9033fc80d7b676
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING
diff --git a/package/devel/trace-cmd/patches/100-tracecmd-add-NO_LIBZSTD-option-to-disable-libzstd.patch b/package/devel/trace-cmd/patches/100-tracecmd-add-NO_LIBZSTD-option-to-disable-libzstd.patch
deleted file mode 100644
index 447e3b0790..0000000000
--- a/package/devel/trace-cmd/patches/100-tracecmd-add-NO_LIBZSTD-option-to-disable-libzstd.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4fcc23ee4291f445cada012b6bef6879274a25f1 Mon Sep 17 00:00:00 2001
-From: Nick Hainke
-Date: Sun, 7 Aug 2022 10:11:06 +0200
-Subject: [PATCH] tracecmd: add NO_LIBZSTD option to disable libzstd
-
-Other Linux kernel tools like perf already include options to disable
-libzstd manually. Add this option also to trace-cmd.
-
-The OpenWrt SDK fails to build trace-cmd due to the autodetection of
-libzstd. The package is present in some feed repositories but should
-not be used by trace-cmd. The compilation will fail with:
-
- Package trace-cmd is missing dependencies for the following libraries:
- libzstd.so.1
-
-Signed-off-by: Nick Hainke
----
- Makefile | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/Makefile
-+++ b/Makefile
-@@ -320,6 +320,7 @@ CFLAGS += -DHAVE_ZLIB
- $(info Have zlib compression support)
- endif
-
-+ifndef NO_LIBZSTD
- TEST_LIBZSTD = $(shell sh -c "$(PKG_CONFIG) --atleast-version 1.4.0 libzstd > /dev/null 2>&1 && echo y")
-
- ifeq ("$(TEST_LIBZSTD)", "y")
-@@ -335,6 +336,7 @@ $(info *******************************
- endif
-
- export LIBZSTD_CFLAGS LIBZSTD_LDLAGS ZSTD_INSTALLED
-+endif
-
- CUNIT_INSTALLED := $(shell if (printf "$(pound)include \n void main(){CU_initialize_registry();}" | $(CC) -o /dev/null -x c - -lcunit >/dev/null 2>&1) ; then echo 1; else echo 0 ; fi)
- export CUNIT_INSTALLED
diff --git a/package/devel/valgrind/Makefile b/package/devel/valgrind/Makefile
index 270aab6dba..c179f2b39c 100644
--- a/package/devel/valgrind/Makefile
+++ b/package/devel/valgrind/Makefile
@@ -12,7 +12,7 @@ PKG_VERSION:=3.19.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://sourceware.org/pub/valgrind/
+PKG_SOURCE_URL:=https://sourceware.org/pub/valgrind/
PKG_HASH:=dd5e34486f1a483ff7be7300cc16b4d6b24690987877c3278d797534d6738f02
PKG_MAINTAINER:=Felix Fietkau
diff --git a/package/kernel/linux/Makefile b/package/kernel/linux/Makefile
index ad68bde9b3..ff91760270 100644
--- a/package/kernel/linux/Makefile
+++ b/package/kernel/linux/Makefile
@@ -12,7 +12,9 @@ PKG_NAME:=kernel
PKG_FLAGS:=hold
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/packages
-SCAN_DEPS=modules/*.mk $(TOPDIR)/target/linux/*/modules.mk $(TOPDIR)/target/linux/*/*/modules.mk $(TOPDIR)/include/netfilter.mk
+SUBTARGETS = $(sort $(filter-out feeds,$(notdir $(wildcard $(TOPDIR)/target/linux/* $(TOPDIR)/target/linux/feeds/*))))
+SUBTARGET_MODULES = $(foreach t,$(SUBTARGETS),$(firstword $(wildcard $(TOPDIR)/target/linux/feeds/$(t)/modules.mk $(TOPDIR)/target/linux/$(t)/modules.mk)))
+SCAN_DEPS=modules/*.mk $(SUBTARGET_MODULES) $(TOPDIR)/include/netfilter.mk
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=
@@ -63,5 +65,4 @@ endef
$(eval $(if $(DUMP),,$(call BuildPackage,kernel)))
include $(sort $(wildcard ./modules/*.mk))
--include $(TOPDIR)/target/linux/*/modules.mk
--include $(TOPDIR)/target/linux/*/*/modules.mk
+-include $(SUBTARGET_MODULES)
diff --git a/package/kernel/linux/files/hotplug-sched-teql.sh b/package/kernel/linux/files/hotplug-sched-teql.sh
index a0c0e503aa..2dc4ed4a84 100644
--- a/package/kernel/linux/files/hotplug-sched-teql.sh
+++ b/package/kernel/linux/files/hotplug-sched-teql.sh
@@ -12,7 +12,7 @@ config_get teql $INTERFACE teql
if [ "$teql" != "" ]; then
logger Adding device $DEVICE to TEQL master $teql
- insmod sch_teql
+ modprobe sch_teql
tc qdisc add dev $DEVICE root $teql
# The kernel doesn't let us bring it up until it has at least one
diff --git a/package/kernel/linux/modules/block.mk b/package/kernel/linux/modules/block.mk
index 8affa72296..f6c9df0698 100644
--- a/package/kernel/linux/modules/block.mk
+++ b/package/kernel/linux/modules/block.mk
@@ -90,21 +90,6 @@ endef
$(eval $(call KernelPackage,ata-artop))
-define KernelPackage/ata-marvell-sata
- TITLE:=Marvell Serial ATA support
- KCONFIG:=CONFIG_SATA_MV
- FILES:=$(LINUX_DIR)/drivers/ata/sata_mv.ko
- AUTOLOAD:=$(call AutoLoad,41,sata_mv,1)
- $(call AddDepends/ata)
-endef
-
-define KernelPackage/ata-marvell-sata/description
- SATA support for marvell chipsets
-endef
-
-$(eval $(call KernelPackage,ata-marvell-sata))
-
-
define KernelPackage/ata-nvidia-sata
TITLE:=Nvidia Serial ATA support
KCONFIG:=CONFIG_SATA_NV
diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk
index 0ab8c7ad4a..f15a08d62e 100644
--- a/package/kernel/linux/modules/other.mk
+++ b/package/kernel/linux/modules/other.mk
@@ -419,23 +419,6 @@ endef
$(eval $(call KernelPackage,mmc))
-define KernelPackage/mvsdio
- SUBMENU:=$(OTHER_MENU)
- TITLE:=Marvell MMC/SD/SDIO host driver
- DEPENDS:=+kmod-mmc @TARGET_kirkwood
- KCONFIG:= CONFIG_MMC_MVSDIO
- FILES:= \
- $(LINUX_DIR)/drivers/mmc/host/mvsdio.ko
- AUTOLOAD:=$(call AutoProbe,mvsdio,1)
-endef
-
-define KernelPackage/mvsdio/description
- Kernel support for the Marvell SDIO host driver.
-endef
-
-$(eval $(call KernelPackage,mvsdio))
-
-
define KernelPackage/sdhci
SUBMENU:=$(OTHER_MENU)
TITLE:=Secure Digital Host Controller Interface support
diff --git a/package/kernel/mac80211/patches/subsys/343-wifi-mac80211-fix-decap-offload-for-stations-on-AP_V.patch b/package/kernel/mac80211/patches/subsys/343-wifi-mac80211-fix-decap-offload-for-stations-on-AP_V.patch
new file mode 100644
index 0000000000..0feb408d21
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/343-wifi-mac80211-fix-decap-offload-for-stations-on-AP_V.patch
@@ -0,0 +1,37 @@
+From: Felix Fietkau
+Date: Wed, 28 Sep 2022 13:50:34 +0200
+Subject: [PATCH] wifi: mac80211: fix decap offload for stations on AP_VLAN
+ interfaces
+
+Since AP_VLAN interfaces are not passed to the driver, check offload_flags
+on the bss vif instead.
+
+Reported-by: Howard Hsu
+Fixes: 80a915ec4427 ("mac80211: add rx decapsulation offload support")
+Signed-off-by: Felix Fietkau
+---
+
+--- a/net/mac80211/rx.c
++++ b/net/mac80211/rx.c
+@@ -4265,6 +4265,7 @@ void ieee80211_check_fast_rx(struct sta_
+ .vif_type = sdata->vif.type,
+ .control_port_protocol = sdata->control_port_protocol,
+ }, *old, *new = NULL;
++ u32 offload_flags;
+ bool set_offload = false;
+ bool assign = false;
+ bool offload;
+@@ -4380,10 +4381,10 @@ void ieee80211_check_fast_rx(struct sta_
+ if (assign)
+ new = kmemdup(&fastrx, sizeof(fastrx), GFP_KERNEL);
+
+- offload = assign &&
+- (sdata->vif.offload_flags & IEEE80211_OFFLOAD_DECAP_ENABLED);
++ offload_flags = get_bss_sdata(sdata)->vif.offload_flags;
++ offload = offload_flags & IEEE80211_OFFLOAD_DECAP_ENABLED;
+
+- if (offload)
++ if (assign && offload)
+ set_offload = !test_and_set_sta_flag(sta, WLAN_STA_DECAP_OFFLOAD);
+ else
+ set_offload = test_and_clear_sta_flag(sta, WLAN_STA_DECAP_OFFLOAD);
diff --git a/package/kernel/mac80211/patches/subsys/344-wifi-cfg80211-fix-ieee80211_data_to_8023_exthdr-hand.patch b/package/kernel/mac80211/patches/subsys/344-wifi-cfg80211-fix-ieee80211_data_to_8023_exthdr-hand.patch
new file mode 100644
index 0000000000..161c7d6c8f
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/344-wifi-cfg80211-fix-ieee80211_data_to_8023_exthdr-hand.patch
@@ -0,0 +1,99 @@
+From: Felix Fietkau
+Date: Fri, 7 Oct 2022 10:54:47 +0200
+Subject: [PATCH] wifi: cfg80211: fix ieee80211_data_to_8023_exthdr
+ handling of small packets
+
+STP topology change notification packets only have a payload of 7 bytes,
+so they get dropped due to the skb->len < hdrlen + 8 check.
+Fix this by removing skb->len based checks and instead check the return code
+on the skb_copy_bits calls.
+
+Fixes: 2d1c304cb2d5 ("cfg80211: add function for 802.3 conversion with separate output buffer")
+Reported-by: Chad Monroe
+Signed-off-by: Felix Fietkau
+---
+
+--- a/net/wireless/util.c
++++ b/net/wireless/util.c
+@@ -557,7 +557,7 @@ int ieee80211_data_to_8023_exthdr(struct
+ return -1;
+
+ hdrlen = ieee80211_hdrlen(hdr->frame_control) + data_offset;
+- if (skb->len < hdrlen + 8)
++ if (skb->len < hdrlen)
+ return -1;
+
+ /* convert IEEE 802.11 header + possible LLC headers into Ethernet
+@@ -572,8 +572,9 @@ int ieee80211_data_to_8023_exthdr(struct
+ memcpy(tmp.h_dest, ieee80211_get_DA(hdr), ETH_ALEN);
+ memcpy(tmp.h_source, ieee80211_get_SA(hdr), ETH_ALEN);
+
+- if (iftype == NL80211_IFTYPE_MESH_POINT)
+- skb_copy_bits(skb, hdrlen, &mesh_flags, 1);
++ if (iftype == NL80211_IFTYPE_MESH_POINT &&
++ skb_copy_bits(skb, hdrlen, &mesh_flags, 1) < 0)
++ return -1;
+
+ mesh_flags &= MESH_FLAGS_AE;
+
+@@ -593,11 +594,12 @@ int ieee80211_data_to_8023_exthdr(struct
+ if (iftype == NL80211_IFTYPE_MESH_POINT) {
+ if (mesh_flags == MESH_FLAGS_AE_A4)
+ return -1;
+- if (mesh_flags == MESH_FLAGS_AE_A5_A6) {
+- skb_copy_bits(skb, hdrlen +
+- offsetof(struct ieee80211s_hdr, eaddr1),
+- tmp.h_dest, 2 * ETH_ALEN);
+- }
++ if (mesh_flags == MESH_FLAGS_AE_A5_A6 &&
++ skb_copy_bits(skb, hdrlen +
++ offsetof(struct ieee80211s_hdr, eaddr1),
++ tmp.h_dest, 2 * ETH_ALEN) < 0)
++ return -1;
++
+ hdrlen += __ieee80211_get_mesh_hdrlen(mesh_flags);
+ }
+ break;
+@@ -611,10 +613,11 @@ int ieee80211_data_to_8023_exthdr(struct
+ if (iftype == NL80211_IFTYPE_MESH_POINT) {
+ if (mesh_flags == MESH_FLAGS_AE_A5_A6)
+ return -1;
+- if (mesh_flags == MESH_FLAGS_AE_A4)
+- skb_copy_bits(skb, hdrlen +
+- offsetof(struct ieee80211s_hdr, eaddr1),
+- tmp.h_source, ETH_ALEN);
++ if (mesh_flags == MESH_FLAGS_AE_A4 &&
++ skb_copy_bits(skb, hdrlen +
++ offsetof(struct ieee80211s_hdr, eaddr1),
++ tmp.h_source, ETH_ALEN) < 0)
++ return -1;
+ hdrlen += __ieee80211_get_mesh_hdrlen(mesh_flags);
+ }
+ break;
+@@ -626,18 +629,18 @@ int ieee80211_data_to_8023_exthdr(struct
+ break;
+ }
+
+- skb_copy_bits(skb, hdrlen, &payload, sizeof(payload));
+- tmp.h_proto = payload.proto;
+-
+- if (likely((!is_amsdu && ether_addr_equal(payload.hdr, rfc1042_header) &&
+- tmp.h_proto != htons(ETH_P_AARP) &&
+- tmp.h_proto != htons(ETH_P_IPX)) ||
+- ether_addr_equal(payload.hdr, bridge_tunnel_header)))
++ if (likely(skb_copy_bits(skb, hdrlen, &payload, sizeof(payload)) == 0 &&
++ ((!is_amsdu && ether_addr_equal(payload.hdr, rfc1042_header) &&
++ payload.proto != htons(ETH_P_AARP) &&
++ payload.proto != htons(ETH_P_IPX)) ||
++ ether_addr_equal(payload.hdr, bridge_tunnel_header)))) {
+ /* remove RFC1042 or Bridge-Tunnel encapsulation and
+ * replace EtherType */
+ hdrlen += ETH_ALEN + 2;
+- else
++ tmp.h_proto = payload.proto;
++ } else {
+ tmp.h_proto = htons(skb->len - hdrlen);
++ }
+
+ pskb_pull(skb, hdrlen);
+
diff --git a/package/kernel/mac80211/patches/subsys/345-wifi-mac80211-do-not-drop-packets-smaller-than-the-L.patch b/package/kernel/mac80211/patches/subsys/345-wifi-mac80211-do-not-drop-packets-smaller-than-the-L.patch
new file mode 100644
index 0000000000..16cafc447c
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/345-wifi-mac80211-do-not-drop-packets-smaller-than-the-L.patch
@@ -0,0 +1,25 @@
+From: Felix Fietkau
+Date: Fri, 7 Oct 2022 10:58:26 +0200
+Subject: [PATCH] wifi: mac80211: do not drop packets smaller than the
+ LLC-SNAP header on fast-rx
+
+Since STP TCN frames are only 7 bytes, the pskb_may_pull call returns an error.
+Instead of dropping those packets, bump them back to the slow path for proper
+processing.
+
+Fixes: 49ddf8e6e234 ("mac80211: add fast-rx path")
+Reported-by: Chad Monroe
+Signed-off-by: Felix Fietkau
+---
+
+--- a/net/mac80211/rx.c
++++ b/net/mac80211/rx.c
+@@ -4601,7 +4601,7 @@ static bool ieee80211_invoke_fast_rx(str
+
+ if (!(status->rx_flags & IEEE80211_RX_AMSDU)) {
+ if (!pskb_may_pull(skb, snap_offs + sizeof(*payload)))
+- goto drop;
++ return false;
+
+ payload = (void *)(skb->data + snap_offs);
+
diff --git a/package/kernel/mac80211/patches/subsys/800-mac80211-mask-nested-A-MSDU-support-for-mesh.patch b/package/kernel/mac80211/patches/subsys/800-mac80211-mask-nested-A-MSDU-support-for-mesh.patch
new file mode 100644
index 0000000000..e7da94c9cd
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/800-mac80211-mask-nested-A-MSDU-support-for-mesh.patch
@@ -0,0 +1,33 @@
+From 313d8c18385f10957402b475f9b0c209ceab6c5a Mon Sep 17 00:00:00 2001
+From: David Bauer
+Date: Fri, 8 Oct 2021 00:25:19 +0200
+Subject: [PATCH] mac80211: mask nested A-MSDU support for mesh
+
+mac80211 incorrectly processes A-MSDUs contained in A-MPDU frames. This
+results in dropped packets and severely impacted throughput.
+
+As a workaround, don't indicate support for A-MSDUs contained in
+A-MPDUs. This improves throughput over mesh links by factor 10.
+
+Ref: https://github.com/openwrt/mt76/issues/450
+
+Signed-off-by: David Bauer
+---
+ net/mac80211/agg-rx.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/net/mac80211/agg-rx.c
++++ b/net/mac80211/agg-rx.c
+@@ -251,7 +251,11 @@ static void ieee80211_send_addba_resp(st
+ mgmt->u.action.u.addba_resp.action_code = WLAN_ACTION_ADDBA_RESP;
+ mgmt->u.action.u.addba_resp.dialog_token = dialog_token;
+
+- capab = u16_encode_bits(amsdu, IEEE80211_ADDBA_PARAM_AMSDU_MASK);
++ capab = 0;
++#ifdef CONFIG_MAC80211_MESH
++ if (!sta->mesh)
++#endif
++ capab = u16_encode_bits(amsdu, IEEE80211_ADDBA_PARAM_AMSDU_MASK);
+ capab |= u16_encode_bits(policy, IEEE80211_ADDBA_PARAM_POLICY_MASK);
+ capab |= u16_encode_bits(tid, IEEE80211_ADDBA_PARAM_TID_MASK);
+ capab |= u16_encode_bits(buf_size, IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK);
diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile
index c1c5f36535..628ea79ec9 100644
--- a/package/kernel/mt76/Makefile
+++ b/package/kernel/mt76/Makefile
@@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2022-09-15
-PKG_SOURCE_VERSION:=763a1d90133bfd2efae1a533d6b571d9802bcaa3
-PKG_MIRROR_HASH:=8adeab19ef8c7df146fa9568bc8aba9418840e543b49e1e79dee85ca70725fa4
+PKG_SOURCE_DATE:=2022-10-01
+PKG_SOURCE_VERSION:=72b87836d368685a093b927229209b61d8272541
+PKG_MIRROR_HASH:=ea4dfe93f7632d5063ac2ccf0f5a3698e2bfeadbbef45910381b5ef07e334cfc
PKG_MAINTAINER:=Felix Fietkau
PKG_USE_NINJA:=0
diff --git a/package/kernel/ubnt-ledbar/Makefile b/package/kernel/ubnt-ledbar/Makefile
new file mode 100644
index 0000000000..90eccf1c21
--- /dev/null
+++ b/package/kernel/ubnt-ledbar/Makefile
@@ -0,0 +1,34 @@
+#
+# Copyright (C) 2008-2010 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=ubnt-ledbar
+PKG_RELEASE:=1
+PKG_LICENSE:=GPL-2.0
+
+include $(INCLUDE_DIR)/package.mk
+
+define KernelPackage/leds-ubnt-ledbar
+ SUBMENU:=LED modules
+ TITLE:=Ubiquiti UniFi 6 LR LED support
+ FILES:= \
+ $(PKG_BUILD_DIR)/leds-ubnt-ledbar.ko
+ AUTOLOAD:=$(call AutoProbe,leds-ubnt-ledbar,1)
+ DEPENDS:=+kmod-i2c-core
+endef
+
+define KernelPackage/leds-ubnt-ledbar/description
+ LED support for some Ubiquiti UniFi access points.
+endef
+
+define Build/Compile
+ $(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules
+endef
+
+$(eval $(call KernelPackage,leds-ubnt-ledbar))
diff --git a/package/kernel/ubnt-ledbar/src/Makefile b/package/kernel/ubnt-ledbar/src/Makefile
new file mode 100644
index 0000000000..a81d9377c0
--- /dev/null
+++ b/package/kernel/ubnt-ledbar/src/Makefile
@@ -0,0 +1 @@
+obj-m := leds-ubnt-ledbar.o
diff --git a/target/linux/generic/files/drivers/leds/leds-ubnt-ledbar.c b/package/kernel/ubnt-ledbar/src/leds-ubnt-ledbar.c
similarity index 100%
rename from target/linux/generic/files/drivers/leds/leds-ubnt-ledbar.c
rename to package/kernel/ubnt-ledbar/src/leds-ubnt-ledbar.c
diff --git a/package/libs/libaudit/Makefile b/package/libs/libaudit/Makefile
index d0cca1350a..13263c7deb 100644
--- a/package/libs/libaudit/Makefile
+++ b/package/libs/libaudit/Makefile
@@ -11,7 +11,7 @@ PKG_RELEASE:=1
PKG_SOURCE_NAME:=audit
PKG_SOURCE:=$(PKG_SOURCE_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://people.redhat.com/sgrubb/audit
+PKG_SOURCE_URL:=https://people.redhat.com/sgrubb/audit
PKG_HASH:=0e5d4103646e00f8d1981e1cd2faea7a2ae28e854c31a803e907a383c5e2ecb7
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_NAME)-$(PKG_VERSION)
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_SOURCE_NAME)-$(PKG_VERSION)
diff --git a/package/libs/libcap/Makefile b/package/libs/libcap/Makefile
index b3ca20fd8a..afc66d7c09 100644
--- a/package/libs/libcap/Makefile
+++ b/package/libs/libcap/Makefile
@@ -6,12 +6,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libcap
-PKG_VERSION:=2.65
+PKG_VERSION:=2.66
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/libs/security/linux-privs/libcap2
-PKG_HASH:=73e350020cc31fe15360879d19384ffa3395a825f065fcf6bda3a5cdf965bebd
+PKG_HASH:=15c40ededb3003d70a283fe587a36b7d19c8b3b554e33f86129c059a4bb466b2
PKG_MAINTAINER:=Paul Wassi
PKG_LICENSE:=GPL-2.0-only
diff --git a/package/libs/libpcap/Makefile b/package/libs/libpcap/Makefile
index d5d9436994..a94a707648 100644
--- a/package/libs/libpcap/Makefile
+++ b/package/libs/libpcap/Makefile
@@ -12,7 +12,7 @@ PKG_VERSION:=1.10.1
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.tcpdump.org/release/
+PKG_SOURCE_URL:=https://www.tcpdump.org/release/
PKG_HASH:=ed285f4accaf05344f90975757b3dbfe772ba41d1c401c2648b7fa45b711bdd4
PKG_MAINTAINER:=Felix Fietkau
diff --git a/package/libs/libtraceevent/Makefile b/package/libs/libtraceevent/Makefile
index 9fb9304e76..c09197cc78 100644
--- a/package/libs/libtraceevent/Makefile
+++ b/package/libs/libtraceevent/Makefile
@@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libtraceevent
-PKG_VERSION:=1.6.2
+PKG_VERSION:=1.6.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/snapshot/
-PKG_HASH:=1aaeb12f5842a843a06b733e3f4230b0937ba9c2ecd39345edf6f66cc8cbe795
+PKG_HASH:=031e4428586788bb835d894f7f11c54e482764063d96ead303c7f208fb59e353
PKG_MAINTAINER:=Nick Hainke
diff --git a/package/libs/libtracefs/Makefile b/package/libs/libtracefs/Makefile
index 412c5fd122..55a2ab1d10 100644
--- a/package/libs/libtracefs/Makefile
+++ b/package/libs/libtracefs/Makefile
@@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libtracefs
-PKG_VERSION:=1.4.2
+PKG_VERSION:=1.5.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/snapshot/
-PKG_HASH:=8ad03e6d2a6227f6eb11692d9f04614d3da60ac6c5e4fe436e59b2bed90f031b
+PKG_HASH:=b796af4b6a0a6e6cd17ae150ed69adccc0b6401804e009b363fe7d982b04a58e
PKG_MAINTAINER:=Nick Hainke
diff --git a/package/libs/popt/Makefile b/package/libs/popt/Makefile
index 5b8b870111..ad767b8eed 100644
--- a/package/libs/popt/Makefile
+++ b/package/libs/popt/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=popt
-PKG_VERSION:=1.18
+PKG_VERSION:=1.19
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://ftp.rpm.org/popt/releases/popt-1.x/
-PKG_HASH:=5159bc03a20b28ce363aa96765f37df99ea4d8850b1ece17d1e6ad5c24fdc5d1
+PKG_HASH:=c25a4838fc8e4c1c8aacb8bd620edb3084a3d63bf8987fdad3ca2758c63240f9
PKG_LICENSE:=MIT
PKG_FIXUP:=autoreconf
diff --git a/package/libs/popt/patches/100-configure.ac-remove-require-gettext-version.patch b/package/libs/popt/patches/100-configure.ac-remove-require-gettext-version.patch
new file mode 100644
index 0000000000..24ad076433
--- /dev/null
+++ b/package/libs/popt/patches/100-configure.ac-remove-require-gettext-version.patch
@@ -0,0 +1,26 @@
+From 19d21b2d9e5aea5f73b1709b3c7803f920471146 Mon Sep 17 00:00:00 2001
+From: Nick Hainke
+Date: Sun, 25 Sep 2022 11:52:29 +0200
+Subject: [PATCH] configure.ac: remove require gettext version
+
+This breaks compilation with OpenWrt:
+./configure: line 13059: syntax error near unexpected token `0.19.8'
+./configure: line 13059: `AM_GNU_GETTEXT_REQUIRE_VERSION(0.19.8)'
+
+Fixes: bf8dd64e8aa0 ("Update gettext autoconf usage")
+
+Signed-off-by: Nick Hainke
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -53,7 +53,6 @@ AC_SEARCH_LIBS([setreuid], [ucb])
+ AC_CHECK_FUNCS([getuid geteuid iconv mtrace secure_getenv __secure_getenv setreuid setuid stpcpy strerror vasprintf srandom glob_pattern_p mbsrtowcs])
+
+ AM_GNU_GETTEXT_VERSION([0.19.8])
+-AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.8])
+ AM_GNU_GETTEXT([external])
+ AM_ICONV_LINK
+
diff --git a/package/libs/ustream-ssl/Makefile b/package/libs/ustream-ssl/Makefile
index a5e34a73b4..3181f66c7e 100644
--- a/package/libs/ustream-ssl/Makefile
+++ b/package/libs/ustream-ssl/Makefile
@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ustream-ssl
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/ustream-ssl.git
diff --git a/package/libs/wolfssl/Makefile b/package/libs/wolfssl/Makefile
index d090dd5780..08a1ca7401 100644
--- a/package/libs/wolfssl/Makefile
+++ b/package/libs/wolfssl/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wolfssl
-PKG_VERSION:=5.5.0-stable
+PKG_VERSION:=5.5.1-stable
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_VERSION)
-PKG_HASH:=c34b74b5f689fac7becb05583b044e84d3b10d39f38709f0095dd5d423ded67f
+PKG_HASH:=97339e6956c90e7c881ba5c748dd04f7c30e5dbe0c06da765418c51375a6dee3
PKG_FIXUP:=libtool libtool-abiver
PKG_INSTALL:=1
diff --git a/package/libs/wolfssl/patches/100-disable-hardening-check.patch b/package/libs/wolfssl/patches/100-disable-hardening-check.patch
index 01bb5974ba..bc5b27626f 100644
--- a/package/libs/wolfssl/patches/100-disable-hardening-check.patch
+++ b/package/libs/wolfssl/patches/100-disable-hardening-check.patch
@@ -1,6 +1,6 @@
--- a/wolfssl/wolfcrypt/settings.h
+++ b/wolfssl/wolfcrypt/settings.h
-@@ -2445,7 +2445,7 @@ extern void uITRON4_free(void *p) ;
+@@ -2454,7 +2454,7 @@ extern void uITRON4_free(void *p) ;
#endif
/* warning for not using harden build options (default with ./configure) */
diff --git a/package/libs/wolfssl/patches/200-ecc-rng.patch b/package/libs/wolfssl/patches/200-ecc-rng.patch
index d68ef7f385..bef2e60872 100644
--- a/package/libs/wolfssl/patches/200-ecc-rng.patch
+++ b/package/libs/wolfssl/patches/200-ecc-rng.patch
@@ -11,7 +11,7 @@ RNG regardless of the built settings for wolfssl.
--- a/wolfcrypt/src/ecc.c
+++ b/wolfcrypt/src/ecc.c
-@@ -12348,21 +12348,21 @@ void wc_ecc_fp_free(void)
+@@ -12505,21 +12505,21 @@ void wc_ecc_fp_free(void)
#endif /* FP_ECC */
@@ -37,7 +37,7 @@ RNG regardless of the built settings for wolfssl.
--- a/wolfssl/wolfcrypt/ecc.h
+++ b/wolfssl/wolfcrypt/ecc.h
-@@ -650,10 +650,8 @@ WOLFSSL_ABI WOLFSSL_API
+@@ -656,10 +656,8 @@ WOLFSSL_ABI WOLFSSL_API
void wc_ecc_fp_free(void);
WOLFSSL_LOCAL
void wc_ecc_fp_init(void);
diff --git a/package/network/config/qos-scripts/files/usr/bin/qos-start b/package/network/config/qos-scripts/files/usr/bin/qos-start
index 68dae70638..13d7772095 100755
--- a/package/network/config/qos-scripts/files/usr/bin/qos-start
+++ b/package/network/config/qos-scripts/files/usr/bin/qos-start
@@ -1,4 +1,4 @@
#!/bin/sh
-qos-stop
+qos-stop
/usr/lib/qos/generate.sh all | sh
diff --git a/package/network/config/qos-scripts/files/usr/bin/qos-stat b/package/network/config/qos-scripts/files/usr/bin/qos-stat
index 03b737c89d..454e18aa72 100755
--- a/package/network/config/qos-scripts/files/usr/bin/qos-stat
+++ b/package/network/config/qos-scripts/files/usr/bin/qos-stat
@@ -32,7 +32,7 @@ print_comments() {
echo '# Direction: '"$2"
echo '# Stats: '"$3"
echo ''
-}
+}
get_device() {
( config_load network; scan_interfaces; config_get "$1" ifname )
diff --git a/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh b/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh
index 62e7283633..13aa173d18 100755
--- a/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh
+++ b/package/network/config/qos-scripts/files/usr/lib/qos/generate.sh
@@ -2,11 +2,10 @@
[ -e /lib/functions.sh ] && . /lib/functions.sh || . ./functions.sh
[ -x /sbin/modprobe ] && {
insmod="modprobe"
- rmmod="$insmod -r"
} || {
insmod="insmod"
- rmmod="rmmod"
}
+rmmod="rmmod"
add_insmod() {
eval "export isset=\${insmod_$1}"
@@ -65,7 +64,7 @@ parse_matching_rule() {
append "$var" "${proto:+-p $proto}"
for option in $options; do
config_get value "$section" "$option"
-
+
case "$pkt:$option" in
*:srchost)
append "$var" "-s $value"
@@ -283,14 +282,14 @@ start_interface() {
config_get device "$iface" device
config_get_bool enabled "$iface" enabled 1
[ -z "$device" -o 1 -ne "$enabled" ] && {
- return 1
+ return 1
}
config_get upload "$iface" upload
config_get_bool halfduplex "$iface" halfduplex
config_get download "$iface" download
config_get classgroup "$iface" classgroup
config_get_bool overhead "$iface" overhead 0
-
+
download="${download:-${halfduplex:+$upload}}"
enum_classes "$classgroup"
for dir in ${halfduplex:-up} ${download:+down}; do
@@ -374,7 +373,7 @@ add_rules() {
local var="$1"
local rules="$2"
local prefix="$3"
-
+
for rule in $rules; do
unset iptrule
config_get target "$rule" target
@@ -438,7 +437,7 @@ EOF
for command in $iptables; do
cat <&- >&-
- done
+ /sbin/modprobe -qa slhc ppp_generic pppox pppoe
json_get_var mtu mtu
mtu="${mtu:-1492}"
@@ -269,9 +267,7 @@ proto_pppoa_setup() {
local config="$1"
local iface="$2"
- for module in slhc ppp_generic pppox pppoatm; do
- /sbin/insmod $module 2>&- >&-
- done
+ /sbin/modprobe -qa slhc ppp_generic pppox pppoatm
json_get_vars atmdev vci vpi encaps
@@ -318,13 +314,8 @@ proto_pptp_setup() {
exit 1
}
- local load
- for module in slhc ppp_generic ppp_async ppp_mppe ip_gre gre pptp; do
- grep -q "^$module " /proc/modules && continue
- /sbin/insmod $module 2>&- >&-
- load=1
- done
- [ "$load" = "1" ] && sleep 1
+ /sbin/modprobe -qa slhc ppp_generic ppp_async ppp_mppe ip_gre gre pptp
+ sleep 1
ppp_generic_setup "$config" \
plugin pptp.so \
@@ -342,4 +333,3 @@ proto_pptp_teardown() {
[ -f /usr/lib/pppd/*/pppoatm.so ] && add_protocol pppoa
[ -f /usr/lib/pppd/*/pptp.so ] && add_protocol pptp
}
-
diff --git a/package/network/utils/arptables/Makefile b/package/network/utils/arptables/Makefile
index 5083d1cd9b..7f32ed1395 100644
--- a/package/network/utils/arptables/Makefile
+++ b/package/network/utils/arptables/Makefile
@@ -10,7 +10,7 @@ PKG_VERSION:=0.0.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://ftp.netfilter.org/pub/arptables
+PKG_SOURCE_URL:=https://ftp.netfilter.org/pub/arptables
PKG_HASH:=4f9a0656ce5c90868f551cd4deeb2d04f33899667e1fb2818b64e432fe8f629c
PKG_LICENSE:=GPL-2.0
diff --git a/package/network/utils/ipset/Makefile b/package/network/utils/ipset/Makefile
index 65133d105c..f6ec5cf679 100644
--- a/package/network/utils/ipset/Makefile
+++ b/package/network/utils/ipset/Makefile
@@ -13,7 +13,7 @@ PKG_VERSION:=7.15
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://ipset.netfilter.org
+PKG_SOURCE_URL:=https://ipset.netfilter.org
PKG_HASH:=0a5545aaadb640142c1f888d366a78ddf8724799967fa20686a70053bd621751
PKG_MAINTAINER:=Jo-Philipp Wich
diff --git a/package/network/utils/tcpdump/Makefile b/package/network/utils/tcpdump/Makefile
index d6da50f25e..dc722f1ad4 100644
--- a/package/network/utils/tcpdump/Makefile
+++ b/package/network/utils/tcpdump/Makefile
@@ -12,7 +12,7 @@ PKG_VERSION:=4.99.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.tcpdump.org/release/
+PKG_SOURCE_URL:=https://www.tcpdump.org/release/
PKG_HASH:=79b36985fb2703146618d87c4acde3e068b91c553fb93f021a337f175fd10ebe
PKG_MAINTAINER:=Felix Fietkau
diff --git a/package/utils/bsdiff/Makefile b/package/utils/bsdiff/Makefile
index db1f320872..09e6f126f6 100644
--- a/package/utils/bsdiff/Makefile
+++ b/package/utils/bsdiff/Makefile
@@ -12,7 +12,7 @@ PKG_VERSION:=4.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.daemonology.net/bsdiff/
+PKG_SOURCE_URL:=https://www.daemonology.net/bsdiff/
PKG_HASH:=18821588b2dc5bf159aa37d3bcb7b885d85ffd1e19f23a0c57a58723fea85f48
PKG_MAINTAINER:=Hauke Mehrtens
HOST_BUILD_DEPENDS:=bzip2/host
@@ -27,7 +27,7 @@ define Package/bsdiff
CATEGORY:=Utilities
DEPENDS:=+libbz2
TITLE:=Binary diff tool
- URL:=http://www.daemonology.net/bsdiff/
+ URL:=https://www.daemonology.net/bsdiff/
endef
define Package/bspatch
@@ -35,7 +35,7 @@ define Package/bspatch
CATEGORY:=Utilities
DEPENDS:=+libbz2
TITLE:=Binary patch tool
- URL:=http://www.daemonology.net/bsdiff/
+ URL:=https://www.daemonology.net/bsdiff/
endef
diff --git a/package/utils/lua/Makefile b/package/utils/lua/Makefile
index 279759e972..9d7cc40671 100644
--- a/package/utils/lua/Makefile
+++ b/package/utils/lua/Makefile
@@ -12,8 +12,8 @@ PKG_VERSION:=5.1.5
PKG_RELEASE:=10
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.lua.org/ftp/ \
- http://www.tecgraf.puc-rio.br/lua/ftp/
+PKG_SOURCE_URL:=https://www.lua.org/ftp/ \
+ https://www.tecgraf.puc-rio.br/lua/ftp/
PKG_HASH:=2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333
PKG_BUILD_PARALLEL:=1
@@ -30,7 +30,7 @@ define Package/lua/Default
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua programming language
- URL:=http://www.lua.org/
+ URL:=https://www.lua.org/
MAINTAINER:=Jo-Philipp Wich
endef
diff --git a/package/utils/lua5.3/Makefile b/package/utils/lua5.3/Makefile
index 19f3b4dfda..9a707fbbab 100644
--- a/package/utils/lua5.3/Makefile
+++ b/package/utils/lua5.3/Makefile
@@ -12,8 +12,8 @@ PKG_VERSION:=5.3.5
PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.lua.org/ftp/ \
- http://www.tecgraf.puc-rio.br/lua/ftp/
+PKG_SOURCE_URL:=https://www.lua.org/ftp/ \
+ https://www.tecgraf.puc-rio.br/lua/ftp/
PKG_HASH:=0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac
PKG_BUILD_PARALLEL:=1
@@ -30,7 +30,7 @@ define Package/lua5.3/Default
SECTION:=lang
CATEGORY:=Languages
TITLE:=Lua programming language
- URL:=http://www.lua.org/
+ URL:=https://www.lua.org/
MAINTAINER:=Jo-Philipp Wich
endef
diff --git a/package/utils/px5g-wolfssl/Makefile b/package/utils/px5g-wolfssl/Makefile
index 95517c5c00..ea805acd8b 100644
--- a/package/utils/px5g-wolfssl/Makefile
+++ b/package/utils/px5g-wolfssl/Makefile
@@ -5,7 +5,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=px5g-wolfssl
-PKG_RELEASE:=$(COMMITCOUNT)
+PKG_RELEASE:=$(COMMITCOUNT).1
PKG_LICENSE:=GPL-2.0-or-later
PKG_USE_MIPS16:=0
diff --git a/package/utils/uencrypt/Makefile b/package/utils/uencrypt/Makefile
index 9307f97b6e..023c84b600 100644
--- a/package/utils/uencrypt/Makefile
+++ b/package/utils/uencrypt/Makefile
@@ -4,7 +4,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=uencrypt
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_FLAGS:=nonshared
PKG_LICENSE:=GPL-2.0-or-later
diff --git a/rules.mk b/rules.mk
index 2072658e78..2de43d490d 100644
--- a/rules.mk
+++ b/rules.mk
@@ -257,9 +257,6 @@ ESED:=$(STAGING_DIR_HOST)/bin/sed -E -i -e
MKHASH:=$(STAGING_DIR_HOST)/bin/mkhash
# MKHASH is used in /scripts, so we export it here.
export MKHASH
-# DOWNLOAD_CHECK_CERTIFICATE is used in /scripts, so we export it here.
-DOWNLOAD_CHECK_CERTIFICATE:=$(CONFIG_DOWNLOAD_CHECK_CERTIFICATE)
-export DOWNLOAD_CHECK_CERTIFICATE
CP:=cp -fpR
LN:=ln -sf
XARGS:=xargs -r
diff --git a/scripts/download.pl b/scripts/download.pl
index 33ce1fa679..9c089760f7 100755
--- a/scripts/download.pl
+++ b/scripts/download.pl
@@ -70,29 +70,30 @@ sub hash_cmd() {
return undef;
}
+sub tool_present {
+ my $tool_name = shift;
+ my $compare_line = shift;
+ my $present = 0;
+
+ if (open TOOL, "$tool_name --version 2>/dev/null |") {
+ if (defined(my $line = readline TOOL)) {
+ $present = 1 if $line =~ /^$compare_line /;
+ }
+ close TOOL;
+ }
+
+ return $present
+}
+
sub download_cmd {
my $url = shift;
- my $have_curl = 0;
- my $have_aria2c = 0;
my $filename = shift;
my $additional_mirrors = join(" ", map "$_/$filename", @_);
my @chArray = ('a'..'z', 'A'..'Z', 0..9);
my $rfn = join '', "${filename}_", map{ $chArray[int rand @chArray] } 0..9;
- if (open CURL, '-|', 'curl', '--version') {
- if (defined(my $line = readline CURL)) {
- $have_curl = 1 if $line =~ /^curl /;
- }
- close CURL;
- }
- if (open ARIA2C, '-|', 'aria2c', '--version') {
- if (defined(my $line = readline ARIA2C)) {
- $have_aria2c = 1 if $line =~ /^aria2 /;
- }
- close ARIA2C;
- }
- if ($have_aria2c) {
+ if (tool_present('aria2c', 'aria2')) {
@mirrors=();
return join(" ", "[ -d $ENV{'TMPDIR'}/aria2c ] || mkdir $ENV{'TMPDIR'}/aria2c;",
"touch $ENV{'TMPDIR'}/aria2c/${rfn}_spp;",
@@ -103,7 +104,7 @@ sub download_cmd {
"-d $ENV{'TMPDIR'}/aria2c -o $rfn;",
"cat $ENV{'TMPDIR'}/aria2c/$rfn;",
"rm $ENV{'TMPDIR'}/aria2c/$rfn $ENV{'TMPDIR'}/aria2c/${rfn}_spp");
- } elsif ($have_curl) {
+ } elsif (tool_present('curl', 'curl')) {
return (qw(curl -f --connect-timeout 20 --retry 5 --location),
$check_certificate ? () : '--insecure',
shellwords($ENV{CURL_OPTIONS} || ''),
@@ -236,6 +237,8 @@ foreach my $mirror (@ARGV) {
push @mirrors, "https://ftp.debian.org/debian/$1";
push @mirrors, "https://mirror.leaseweb.com/debian/$1";
push @mirrors, "https://mirror.netcologne.de/debian/$1";
+ push @mirrors, "https://mirrors.tuna.tsinghua.edu.cn/debian/$1";
+ push @mirrors, "https://mirrors.ustc.edu.cn/debian/$1"
} elsif ($mirror =~ /^\@APACHE\/(.+)$/) {
push @mirrors, "https://mirrors.tencent.com/apache/$1";
push @mirrors, "https://mirrors.aliyun.com/apache/$1";
@@ -250,6 +253,8 @@ foreach my $mirror (@ARGV) {
push @mirrors, "http://ftp.jaist.ac.jp/pub/apache/$1";
push @mirrors, "ftp://apache.cs.utah.edu/apache.org/$1";
push @mirrors, "ftp://apache.mirrors.ovh.net/ftp.apache.org/dist/$1";
+ push @mirrors, "https://mirrors.tuna.tsinghua.edu.cn/apache/$1";
+ push @mirrors, "https://mirrors.ustc.edu.cn/apache/$1";
} elsif ($mirror =~ /^\@GITHUB\/(.+)$/) {
my $dir = $1;
my $i = 0;
@@ -276,6 +281,8 @@ foreach my $mirror (@ARGV) {
push @mirrors, "ftp://mirrors.rit.edu/gnu/$1";
push @mirrors, "ftp://download.xs4all.nl/pub/gnu/$1";
push @mirrors, "https://ftp.gnu.org/gnu/$1";
+ push @mirrors, "https://mirrors.tuna.tsinghua.edu.cn/gnu/$1";
+ push @mirrors, "https://mirrors.ustc.edu.cn/gnu/$1";
} elsif ($mirror =~ /^\@SAVANNAH\/(.+)$/) {
push @mirrors, "https://mirror.netcologne.de/savannah/$1";
push @mirrors, "https://mirror.csclub.uwaterloo.ca/nongnu/$1";
@@ -301,6 +308,8 @@ foreach my $mirror (@ARGV) {
push @mirrors, "http://www.ring.gr.jp/archives/linux/kernel.org/$dir";
push @mirrors, "ftp://ftp.riken.jp/Linux/kernel.org/$dir";
push @mirrors, "ftp://www.mirrorservice.org/sites/ftp.kernel.org/pub/$dir";
+ push @mirrors, "https://mirrors.tuna.tsinghua.edu.cn/kernel/$dir";
+ push @mirrors, "https://mirrors.ustc.edu.cn/kernel.org/$dir";
}
} elsif ($mirror =~ /^\@GNOME\/(.+)$/) {
# push @mirrors, "https://mirrors.ustc.edu.cn/gnome/sources/$1";
@@ -313,6 +322,7 @@ foreach my $mirror (@ARGV) {
push @mirrors, "http://ftp.belnet.be/ftp.gnome.org/sources/$1";
push @mirrors, "ftp://ftp.cse.buffalo.edu/pub/Gnome/sources/$1";
push @mirrors, "ftp://ftp.nara.wide.ad.jp/pub/X11/GNOME/sources/$1";
+ push @mirrors, "https://mirrors.ustc.edu.cn/gnome/sources/$1";
} else {
push @mirrors, $mirror;
}
diff --git a/scripts/ext-tools.sh b/scripts/ext-tools.sh
new file mode 100755
index 0000000000..bf56f4d9ed
--- /dev/null
+++ b/scripts/ext-tools.sh
@@ -0,0 +1,98 @@
+#!/usr/bin/env bash
+
+TOOLS_TAR=""
+HOST_BUILD_DIR=$(pwd)/"build_dir/host"
+HOST_STAGING_DIR_STAMP=$(pwd)/"staging_dir/host/stamp"
+
+refresh_timestamps() {
+ find "$1" -not -type l -print0 | xargs -0 touch
+}
+
+extract_prebuilt_tar() {
+ tar -xf "$1"
+}
+
+install_prebuilt_tools() {
+ extract_prebuilt_tar "$TOOLS_TAR"
+
+ if [ ! -d "$HOST_BUILD_DIR" ]; then
+ echo "Can't find Host Build Dir "$HOST_BUILD_DIR"" >&2
+ exit 1
+ fi
+
+ refresh_timestamps "$HOST_BUILD_DIR"
+ sleep 1
+
+ if [ ! -d "$HOST_STAGING_DIR_STAMP" ]; then
+ echo "Can't find Host Staging Dir Stamp "$HOST_STAGING_DIR_STAMP"" >&2
+ exit 1
+ fi
+
+ refresh_timestamps "$HOST_STAGING_DIR_STAMP"
+
+ return 0
+}
+
+while [ -n "$1" ]; do
+ arg="$1"; shift
+ case "$arg" in
+ --host-build-dir)
+ [ -d "$1" ] || {
+ echo "Directory '$1' does not exist." >&2
+ exit 1
+ }
+ HOST_BUILD_DIR="$(cd "$1"; pwd)"; shift
+ ;;
+
+ --host-staging-dir-stamp)
+ [ -d "$1" ] || {
+ echo "Directory '$1' does not exist." >&2
+ exit 1
+ }
+ HOST_STAGING_DIR_STAMP="$(cd "$1"; pwd)"; shift
+ ;;
+
+ --tools)
+ [ -f "$1" ] || {
+ echo "Tools tar file '$1' does not exist." >&2
+ exit 1
+ }
+ TOOLS_TAR="$1"; shift
+ install_prebuilt_tools
+
+ exit $?
+ ;;
+
+ -h|--help)
+ me="$(basename "$0")"
+ echo -e "\nUsage:\n" >&2
+ echo -e " $me --host-build-dir {directory}" >&2
+ echo -e " Set to refresh timestamp of this build directory" >&2
+ echo -e " with --tools." >&2
+ echo -e " THIS OPTION MUST BE SET BEFORE --tools." >&2
+ echo -e " If not provided the default directory is:" >&2
+ echo -e " $(pwd)/build_dir/host\n" >&2
+ echo -e " $me --host-staging-dir-stamp {directory}" >&2
+ echo -e " Set to refresh staging timestamp present in this" >&2
+ echo -e " directory with --tools." >&2
+ echo -e " THIS OPTION MUST BE SET BEFORE --tools." >&2
+ echo -e " If not provided the default directory is:" >&2
+ echo -e " $(pwd)/staging_dir/host/stamp\n" >&2
+ echo -e " $me --tools {tar}" >&2
+ echo -e " Install the prebuilt tools present in the passed" >&2
+ echo -e " tar and prepare them." >&2
+ echo -e " To correctly use them it's needed to update the." >&2
+ echo -e " timestamp of each tools to skip recompilation.\n" >&2
+ echo -e " $me --help" >&2
+ echo -e " Display this help text and exit.\n\n" >&2
+ exit 1
+ ;;
+
+ *)
+ echo "Unknown argument '$arg'" >&2
+ exec $0 --help
+ ;;
+ esac
+done
+
+exec $0 --help
diff --git a/target/linux/Makefile b/target/linux/Makefile
index a939d42bc0..8eea40ee18 100644
--- a/target/linux/Makefile
+++ b/target/linux/Makefile
@@ -8,4 +8,4 @@ include $(INCLUDE_DIR)/target.mk
export TARGET_BUILD=1
prereq clean download prepare compile install oldconfig menuconfig nconfig xconfig update refresh: FORCE
- @+$(NO_TRACE_MAKE) -C $(BOARD) $@
+ @+$(NO_TRACE_MAKE) -C $(firstword $(wildcard feeds/$(BOARD) $(BOARD))) $@
diff --git a/target/linux/ath79/config-5.10 b/target/linux/ath79/config-5.10
index bdc4b74508..ac903aee6d 100644
--- a/target/linux/ath79/config-5.10
+++ b/target/linux/ath79/config-5.10
@@ -82,7 +82,6 @@ CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HZ_PERIODIC=y
-CONFIG_IMAGE_CMDLINE_HACK=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_IRQCHIP=y
CONFIG_IRQ_DOMAIN=y
diff --git a/target/linux/ath79/dts/qca9557_extreme-networks_ws-ap3805i.dts b/target/linux/ath79/dts/qca9557_extreme-networks_ws-ap3805i.dts
index 8b1477b593..59dd83d5f8 100644
--- a/target/linux/ath79/dts/qca9557_extreme-networks_ws-ap3805i.dts
+++ b/target/linux/ath79/dts/qca9557_extreme-networks_ws-ap3805i.dts
@@ -7,7 +7,7 @@
/ {
compatible = "extreme-networks,ws-ap3805i", "qca,qca9557";
- model = "Extreme Networks AP3805i";
+ model = "Extreme Networks WS-AP3805i";
aliases {
led-boot = &led_power_green;
diff --git a/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts b/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts
index 6cd8ba4578..a9c03b7eda 100644
--- a/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts
+++ b/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts
@@ -40,6 +40,10 @@
keys {
compatible = "gpio-keys";
+ pinctrl-names = "default";
+ /* GPIO1 (poe_pass) and GPIO2 (watchdog) requires jtag disabled */
+ pinctrl-0 = <&jtag_disable_pins>;
+
reset {
label = "Reset";
linux,code = ;
diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
index 1955cd288f..0773f1a5af 100644
--- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
+++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
@@ -65,7 +65,7 @@
#define AG71XX_TX_RING_SIZE_DEFAULT 128
#define AG71XX_RX_RING_SIZE_DEFAULT 256
-#define AG71XX_TX_RING_SIZE_MAX 128
+#define AG71XX_TX_RING_SIZE_MAX 256
#define AG71XX_RX_RING_SIZE_MAX 256
#ifdef CONFIG_AG71XX_DEBUG
diff --git a/target/linux/ath79/patches-5.10/0003-leds-add-reset-controller-based-driver.patch b/target/linux/ath79/patches-5.10/0003-leds-add-reset-controller-based-driver.patch
index 7505f682ab..4a721f2af2 100644
--- a/target/linux/ath79/patches-5.10/0003-leds-add-reset-controller-based-driver.patch
+++ b/target/linux/ath79/patches-5.10/0003-leds-add-reset-controller-based-driver.patch
@@ -13,9 +13,9 @@ Signed-off-by: John Crispin
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
-@@ -941,6 +941,17 @@ config LEDS_UBNT_LEDBAR
- To compile this driver as a module, choose M here: the module
- will be called leds-ubnt-ledbar.
+@@ -931,6 +931,17 @@ config LEDS_ACER_A500
+
+ source "drivers/leds/blink/Kconfig"
+config LEDS_RESET
+ tristate "LED support for reset-controller API"
@@ -176,10 +176,10 @@ Signed-off-by: John Crispin
+MODULE_ALIAS("platform:leds-reset");
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
-@@ -94,6 +94,7 @@ obj-$(CONFIG_LEDS_WM831X_STATUS) += leds
+@@ -93,6 +93,7 @@ obj-$(CONFIG_LEDS_TURRIS_OMNIA) += leds
+ obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o
obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
- obj-$(CONFIG_LEDS_UBNT_LEDBAR) += leds-ubnt-ledbar.o
+obj-$(CONFIG_LEDS_RESET) += leds-reset.o
# LED SPI Drivers
diff --git a/target/linux/ath79/patches-5.10/0034-MIPS-ath79-ath9k-exports.patch b/target/linux/ath79/patches-5.10/0034-MIPS-ath79-ath9k-exports.patch
index 71acc22210..e460fe58f3 100644
--- a/target/linux/ath79/patches-5.10/0034-MIPS-ath79-ath9k-exports.patch
+++ b/target/linux/ath79/patches-5.10/0034-MIPS-ath79-ath9k-exports.patch
@@ -1,3 +1,12 @@
+From: John Crispin
+Subject: [PATCH] ath79: make ahb wifi work
+
+Submitted-by: John Crispin
+---
+ arch/mips/ath79/common.c | 3 +++
+ mips/include/asm/mach-ath79/ath79.h | 1+
+ 1 file changed, 4 insertions(+)
+
--- a/arch/mips/ath79/common.c
+++ b/arch/mips/ath79/common.c
@@ -31,11 +31,13 @@ EXPORT_SYMBOL_GPL(ath79_ddr_freq);
diff --git a/target/linux/ath79/patches-5.10/0036-MIPS-ath79-remove-irq-code-from-pci.patch b/target/linux/ath79/patches-5.10/0036-MIPS-ath79-remove-irq-code-from-pci.patch
index 80fcd0a7f5..4732d1b2c8 100644
--- a/target/linux/ath79/patches-5.10/0036-MIPS-ath79-remove-irq-code-from-pci.patch
+++ b/target/linux/ath79/patches-5.10/0036-MIPS-ath79-remove-irq-code-from-pci.patch
@@ -1,3 +1,13 @@
+From: John Crispin
+Subject: ath79: fix remove irq code from pci driver patch
+
+This patch got mangled in the void while rebasing it.
+
+Submitted-by: John Crispin
+---
+ arch/mips/pci/pci-ar71xx.c | 107 ------------------
+ 1 file changed, 141 deletions(-)
+
--- a/arch/mips/pci/pci-ar71xx.c
+++ b/arch/mips/pci/pci-ar71xx.c
@@ -51,11 +51,9 @@
diff --git a/target/linux/ath79/patches-5.10/0037-missing-registers.patch b/target/linux/ath79/patches-5.10/0037-missing-registers.patch
index 9067e4ca7b..0e6ac52ade 100644
--- a/target/linux/ath79/patches-5.10/0037-missing-registers.patch
+++ b/target/linux/ath79/patches-5.10/0037-missing-registers.patch
@@ -1,6 +1,5 @@
-commit f3ffac90bc7266b7d917616f3233f58e8c08a196
-Author: Christian Lamparter
-Date: Fri Aug 10 23:24:47 2018 +0200
+From: Christian Lamparter
+Subject: [PATCH] ath79: gmac: add parsers for rxd(v)- and tx(d|en)-delay for
ath79: gmac: add parsers for rxd(v)- and tx(d|en)-delay for AR9344
diff --git a/target/linux/ath79/patches-5.10/0039-MIPS-ath79-export-UART1-reference-clock.patch b/target/linux/ath79/patches-5.10/0039-MIPS-ath79-export-UART1-reference-clock.patch
index edf888c7e7..b24ff21692 100644
--- a/target/linux/ath79/patches-5.10/0039-MIPS-ath79-export-UART1-reference-clock.patch
+++ b/target/linux/ath79/patches-5.10/0039-MIPS-ath79-export-UART1-reference-clock.patch
@@ -1,3 +1,18 @@
+From: Daniel Golle
+Subject: [PATCH] ath79: add support for Atheros AR934x HS UART
+
+AR934x chips also got the 'old' qca,ar9330-uart in addition to the
+'new' ns16550a compatible one. Add support for UART1 clock selector as
+well as device-tree bindings in ar934x.dtsi to make use of that uart.
+
+Reported-by: Piotr Dymacz
+Submitted-by: Daniel Golle
+---
+ arch/mips/ath79/clock.c | 7 +++++++
+ .../mips/include/asm/mach-ath79/ar71xx_regs.h | 1 +
+ include/dt-bindings/clock/ath79-clk.h | 3 ++-
+ 3 files changed, 10 insertions(+), 1 deletion(-)
+
--- a/arch/mips/ath79/clock.c
+++ b/arch/mips/ath79/clock.c
@@ -40,6 +40,7 @@ static const char * const clk_names[ATH7
diff --git a/target/linux/ath79/patches-5.10/004-register_gpio_driver_earlier.patch b/target/linux/ath79/patches-5.10/004-register_gpio_driver_earlier.patch
index 4a2a3b741d..154de918a5 100644
--- a/target/linux/ath79/patches-5.10/004-register_gpio_driver_earlier.patch
+++ b/target/linux/ath79/patches-5.10/004-register_gpio_driver_earlier.patch
@@ -1,6 +1,14 @@
+From: John Crispin
+Subject: ath79: Register GPIO driver earlier
+
HACK: register the GPIO driver earlier to ensure that gpio_request calls
from mach files succeed.
+Submitted-by: John Crispin
+---
+ drivers/gpio/gpio-ath79.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
--- a/drivers/gpio/gpio-ath79.c
+++ b/drivers/gpio/gpio-ath79.c
@@ -306,7 +306,11 @@ static struct platform_driver ath79_gpio
diff --git a/target/linux/ath79/patches-5.10/0040-ath79-sgmii-config.patch b/target/linux/ath79/patches-5.10/0040-ath79-sgmii-config.patch
index bf7cbf2716..4c2b94899a 100644
--- a/target/linux/ath79/patches-5.10/0040-ath79-sgmii-config.patch
+++ b/target/linux/ath79/patches-5.10/0040-ath79-sgmii-config.patch
@@ -1,3 +1,24 @@
+From: David Bauer
+Subject: [PATCH] ath79: force SGMII SerDes mode to MAC operation
+
+The mode on the SGMII SerDes on the QCA9563 is 1000 Base-X by default.
+This only allows for 1000 Mbit/s links, however when used with an SGMII
+PHY in 100 Mbit/s link mode, the link remains dead.
+
+This strictly has nothing to do with the SerDes calibration, however it
+is done at the same point in the QCA reference U-Boot which is the
+blueprint for everything happening here. As the current state is more or
+less a hack, this should be fine.
+
+This fixes the issues outlined above on a TP-Link EAP-225 Outdoor.
+
+Reported-by: Tom Herbers
+Tested-by: Tom Herbers
+Submitted-by: David Bauer
+---
+ arch/mips/include/asm/mach-ath79/ar71xx_regs.h | 1 +
+ 1 files changed, 1 insertion(+)
+
--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
+++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
@@ -1376,5 +1376,6 @@
diff --git a/target/linux/ath79/patches-5.10/404-mtd-cybertan-trx-parser.patch b/target/linux/ath79/patches-5.10/404-mtd-cybertan-trx-parser.patch
index 923589661e..cfc017871f 100644
--- a/target/linux/ath79/patches-5.10/404-mtd-cybertan-trx-parser.patch
+++ b/target/linux/ath79/patches-5.10/404-mtd-cybertan-trx-parser.patch
@@ -1,3 +1,21 @@
+From: Christian Lamparter
+Subject: [PATCH] ath79: port cybertan_part from ar71xx
+
+This patch ports the cybertan_part code from ar71xx and converts the
+driver to a DT-supported mtd parser. As a result, it will no longer
+add the u-boot, nvram and art partitions, which were never part of
+the special Cybertan header.
+
+Instead these partitions have to be specified in the DT, which has the
+upside of making it possible to add properties (i.e.: read-only), labels
+and references to these important partitions.
+
+Submitted-by: Christian Lamparter
+---
+ drivers/mtd/parsers/Makefile | 1 +
+ drivers/mtd/parsers/Kconfig | 8 ++++++++
+ 2 files changed, 9 insertions(+)
+
--- a/drivers/mtd/parsers/Makefile
+++ b/drivers/mtd/parsers/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
diff --git a/target/linux/ath79/patches-5.10/420-net-use-downstream-ag71xx.patch b/target/linux/ath79/patches-5.10/420-net-use-downstream-ag71xx.patch
index 7ce3f0d29c..65867c1cd5 100644
--- a/target/linux/ath79/patches-5.10/420-net-use-downstream-ag71xx.patch
+++ b/target/linux/ath79/patches-5.10/420-net-use-downstream-ag71xx.patch
@@ -1,3 +1,16 @@
+From: John Crispin
+Subject: [PATCH] ath79: add new OF only target for QCA MIPS silicon
+
+This target aims to replace ar71xx mid-term. The big part that is still
+missing is making the MMIO/AHB wifi work using OF. NAND and mikrotik
+subtargets will follow.
+
+Submitted-by: John Crispin
+---
+ drivers/net/ethernet/atheros/Kconfig | 8 +-------
+ drivers/net/ethernet/atheros/Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 8 deletions(-)
+
--- a/drivers/net/ethernet/atheros/Kconfig
+++ b/drivers/net/ethernet/atheros/Kconfig
@@ -17,13 +17,7 @@ config NET_VENDOR_ATHEROS
diff --git a/target/linux/ath79/patches-5.10/425-at803x-allow-sgmii-aneg-override.patch b/target/linux/ath79/patches-5.10/425-at803x-allow-sgmii-aneg-override.patch
index bf224b5f47..92c64ac9c4 100644
--- a/target/linux/ath79/patches-5.10/425-at803x-allow-sgmii-aneg-override.patch
+++ b/target/linux/ath79/patches-5.10/425-at803x-allow-sgmii-aneg-override.patch
@@ -1,3 +1,19 @@
+From: David Bauer
+Subject: [PATCH] ath79: allow to override AR8033 SGMII aneg status
+
+In order to make the QCA955x SGMII workaround work, the unsuccessful
+SGMII autonegotiation on the AR8033 should not block the PHY
+state-machine.
+
+Otherwise, the ag71xx driver never becomes aware of the copper-side
+link-establishment and the workaround is never executed.
+
+Submitted-by: David Bauer
+Submitted-by: Adrian Schmutzler
+---
+ drivers/net/phy/at803x.c-override.patch | 7 +++++++
+ 1 files changed, 7 insertions(+)
+
--- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c
@@ -830,6 +830,13 @@ static int at803x_aneg_done(struct phy_d
diff --git a/target/linux/ath79/patches-5.10/430-drivers-link-spi-before-mtd.patch b/target/linux/ath79/patches-5.10/430-drivers-link-spi-before-mtd.patch
index 7590793dc9..cba537408a 100644
--- a/target/linux/ath79/patches-5.10/430-drivers-link-spi-before-mtd.patch
+++ b/target/linux/ath79/patches-5.10/430-drivers-link-spi-before-mtd.patch
@@ -1,3 +1,11 @@
+From: Gabor Juhos
+Subject: [PATCH] ar71xx: Link SPI before MTD
+
+SVN-Revision: 22863
+---
+ drivers/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -81,8 +81,8 @@ obj-y += scsi/
diff --git a/target/linux/ath79/patches-5.10/440-mtd-ar934x-nand-driver.patch b/target/linux/ath79/patches-5.10/440-mtd-ar934x-nand-driver.patch
index 1e2d573ebf..366cf5118e 100644
--- a/target/linux/ath79/patches-5.10/440-mtd-ar934x-nand-driver.patch
+++ b/target/linux/ath79/patches-5.10/440-mtd-ar934x-nand-driver.patch
@@ -1,3 +1,12 @@
+From: Gabor Juhos
+Subject: ar71xx: ar934x_nfc: experimental NAND Flash Controller driver for AR934x
+
+SVN-Revision: 33385
+---
+ drivers/mtd/nand/raw/Kconfig | 8 ++++++++
+ drivers/mtd/nand/raw/Makefile | 1 +
+ 2 files changed, 9 insertions(+)
+
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -556,4 +556,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE
diff --git a/target/linux/ath79/patches-5.10/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch b/target/linux/ath79/patches-5.10/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch
index 924faec509..3b8fee2269 100644
--- a/target/linux/ath79/patches-5.10/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch
+++ b/target/linux/ath79/patches-5.10/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch
@@ -1,3 +1,14 @@
+From: Gabor Juhos
+Subject: [PATCH] ar71xx: swizzle address for PCI byte/word access on AR71xx
+
+Closes #11683.
+
+SVN-Revision: 32639
+---
+ .../mips/include/asm/mach-ath79/mangle-port.h | 111 ++++++++++++++++++
+ 1 file changed, 111 insertions(+)
+ create mode 100644 arch/mips/include/asm/mach-ath79/mangle-port.h
+
--- /dev/null
+++ b/arch/mips/include/asm/mach-ath79/mangle-port.h
@@ -0,0 +1,37 @@
diff --git a/target/linux/ath79/patches-5.10/600-of_net-add-mac-address-ascii-support.patch b/target/linux/ath79/patches-5.10/600-of_net-add-mac-address-ascii-support.patch
index 1788419c70..7f95852c7e 100644
--- a/target/linux/ath79/patches-5.10/600-of_net-add-mac-address-ascii-support.patch
+++ b/target/linux/ath79/patches-5.10/600-of_net-add-mac-address-ascii-support.patch
@@ -1,3 +1,14 @@
+From: Yousong Zhou
+Subject: [PATCH] ath79: add nvmem cell mac-address-ascii support
+
+This is needed for devices with mac address stored in ascii format, e.g.
+HiWiFi HC6361 to be ported in the following patch.
+
+Submitted-by: Yousong Zhou
+---
+ net/ethernet/eth.c | 83 ++++++++++++------
+ 1 files changed, 72 insertions(+), 11 deletions(-)
+
--- a/net/ethernet/eth.c
+++ b/net/ethernet/eth.c
@@ -545,6 +545,63 @@ int eth_platform_get_mac_address(struct
diff --git a/target/linux/ath79/patches-5.10/900-mdio_bitbang_ignore_ta_value.patch b/target/linux/ath79/patches-5.10/900-mdio_bitbang_ignore_ta_value.patch
index 928f241abd..d35b53638a 100644
--- a/target/linux/ath79/patches-5.10/900-mdio_bitbang_ignore_ta_value.patch
+++ b/target/linux/ath79/patches-5.10/900-mdio_bitbang_ignore_ta_value.patch
@@ -1,3 +1,15 @@
+From: Jonas Gorski
+Subject: ar71xx: add a workaround for ar8316 not always driving the TA bit to low
+
+AR8316 behind a GPIO bitbanged MDIO bus fails to drive the turnaround bit
+to low despite returning a valid value. Ignore it and just use the
+returned value anyway.
+
+SVN-Revision: 28422
+---
+ drivers/net/mdio/mdio-bitbang.c | 16 ++-----------------
+ 1 file changed, 2 insertions(+), 14 deletions(-)
+
--- a/drivers/net/mdio/mdio-bitbang.c
+++ b/drivers/net/mdio/mdio-bitbang.c
@@ -152,7 +152,7 @@ static int mdiobb_cmd_addr(struct mdiobb
diff --git a/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch
index 07cfb6f4e6..977f394a62 100644
--- a/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch
@@ -1,3 +1,47 @@
+From: Felix Fietkau
+Subject: [PATCH] ar71xx: fix unaligned access in a few more places
+
+SVN-Revision: 35130
+---
+ arch/mips/include/asm/checksum.h | 83 +++---------------
+ include/uapi/linux/ip.h | 2 +-
+ include/uapi/linux/ipv6.h | 2 +-
+ include/uapi/linux/tcp.h | 4 ++--
+ include/uapi/linux/udp.h | 2 +-
+ net/netfilter/nf_conntrack_core.c | 4 ++--
+ include/uapi/linux/icmp.h | 2 +-
+ include/uapi/linux/in6.h | 2 +-
+ net/ipv6/tcp_ipv6.c | 9 +++--
+ net/ipv6/datagram.c | 6 ++--
+ net/ipv6/exthdrs.c | 2 +-
+ include/linux/types.h | 5 +++
+ net/ipv4/af_inet.c | 4 ++--
+ net/ipv4/tcp_output.c | 69 +++++++++--------
+ include/uapi/linux/igmp.h | 8 +++---
+ net/core/flow_dissector.c | 2 +-
+ include/uapi/linux/icmpv6.h | 2 +-
+ include/net/ndisc.h | 10 ++++----
+ net/sched/cls_u32.c | 6 +++---
+ net/ipv6/ip6_offload.c | 2 +-
+ include/net/addrconf.h | 2 +-
+ include/net/inet_ecn.h | 4 ++--
+ include/net/ipv6.h | 23 +++++----
+ include/net/secure_seq.h | 1 +
+ include/uapi/linux/in.h | 2 +-
+ net/ipv6/ip6_fib.h | 2 +-
+ net/netfilter/nf_conntrack_proto_tcp.c | 2 +-
+ net/xfrm/xfrm_input.c | 4 ++--
+ net/ipv4/tcp_input.c | 12 ++++---
+ include/uapi/linux/if_pppox.h | 1 +
+ net/ipv6/netfilter/nf_log_ipv6.c | 4 ++--
+ include/net/neighbour.h | 6 +++--
+ include/uapi/linux/netfilter_arp/arp_tables.h | 2 +-
+ net/core/utils.c | 10 +++++--
+ include/linux/etherdevice.h | 11 ++++---
+ net/ipv4/tcp_offload.c | 6 +++---
+ net/ipv6/netfilter/ip6table_mangle.c | 4 ++--
+ 37 file changed, 171 insertions(+), 141 deletions(-)
+
--- a/arch/mips/include/asm/checksum.h
+++ b/arch/mips/include/asm/checksum.h
@@ -100,26 +100,30 @@ static inline __sum16 ip_fast_csum(const
@@ -229,16 +273,6 @@
}
#ifdef CONFIG_TCP_MD5SIG
---- a/include/linux/ipv6.h
-+++ b/include/linux/ipv6.h
-@@ -6,6 +6,7 @@
-
- #define ipv6_optlen(p) (((p)->hdrlen+1) << 3)
- #define ipv6_authlen(p) (((p)->hdrlen+2) << 2)
-+
- /*
- * This structure contains configuration options per IPv6 link.
- */
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
@@ -492,7 +492,7 @@ int ipv6_recv_error(struct sock *sk, str
diff --git a/target/linux/ath79/patches-5.10/920-mikrotik-rb4xx.patch b/target/linux/ath79/patches-5.10/920-mikrotik-rb4xx.patch
index 4ed13deb5c..5cd522cacb 100644
--- a/target/linux/ath79/patches-5.10/920-mikrotik-rb4xx.patch
+++ b/target/linux/ath79/patches-5.10/920-mikrotik-rb4xx.patch
@@ -1,3 +1,48 @@
+From: Christopher Hill
+Subject: [PATCH] ath79: add Mikrotik rb4xx series drivers
+
+This adds 3 Mikrotik rb4xx series drivers as follows:
+
+rb4xx-cpld: This is in the mfd subsystem, and is the parent CPLD device
+that interfaces between the SoC SPI bus and its two children below.
+rb4xx-gpio: This is the GPIO expander.
+rb4xx-nand: This is the NAND driver.
+
+The history of this code comes in three phases.
+
+1. The first is a May 2015 attempt to push the equivalient ar71xx rb4xx
+drivers upstream. See https://lore.kernel.org/patchwork/patch/940880/.
+
+Module-author: Gabor Juhos
+Module-author: Imre Kaloz
+Module-author: Bert Vermeulen
+
+2. Next several ar71xx patches were applied bringing the code current.
+
+commit 7bbf4117c6fe4b764d9d7c62fb2bcf6dd93bff2c
+Submitted-by: Hauke Mehrtens
+
+commit af79fdbe4af32a287798b579141204bda056b8aa
+commit 889272d92db689fd9c910243635e44c9d8323095
+commit e21cb649a235180563363b8af5ba8296b9ac0baa
+commit 7c09fa4a7492ca436f2c94bd9a465b7c5bbeed6f
+Submitted-by: Felix Fietkau
+
+3. Finally a heavy refactor to split the driver into the three new
+subsystems, and updated to work with the device tree configuration, plus
+updates and review feedback incorporated
+
+Reviewed-by: Thibaut VARÈNE
+Submitted-by: Christopher Hill
+---
+ drivers/mfd/Kconfig | 8 ++++++++
+ drivers/mfd/Makefile | 1 +
+ drivers/gpio/Kconfig | 6 ++++++
+ drivers/gpio/Makefile | 1 +
+ drivers/mtd/nand/raw/Kconfig | 7 +++++++
+ drivers/mtd/nand/raw/Makefile | 1 +
+ 6 files changed, 24 insertions(+)
+
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -2142,6 +2142,14 @@ config RAVE_SP_CORE
diff --git a/target/linux/ath79/patches-5.10/939-mikrotik-rb91x.patch b/target/linux/ath79/patches-5.10/939-mikrotik-rb91x.patch
index 4cf6bb08df..7990061cbd 100644
--- a/target/linux/ath79/patches-5.10/939-mikrotik-rb91x.patch
+++ b/target/linux/ath79/patches-5.10/939-mikrotik-rb91x.patch
@@ -1,3 +1,32 @@
+From: Denis Kalashnikov
+Subject: [PATCH] ath79: add support for reset key on MikroTik RB912UAG-2HPnD
+
+On MikroTik RB91x board series a reset key shares SoC gpio
+line #15 with NAND ALE and NAND IO7. So we need a custom
+gpio driver to manage this non-trivial connection schema.
+Also rb91x-nand needs to have an ability to disable a polling
+of the key while it works with NAND.
+
+While we've been integrating rb91x-key into a firmware, we've
+figured out that:
+* In the gpio-latch driver we need to add a "cansleep" suffix to
+several gpiolib calls,
+* When gpio-latch and rb91x-nand fail to get a gpio and an error
+is -EPROBE_DEFER, they shouldn't report about this, since this
+actually is not an error and occurs when the gpio-latch probe
+function is called before the rb91x-key probe.
+We fix these related things here too.
+
+Submitted-by: Denis Kalashnikov
+Reviewed-by: Sergey Ryazanov
+Tested-by: Koen Vandeputte
+---
+ drivers/gpio/Kconfig | 11 +++++++++++
+ drivers/gpio/Makefile | 2 ++
+ drivers/mtd/nand/raw/Kconfig | 6 ++++++
+ drivers/mtd/nand/raw/Makefile | 1 +
+ 7 files changed, 20 insertions(+)
+
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -341,6 +341,13 @@ config GPIO_IXP4XX
diff --git a/target/linux/ath79/patches-5.15/0003-leds-add-reset-controller-based-driver.patch b/target/linux/ath79/patches-5.15/0003-leds-add-reset-controller-based-driver.patch
index f958e79608..7122756c52 100644
--- a/target/linux/ath79/patches-5.15/0003-leds-add-reset-controller-based-driver.patch
+++ b/target/linux/ath79/patches-5.15/0003-leds-add-reset-controller-based-driver.patch
@@ -13,9 +13,9 @@ Signed-off-by: John Crispin
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
-@@ -886,6 +886,17 @@ config LEDS_UBNT_LEDBAR
- To compile this driver as a module, choose M here: the module
- will be called leds-ubnt-ledbar.
+@@ -876,6 +876,17 @@ source "drivers/leds/blink/Kconfig"
+ comment "Flash and Torch LED drivers"
+ source "drivers/leds/flash/Kconfig"
+config LEDS_RESET
+ tristate "LED support for reset-controller API"
@@ -176,10 +176,10 @@ Signed-off-by: John Crispin
+MODULE_ALIAS("platform:leds-reset");
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
-@@ -88,6 +88,7 @@ obj-$(CONFIG_LEDS_WM831X_STATUS) += leds
+@@ -87,6 +87,7 @@ obj-$(CONFIG_LEDS_TURRIS_OMNIA) += leds
+ obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o
obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
- obj-$(CONFIG_LEDS_UBNT_LEDBAR) += leds-ubnt-ledbar.o
+obj-$(CONFIG_LEDS_RESET) += leds-reset.o
# LED SPI Drivers
diff --git a/target/linux/ath79/patches-5.15/0034-MIPS-ath79-ath9k-exports.patch b/target/linux/ath79/patches-5.15/0034-MIPS-ath79-ath9k-exports.patch
index 71acc22210..e460fe58f3 100644
--- a/target/linux/ath79/patches-5.15/0034-MIPS-ath79-ath9k-exports.patch
+++ b/target/linux/ath79/patches-5.15/0034-MIPS-ath79-ath9k-exports.patch
@@ -1,3 +1,12 @@
+From: John Crispin
+Subject: [PATCH] ath79: make ahb wifi work
+
+Submitted-by: John Crispin
+---
+ arch/mips/ath79/common.c | 3 +++
+ mips/include/asm/mach-ath79/ath79.h | 1+
+ 1 file changed, 4 insertions(+)
+
--- a/arch/mips/ath79/common.c
+++ b/arch/mips/ath79/common.c
@@ -31,11 +31,13 @@ EXPORT_SYMBOL_GPL(ath79_ddr_freq);
diff --git a/target/linux/ath79/patches-5.15/0036-MIPS-ath79-remove-irq-code-from-pci.patch b/target/linux/ath79/patches-5.15/0036-MIPS-ath79-remove-irq-code-from-pci.patch
index 80fcd0a7f5..4732d1b2c8 100644
--- a/target/linux/ath79/patches-5.15/0036-MIPS-ath79-remove-irq-code-from-pci.patch
+++ b/target/linux/ath79/patches-5.15/0036-MIPS-ath79-remove-irq-code-from-pci.patch
@@ -1,3 +1,13 @@
+From: John Crispin
+Subject: ath79: fix remove irq code from pci driver patch
+
+This patch got mangled in the void while rebasing it.
+
+Submitted-by: John Crispin
+---
+ arch/mips/pci/pci-ar71xx.c | 107 ------------------
+ 1 file changed, 141 deletions(-)
+
--- a/arch/mips/pci/pci-ar71xx.c
+++ b/arch/mips/pci/pci-ar71xx.c
@@ -51,11 +51,9 @@
diff --git a/target/linux/ath79/patches-5.15/0037-missing-registers.patch b/target/linux/ath79/patches-5.15/0037-missing-registers.patch
index 9067e4ca7b..0e6ac52ade 100644
--- a/target/linux/ath79/patches-5.15/0037-missing-registers.patch
+++ b/target/linux/ath79/patches-5.15/0037-missing-registers.patch
@@ -1,6 +1,5 @@
-commit f3ffac90bc7266b7d917616f3233f58e8c08a196
-Author: Christian Lamparter
-Date: Fri Aug 10 23:24:47 2018 +0200
+From: Christian Lamparter
+Subject: [PATCH] ath79: gmac: add parsers for rxd(v)- and tx(d|en)-delay for
ath79: gmac: add parsers for rxd(v)- and tx(d|en)-delay for AR9344
diff --git a/target/linux/ath79/patches-5.15/0039-MIPS-ath79-export-UART1-reference-clock.patch b/target/linux/ath79/patches-5.15/0039-MIPS-ath79-export-UART1-reference-clock.patch
index edf888c7e7..b24ff21692 100644
--- a/target/linux/ath79/patches-5.15/0039-MIPS-ath79-export-UART1-reference-clock.patch
+++ b/target/linux/ath79/patches-5.15/0039-MIPS-ath79-export-UART1-reference-clock.patch
@@ -1,3 +1,18 @@
+From: Daniel Golle
+Subject: [PATCH] ath79: add support for Atheros AR934x HS UART
+
+AR934x chips also got the 'old' qca,ar9330-uart in addition to the
+'new' ns16550a compatible one. Add support for UART1 clock selector as
+well as device-tree bindings in ar934x.dtsi to make use of that uart.
+
+Reported-by: Piotr Dymacz
+Submitted-by: Daniel Golle
+---
+ arch/mips/ath79/clock.c | 7 +++++++
+ .../mips/include/asm/mach-ath79/ar71xx_regs.h | 1 +
+ include/dt-bindings/clock/ath79-clk.h | 3 ++-
+ 3 files changed, 10 insertions(+), 1 deletion(-)
+
--- a/arch/mips/ath79/clock.c
+++ b/arch/mips/ath79/clock.c
@@ -40,6 +40,7 @@ static const char * const clk_names[ATH7
diff --git a/target/linux/ath79/patches-5.15/004-register_gpio_driver_earlier.patch b/target/linux/ath79/patches-5.15/004-register_gpio_driver_earlier.patch
index 153cfb438a..a8680ceac4 100644
--- a/target/linux/ath79/patches-5.15/004-register_gpio_driver_earlier.patch
+++ b/target/linux/ath79/patches-5.15/004-register_gpio_driver_earlier.patch
@@ -1,6 +1,14 @@
+From: John Crispin
+Subject: ath79: Register GPIO driver earlier
+
HACK: register the GPIO driver earlier to ensure that gpio_request calls
from mach files succeed.
+Submitted-by: John Crispin
+---
+ drivers/gpio/gpio-ath79.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
--- a/drivers/gpio/gpio-ath79.c
+++ b/drivers/gpio/gpio-ath79.c
@@ -297,7 +297,11 @@ static struct platform_driver ath79_gpio
diff --git a/target/linux/ath79/patches-5.15/0040-ath79-sgmii-config.patch b/target/linux/ath79/patches-5.15/0040-ath79-sgmii-config.patch
index bf7cbf2716..4c2b94899a 100644
--- a/target/linux/ath79/patches-5.15/0040-ath79-sgmii-config.patch
+++ b/target/linux/ath79/patches-5.15/0040-ath79-sgmii-config.patch
@@ -1,3 +1,24 @@
+From: David Bauer
+Subject: [PATCH] ath79: force SGMII SerDes mode to MAC operation
+
+The mode on the SGMII SerDes on the QCA9563 is 1000 Base-X by default.
+This only allows for 1000 Mbit/s links, however when used with an SGMII
+PHY in 100 Mbit/s link mode, the link remains dead.
+
+This strictly has nothing to do with the SerDes calibration, however it
+is done at the same point in the QCA reference U-Boot which is the
+blueprint for everything happening here. As the current state is more or
+less a hack, this should be fine.
+
+This fixes the issues outlined above on a TP-Link EAP-225 Outdoor.
+
+Reported-by: Tom Herbers
+Tested-by: Tom Herbers
+Submitted-by: David Bauer
+---
+ arch/mips/include/asm/mach-ath79/ar71xx_regs.h | 1 +
+ 1 files changed, 1 insertion(+)
+
--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
+++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
@@ -1376,5 +1376,6 @@
diff --git a/target/linux/ath79/patches-5.15/404-mtd-cybertan-trx-parser.patch b/target/linux/ath79/patches-5.15/404-mtd-cybertan-trx-parser.patch
index 923589661e..cfc017871f 100644
--- a/target/linux/ath79/patches-5.15/404-mtd-cybertan-trx-parser.patch
+++ b/target/linux/ath79/patches-5.15/404-mtd-cybertan-trx-parser.patch
@@ -1,3 +1,21 @@
+From: Christian Lamparter
+Subject: [PATCH] ath79: port cybertan_part from ar71xx
+
+This patch ports the cybertan_part code from ar71xx and converts the
+driver to a DT-supported mtd parser. As a result, it will no longer
+add the u-boot, nvram and art partitions, which were never part of
+the special Cybertan header.
+
+Instead these partitions have to be specified in the DT, which has the
+upside of making it possible to add properties (i.e.: read-only), labels
+and references to these important partitions.
+
+Submitted-by: Christian Lamparter
+---
+ drivers/mtd/parsers/Makefile | 1 +
+ drivers/mtd/parsers/Kconfig | 8 ++++++++
+ 2 files changed, 9 insertions(+)
+
--- a/drivers/mtd/parsers/Makefile
+++ b/drivers/mtd/parsers/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
diff --git a/target/linux/ath79/patches-5.15/420-net-use-downstream-ag71xx.patch b/target/linux/ath79/patches-5.15/420-net-use-downstream-ag71xx.patch
index 7a1a03430d..54e64fb11c 100644
--- a/target/linux/ath79/patches-5.15/420-net-use-downstream-ag71xx.patch
+++ b/target/linux/ath79/patches-5.15/420-net-use-downstream-ag71xx.patch
@@ -1,3 +1,16 @@
+From: John Crispin
+Subject: [PATCH] ath79: add new OF only target for QCA MIPS silicon
+
+This target aims to replace ar71xx mid-term. The big part that is still
+missing is making the MMIO/AHB wifi work using OF. NAND and mikrotik
+subtargets will follow.
+
+Submitted-by: John Crispin
+---
+ drivers/net/ethernet/atheros/Kconfig | 8 +-------
+ drivers/net/ethernet/atheros/Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 8 deletions(-)
+
--- a/drivers/net/ethernet/atheros/Kconfig
+++ b/drivers/net/ethernet/atheros/Kconfig
@@ -17,14 +17,7 @@ config NET_VENDOR_ATHEROS
diff --git a/target/linux/ath79/patches-5.15/430-drivers-link-spi-before-mtd.patch b/target/linux/ath79/patches-5.15/430-drivers-link-spi-before-mtd.patch
index 4c6558db90..0cd96909eb 100644
--- a/target/linux/ath79/patches-5.15/430-drivers-link-spi-before-mtd.patch
+++ b/target/linux/ath79/patches-5.15/430-drivers-link-spi-before-mtd.patch
@@ -1,3 +1,11 @@
+From: Gabor Juhos
+Subject: [PATCH] ar71xx: Link SPI before MTD
+
+SVN-Revision: 22863
+---
+ drivers/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -80,8 +80,8 @@ obj-y += scsi/
diff --git a/target/linux/ath79/patches-5.15/440-mtd-ar934x-nand-driver.patch b/target/linux/ath79/patches-5.15/440-mtd-ar934x-nand-driver.patch
index 3ce64aa51d..63bc98e14c 100644
--- a/target/linux/ath79/patches-5.15/440-mtd-ar934x-nand-driver.patch
+++ b/target/linux/ath79/patches-5.15/440-mtd-ar934x-nand-driver.patch
@@ -1,3 +1,12 @@
+From: Gabor Juhos
+Subject: ar71xx: ar934x_nfc: experimental NAND Flash Controller driver for AR934x
+
+SVN-Revision: 33385
+---
+ drivers/mtd/nand/raw/Kconfig | 8 ++++++++
+ drivers/mtd/nand/raw/Makefile | 1 +
+ 2 files changed, 9 insertions(+)
+
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -555,4 +555,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE
diff --git a/target/linux/ath79/patches-5.15/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch b/target/linux/ath79/patches-5.15/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch
index 924faec509..3b8fee2269 100644
--- a/target/linux/ath79/patches-5.15/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch
+++ b/target/linux/ath79/patches-5.15/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch
@@ -1,3 +1,14 @@
+From: Gabor Juhos
+Subject: [PATCH] ar71xx: swizzle address for PCI byte/word access on AR71xx
+
+Closes #11683.
+
+SVN-Revision: 32639
+---
+ .../mips/include/asm/mach-ath79/mangle-port.h | 111 ++++++++++++++++++
+ 1 file changed, 111 insertions(+)
+ create mode 100644 arch/mips/include/asm/mach-ath79/mangle-port.h
+
--- /dev/null
+++ b/arch/mips/include/asm/mach-ath79/mangle-port.h
@@ -0,0 +1,37 @@
diff --git a/target/linux/ath79/patches-5.15/600-of_net-add-mac-address-ascii-support.patch b/target/linux/ath79/patches-5.15/600-of_net-add-mac-address-ascii-support.patch
index 2e1e7293b6..ff22945eb4 100644
--- a/target/linux/ath79/patches-5.15/600-of_net-add-mac-address-ascii-support.patch
+++ b/target/linux/ath79/patches-5.15/600-of_net-add-mac-address-ascii-support.patch
@@ -1,3 +1,14 @@
+From: Yousong Zhou
+Subject: [PATCH] ath79: add nvmem cell mac-address-ascii support
+
+This is needed for devices with mac address stored in ascii format, e.g.
+HiWiFi HC6361 to be ported in the following patch.
+
+Submitted-by: Yousong Zhou
+---
+ net/ethernet/eth.c | 83 ++++++++++++------
+ 1 files changed, 72 insertions(+), 11 deletions(-)
+
--- a/net/ethernet/eth.c
+++ b/net/ethernet/eth.c
@@ -544,6 +544,63 @@ int eth_platform_get_mac_address(struct
diff --git a/target/linux/ath79/patches-5.15/900-mdio_bitbang_ignore_ta_value.patch b/target/linux/ath79/patches-5.15/900-mdio_bitbang_ignore_ta_value.patch
index 4c8d2c2ea9..5363bb37b0 100644
--- a/target/linux/ath79/patches-5.15/900-mdio_bitbang_ignore_ta_value.patch
+++ b/target/linux/ath79/patches-5.15/900-mdio_bitbang_ignore_ta_value.patch
@@ -1,3 +1,15 @@
+From: Jonas Gorski
+Subject: ar71xx: add a workaround for ar8316 not always driving the TA bit to low
+
+AR8316 behind a GPIO bitbanged MDIO bus fails to drive the turnaround bit
+to low despite returning a valid value. Ignore it and just use the
+returned value anyway.
+
+SVN-Revision: 28422
+---
+ drivers/net/mdio/mdio-bitbang.c | 16 ++-----------------
+ 1 file changed, 2 insertions(+), 14 deletions(-)
+
--- a/drivers/net/mdio/mdio-bitbang.c
+++ b/drivers/net/mdio/mdio-bitbang.c
@@ -152,7 +152,7 @@ static int mdiobb_cmd_addr(struct mdiobb
diff --git a/target/linux/ath79/patches-5.15/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-5.15/910-unaligned_access_hacks.patch
index d166702047..f5d3a5ed58 100644
--- a/target/linux/ath79/patches-5.15/910-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-5.15/910-unaligned_access_hacks.patch
@@ -1,3 +1,47 @@
+From: Felix Fietkau
+Subject: [PATCH] ar71xx: fix unaligned access in a few more places
+
+SVN-Revision: 35130
+---
+ arch/mips/include/asm/checksum.h | 83 +++---------------
+ include/uapi/linux/ip.h | 2 +-
+ include/uapi/linux/ipv6.h | 2 +-
+ include/uapi/linux/tcp.h | 4 ++--
+ include/uapi/linux/udp.h | 2 +-
+ net/netfilter/nf_conntrack_core.c | 4 ++--
+ include/uapi/linux/icmp.h | 2 +-
+ include/uapi/linux/in6.h | 2 +-
+ net/ipv6/tcp_ipv6.c | 9 +++--
+ net/ipv6/datagram.c | 6 ++--
+ net/ipv6/exthdrs.c | 2 +-
+ include/linux/types.h | 5 +++
+ net/ipv4/af_inet.c | 4 ++--
+ net/ipv4/tcp_output.c | 69 +++++++++--------
+ include/uapi/linux/igmp.h | 8 +++---
+ net/core/flow_dissector.c | 2 +-
+ include/uapi/linux/icmpv6.h | 2 +-
+ include/net/ndisc.h | 10 ++++----
+ net/sched/cls_u32.c | 6 +++---
+ net/ipv6/ip6_offload.c | 2 +-
+ include/net/addrconf.h | 2 +-
+ include/net/inet_ecn.h | 4 ++--
+ include/net/ipv6.h | 23 +++++----
+ include/net/secure_seq.h | 1 +
+ include/uapi/linux/in.h | 2 +-
+ net/ipv6/ip6_fib.h | 2 +-
+ net/netfilter/nf_conntrack_proto_tcp.c | 2 +-
+ net/xfrm/xfrm_input.c | 4 ++--
+ net/ipv4/tcp_input.c | 12 ++++---
+ include/uapi/linux/if_pppox.h | 1 +
+ net/ipv6/netfilter/nf_log_ipv6.c | 4 ++--
+ include/net/neighbour.h | 6 +++--
+ include/uapi/linux/netfilter_arp/arp_tables.h | 2 +-
+ net/core/utils.c | 10 +++++--
+ include/linux/etherdevice.h | 11 ++++---
+ net/ipv4/tcp_offload.c | 6 +++---
+ net/ipv6/netfilter/ip6table_mangle.c | 4 ++--
+ 37 file changed, 171 insertions(+), 141 deletions(-)
+
--- a/arch/mips/include/asm/checksum.h
+++ b/arch/mips/include/asm/checksum.h
@@ -100,26 +100,30 @@ static inline __sum16 ip_fast_csum(const
diff --git a/target/linux/ath79/patches-5.15/920-mikrotik-rb4xx.patch b/target/linux/ath79/patches-5.15/920-mikrotik-rb4xx.patch
index 904f212e41..5492687251 100644
--- a/target/linux/ath79/patches-5.15/920-mikrotik-rb4xx.patch
+++ b/target/linux/ath79/patches-5.15/920-mikrotik-rb4xx.patch
@@ -1,3 +1,48 @@
+From: Christopher Hill
+Subject: [PATCH] ath79: add Mikrotik rb4xx series drivers
+
+This adds 3 Mikrotik rb4xx series drivers as follows:
+
+rb4xx-cpld: This is in the mfd subsystem, and is the parent CPLD device
+that interfaces between the SoC SPI bus and its two children below.
+rb4xx-gpio: This is the GPIO expander.
+rb4xx-nand: This is the NAND driver.
+
+The history of this code comes in three phases.
+
+1. The first is a May 2015 attempt to push the equivalient ar71xx rb4xx
+drivers upstream. See https://lore.kernel.org/patchwork/patch/940880/.
+
+Module-author: Gabor Juhos
+Module-author: Imre Kaloz
+Module-author: Bert Vermeulen
+
+2. Next several ar71xx patches were applied bringing the code current.
+
+commit 7bbf4117c6fe4b764d9d7c62fb2bcf6dd93bff2c
+Submitted-by: Hauke Mehrtens
+
+commit af79fdbe4af32a287798b579141204bda056b8aa
+commit 889272d92db689fd9c910243635e44c9d8323095
+commit e21cb649a235180563363b8af5ba8296b9ac0baa
+commit 7c09fa4a7492ca436f2c94bd9a465b7c5bbeed6f
+Submitted-by: Felix Fietkau
+
+3. Finally a heavy refactor to split the driver into the three new
+subsystems, and updated to work with the device tree configuration, plus
+updates and review feedback incorporated
+
+Reviewed-by: Thibaut VARÈNE
+Submitted-by: Christopher Hill
+---
+ drivers/mfd/Kconfig | 8 ++++++++
+ drivers/mfd/Makefile | 1 +
+ drivers/gpio/Kconfig | 6 ++++++
+ drivers/gpio/Makefile | 1 +
+ drivers/mtd/nand/raw/Kconfig | 7 +++++++
+ drivers/mtd/nand/raw/Makefile | 1 +
+ 6 files changed, 24 insertions(+)
+
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -2174,6 +2174,14 @@ config RAVE_SP_CORE
@@ -13,7 +58,7 @@
+ Routerboard RB4xx series.
+
config SGI_MFD_IOC3
- bool "SGI IOC3 core driver"
+ bool "SGI IOC3 core driver"
depends on PCI && MIPS && 64BIT
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
diff --git a/target/linux/ath79/patches-5.15/939-mikrotik-rb91x.patch b/target/linux/ath79/patches-5.15/939-mikrotik-rb91x.patch
index 4a852886bf..459b6ff9b1 100644
--- a/target/linux/ath79/patches-5.15/939-mikrotik-rb91x.patch
+++ b/target/linux/ath79/patches-5.15/939-mikrotik-rb91x.patch
@@ -1,3 +1,32 @@
+From: Denis Kalashnikov
+Subject: [PATCH] ath79: add support for reset key on MikroTik RB912UAG-2HPnD
+
+On MikroTik RB91x board series a reset key shares SoC gpio
+line #15 with NAND ALE and NAND IO7. So we need a custom
+gpio driver to manage this non-trivial connection schema.
+Also rb91x-nand needs to have an ability to disable a polling
+of the key while it works with NAND.
+
+While we've been integrating rb91x-key into a firmware, we've
+figured out that:
+* In the gpio-latch driver we need to add a "cansleep" suffix to
+several gpiolib calls,
+* When gpio-latch and rb91x-nand fail to get a gpio and an error
+is -EPROBE_DEFER, they shouldn't report about this, since this
+actually is not an error and occurs when the gpio-latch probe
+function is called before the rb91x-key probe.
+We fix these related things here too.
+
+Submitted-by: Denis Kalashnikov
+Reviewed-by: Sergey Ryazanov
+Tested-by: Koen Vandeputte
+---
+ drivers/gpio/Kconfig | 11 +++++++++++
+ drivers/gpio/Makefile | 2 ++
+ drivers/mtd/nand/raw/Kconfig | 6 ++++++
+ drivers/mtd/nand/raw/Makefile | 1 +
+ 7 files changed, 20 insertions(+)
+
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -353,6 +353,13 @@ config GPIO_IXP4XX
@@ -15,8 +44,8 @@
tristate "Xylon LogiCVC GPIO support"
depends on MFD_SYSCON && OF
@@ -529,6 +536,10 @@ config GPIO_ROCKCHIP
- help
- Say yes here to support GPIO on Rockchip SoCs.
+ help
+ Say yes here to support GPIO on Rockchip SoCs.
+config GPIO_RB91X_KEY
+ tristate "MikroTik RB91x board series reset key support"
diff --git a/target/linux/bcm53xx/patches-5.10/083-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch b/target/linux/bcm53xx/patches-5.10/083-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch
new file mode 100644
index 0000000000..12c60ce297
--- /dev/null
+++ b/target/linux/bcm53xx/patches-5.10/083-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch
@@ -0,0 +1,72 @@
+From 1b24a132eba7a1c19475ba2510ec1c00af3ff914 Mon Sep 17 00:00:00 2001
+From: Florian Fainelli
+Date: Mon, 5 Sep 2022 09:15:03 -0700
+Subject: [PATCH] clk: iproc: Do not rely on node name for correct PLL setup
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+After commit 31fd9b79dc58 ("ARM: dts: BCM5301X: update CRU block
+description") a warning from clk-iproc-pll.c was generated due to a
+duplicate PLL name as well as the console stopped working. Upon closer
+inspection it became clear that iproc_pll_clk_setup() used the Device
+Tree node unit name as an unique identifier as well as a parent name to
+parent all clocks under the PLL.
+
+BCM5301X was the first platform on which that got noticed because of the
+DT node unit name renaming but the same assumptions hold true for any
+user of the iproc_pll_clk_setup() function.
+
+The first 'clock-output-names' property is always guaranteed to be
+unique as well as providing the actual desired PLL clock name, so we
+utilize that to register the PLL and as a parent name of all children
+clock.
+
+Fixes: 5fe225c105fd ("clk: iproc: add initial common clock support")
+Signed-off-by: Florian Fainelli
+Acked-by: Rafał Miłecki
+Link: https://lore.kernel.org/r/20220905161504.1526-1-f.fainelli@gmail.com
+Signed-off-by: Stephen Boyd
+---
+ drivers/clk/bcm/clk-iproc-pll.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+--- a/drivers/clk/bcm/clk-iproc-pll.c
++++ b/drivers/clk/bcm/clk-iproc-pll.c
+@@ -736,6 +736,7 @@ void iproc_pll_clk_setup(struct device_n
+ const char *parent_name;
+ struct iproc_clk *iclk_array;
+ struct clk_hw_onecell_data *clk_data;
++ const char *clk_name;
+
+ if (WARN_ON(!pll_ctrl) || WARN_ON(!clk_ctrl))
+ return;
+@@ -783,7 +784,12 @@ void iproc_pll_clk_setup(struct device_n
+ iclk = &iclk_array[0];
+ iclk->pll = pll;
+
+- init.name = node->name;
++ ret = of_property_read_string_index(node, "clock-output-names",
++ 0, &clk_name);
++ if (WARN_ON(ret))
++ goto err_pll_register;
++
++ init.name = clk_name;
+ init.ops = &iproc_pll_ops;
+ init.flags = 0;
+ parent_name = of_clk_get_parent_name(node, 0);
+@@ -803,13 +809,11 @@ void iproc_pll_clk_setup(struct device_n
+ goto err_pll_register;
+
+ clk_data->hws[0] = &iclk->hw;
++ parent_name = clk_name;
+
+ /* now initialize and register all leaf clocks */
+ for (i = 1; i < num_clks; i++) {
+- const char *clk_name;
+-
+ memset(&init, 0, sizeof(init));
+- parent_name = node->name;
+
+ ret = of_property_read_string_index(node, "clock-output-names",
+ i, &clk_name);
diff --git a/target/linux/bcm53xx/patches-5.10/320-ARM-dts-BCM5301X-Switch-back-to-old-clock-nodes-name.patch b/target/linux/bcm53xx/patches-5.10/320-ARM-dts-BCM5301X-Switch-back-to-old-clock-nodes-name.patch
deleted file mode 100644
index cee37732ab..0000000000
--- a/target/linux/bcm53xx/patches-5.10/320-ARM-dts-BCM5301X-Switch-back-to-old-clock-nodes-name.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?=
-Date: Tue, 23 Nov 2021 13:13:05 +0100
-Subject: [PATCH] ARM: dts: BCM5301X: Switch back to old clock nodes names
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-First of all using the same node name prefix resulted in trying to
-register 2 clocks under the same "clock-controller" name:
-
-[ 0.000000] __clk_core_init: clk clock-controller already initialized
-[ 0.000000] ------------[ cut here ]------------
-[ 0.000000] WARNING: CPU: 0 PID: 0 at drivers/clk/bcm/clk-iproc-pll.c:802 iproc_pll_clk_setup+0x4c8/0x4f4
-[ 0.000000] Modules linked in:
-[ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.80 #0
-[ 0.000000] Hardware name: BCM5301X
-[ 0.000000] [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
-[ 0.000000] [] (show_stack) from [] (dump_stack+0x94/0xa8)
-[ 0.000000] [] (dump_stack) from [] (__warn+0xb8/0x114)
-[ 0.000000] [] (__warn) from [] (warn_slowpath_fmt+0x68/0x78)
-[ 0.000000] [] (warn_slowpath_fmt) from [] (iproc_pll_clk_setup+0x4c8/0x4f4)
-[ 0.000000] [] (iproc_pll_clk_setup) from [] (nsp_genpll_clk_init+0x30/0x38)
-[ 0.000000] [] (nsp_genpll_clk_init) from [] (of_clk_init+0x118/0x1f8)
-[ 0.000000] [] (of_clk_init) from [] (time_init+0x24/0x30)
-[ 0.000000] [] (time_init) from [] (start_kernel+0x398/0x50c)
-[ 0.000000] [] (start_kernel) from [<00000000>] (0x0)
-[ 0.000000] ---[ end trace fe236bfe9559ee50 ]---
-
-Secondly using any other names than "lcpll0" and "genpll" breaks output
-clocks:
-
-$ cat /sys/kernel/debug/clk/usbclk/clk_rate
-0
-
-For some reason iproc_clk_recalc_rate() gets called with "parent_rate"
-argument 0 whenever clocks aren't named "lcpll0" and "genpll".
-
-Signed-off-by: Rafał Miłecki
----
- arch/arm/boot/dts/bcm5301x.dtsi | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/arch/arm/boot/dts/bcm5301x.dtsi
-+++ b/arch/arm/boot/dts/bcm5301x.dtsi
-@@ -421,7 +421,7 @@
- #address-cells = <1>;
- #size-cells = <1>;
-
-- lcpll0: clock-controller@100 {
-+ lcpll0: lcpll0@100 {
- #clock-cells = <1>;
- compatible = "brcm,nsp-lcpll0";
- reg = <0x100 0x14>;
-@@ -430,7 +430,7 @@
- "sdio", "ddr_phy";
- };
-
-- genpll: clock-controller@140 {
-+ genpll: genpll@140 {
- #clock-cells = <1>;
- compatible = "brcm,nsp-genpll";
- reg = <0x140 0x24>;
diff --git a/target/linux/bcm53xx/patches-5.15/082-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch b/target/linux/bcm53xx/patches-5.15/082-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch
new file mode 100644
index 0000000000..12c60ce297
--- /dev/null
+++ b/target/linux/bcm53xx/patches-5.15/082-v6.0-clk-iproc-Do-not-rely-on-node-name-for-correct-PLL-s.patch
@@ -0,0 +1,72 @@
+From 1b24a132eba7a1c19475ba2510ec1c00af3ff914 Mon Sep 17 00:00:00 2001
+From: Florian Fainelli
+Date: Mon, 5 Sep 2022 09:15:03 -0700
+Subject: [PATCH] clk: iproc: Do not rely on node name for correct PLL setup
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+After commit 31fd9b79dc58 ("ARM: dts: BCM5301X: update CRU block
+description") a warning from clk-iproc-pll.c was generated due to a
+duplicate PLL name as well as the console stopped working. Upon closer
+inspection it became clear that iproc_pll_clk_setup() used the Device
+Tree node unit name as an unique identifier as well as a parent name to
+parent all clocks under the PLL.
+
+BCM5301X was the first platform on which that got noticed because of the
+DT node unit name renaming but the same assumptions hold true for any
+user of the iproc_pll_clk_setup() function.
+
+The first 'clock-output-names' property is always guaranteed to be
+unique as well as providing the actual desired PLL clock name, so we
+utilize that to register the PLL and as a parent name of all children
+clock.
+
+Fixes: 5fe225c105fd ("clk: iproc: add initial common clock support")
+Signed-off-by: Florian Fainelli
+Acked-by: Rafał Miłecki
+Link: https://lore.kernel.org/r/20220905161504.1526-1-f.fainelli@gmail.com
+Signed-off-by: Stephen Boyd
+---
+ drivers/clk/bcm/clk-iproc-pll.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+--- a/drivers/clk/bcm/clk-iproc-pll.c
++++ b/drivers/clk/bcm/clk-iproc-pll.c
+@@ -736,6 +736,7 @@ void iproc_pll_clk_setup(struct device_n
+ const char *parent_name;
+ struct iproc_clk *iclk_array;
+ struct clk_hw_onecell_data *clk_data;
++ const char *clk_name;
+
+ if (WARN_ON(!pll_ctrl) || WARN_ON(!clk_ctrl))
+ return;
+@@ -783,7 +784,12 @@ void iproc_pll_clk_setup(struct device_n
+ iclk = &iclk_array[0];
+ iclk->pll = pll;
+
+- init.name = node->name;
++ ret = of_property_read_string_index(node, "clock-output-names",
++ 0, &clk_name);
++ if (WARN_ON(ret))
++ goto err_pll_register;
++
++ init.name = clk_name;
+ init.ops = &iproc_pll_ops;
+ init.flags = 0;
+ parent_name = of_clk_get_parent_name(node, 0);
+@@ -803,13 +809,11 @@ void iproc_pll_clk_setup(struct device_n
+ goto err_pll_register;
+
+ clk_data->hws[0] = &iclk->hw;
++ parent_name = clk_name;
+
+ /* now initialize and register all leaf clocks */
+ for (i = 1; i < num_clks; i++) {
+- const char *clk_name;
+-
+ memset(&init, 0, sizeof(init));
+- parent_name = node->name;
+
+ ret = of_property_read_string_index(node, "clock-output-names",
+ i, &clk_name);
diff --git a/target/linux/bcm53xx/patches-5.15/320-ARM-dts-BCM5301X-Switch-back-to-old-clock-nodes-name.patch b/target/linux/bcm53xx/patches-5.15/320-ARM-dts-BCM5301X-Switch-back-to-old-clock-nodes-name.patch
deleted file mode 100644
index cee37732ab..0000000000
--- a/target/linux/bcm53xx/patches-5.15/320-ARM-dts-BCM5301X-Switch-back-to-old-clock-nodes-name.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?=
-Date: Tue, 23 Nov 2021 13:13:05 +0100
-Subject: [PATCH] ARM: dts: BCM5301X: Switch back to old clock nodes names
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-First of all using the same node name prefix resulted in trying to
-register 2 clocks under the same "clock-controller" name:
-
-[ 0.000000] __clk_core_init: clk clock-controller already initialized
-[ 0.000000] ------------[ cut here ]------------
-[ 0.000000] WARNING: CPU: 0 PID: 0 at drivers/clk/bcm/clk-iproc-pll.c:802 iproc_pll_clk_setup+0x4c8/0x4f4
-[ 0.000000] Modules linked in:
-[ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.80 #0
-[ 0.000000] Hardware name: BCM5301X
-[ 0.000000] [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
-[ 0.000000] [] (show_stack) from [] (dump_stack+0x94/0xa8)
-[ 0.000000] [] (dump_stack) from [] (__warn+0xb8/0x114)
-[ 0.000000] [] (__warn) from [] (warn_slowpath_fmt+0x68/0x78)
-[ 0.000000] [] (warn_slowpath_fmt) from [] (iproc_pll_clk_setup+0x4c8/0x4f4)
-[ 0.000000] [] (iproc_pll_clk_setup) from [] (nsp_genpll_clk_init+0x30/0x38)
-[ 0.000000] [] (nsp_genpll_clk_init) from [] (of_clk_init+0x118/0x1f8)
-[ 0.000000] [] (of_clk_init) from [] (time_init+0x24/0x30)
-[ 0.000000] [] (time_init) from [] (start_kernel+0x398/0x50c)
-[ 0.000000] [] (start_kernel) from [<00000000>] (0x0)
-[ 0.000000] ---[ end trace fe236bfe9559ee50 ]---
-
-Secondly using any other names than "lcpll0" and "genpll" breaks output
-clocks:
-
-$ cat /sys/kernel/debug/clk/usbclk/clk_rate
-0
-
-For some reason iproc_clk_recalc_rate() gets called with "parent_rate"
-argument 0 whenever clocks aren't named "lcpll0" and "genpll".
-
-Signed-off-by: Rafał Miłecki
----
- arch/arm/boot/dts/bcm5301x.dtsi | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/arch/arm/boot/dts/bcm5301x.dtsi
-+++ b/arch/arm/boot/dts/bcm5301x.dtsi
-@@ -421,7 +421,7 @@
- #address-cells = <1>;
- #size-cells = <1>;
-
-- lcpll0: clock-controller@100 {
-+ lcpll0: lcpll0@100 {
- #clock-cells = <1>;
- compatible = "brcm,nsp-lcpll0";
- reg = <0x100 0x14>;
-@@ -430,7 +430,7 @@
- "sdio", "ddr_phy";
- };
-
-- genpll: clock-controller@140 {
-+ genpll: genpll@140 {
- #clock-cells = <1>;
- compatible = "brcm,nsp-genpll";
- reg = <0x140 0x24>;
diff --git a/target/linux/generic/backport-5.10/415-v6.0-mtd-core-check-partition-before-dereference.patch b/target/linux/generic/backport-5.10/415-v6.0-mtd-core-check-partition-before-dereference.patch
new file mode 100644
index 0000000000..65789ddf2d
--- /dev/null
+++ b/target/linux/generic/backport-5.10/415-v6.0-mtd-core-check-partition-before-dereference.patch
@@ -0,0 +1,30 @@
+From 7ec4cdb321738d44ae5d405e7b6ac73dfbf99caa Mon Sep 17 00:00:00 2001
+From: Tetsuo Handa
+Date: Mon, 25 Jul 2022 22:49:25 +0900
+Subject: [PATCH] mtd: core: check partition before dereference
+
+syzbot is reporting NULL pointer dereference at mtd_check_of_node() [1],
+for mtdram test device (CONFIG_MTD_MTDRAM) is not partition.
+
+Link: https://syzkaller.appspot.com/bug?extid=fe013f55a2814a9e8cfd [1]
+Reported-by: syzbot
+Reported-by: kernel test robot
+Fixes: ad9b10d1eaada169 ("mtd: core: introduce of support for dynamic partitions")
+Signed-off-by: Tetsuo Handa
+CC: stable@vger.kernel.org
+Signed-off-by: Richard Weinberger
+---
+ drivers/mtd/mtdcore.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/mtd/mtdcore.c
++++ b/drivers/mtd/mtdcore.c
+@@ -574,6 +574,8 @@ static void mtd_check_of_node(struct mtd
+ return;
+
+ /* Check if a partitions node exist */
++ if (!mtd_is_partition(mtd))
++ return;
+ parent = mtd->parent;
+ parent_dn = dev_of_node(&parent->dev);
+ if (!parent_dn)
diff --git a/target/linux/generic/backport-5.10/774-v5.15-net-dsa-mv88e6xxx-keep-the-pvid-at-0-when-VLAN-unawa.patch b/target/linux/generic/backport-5.10/774-v5.15-net-dsa-mv88e6xxx-keep-the-pvid-at-0-when-VLAN-unawa.patch
index 24bb5aa9c8..13cc8f3d69 100644
--- a/target/linux/generic/backport-5.10/774-v5.15-net-dsa-mv88e6xxx-keep-the-pvid-at-0-when-VLAN-unawa.patch
+++ b/target/linux/generic/backport-5.10/774-v5.15-net-dsa-mv88e6xxx-keep-the-pvid-at-0-when-VLAN-unawa.patch
@@ -63,7 +63,7 @@ Signed-off-by: Jakub Kicinski
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -1586,6 +1586,26 @@ static int mv88e6xxx_port_check_hw_vlan(
+@@ -1590,6 +1590,26 @@ static int mv88e6xxx_port_check_hw_vlan(
return 0;
}
@@ -90,7 +90,7 @@ Signed-off-by: Jakub Kicinski
static int mv88e6xxx_port_vlan_filtering(struct dsa_switch *ds, int port,
bool vlan_filtering,
struct switchdev_trans *trans)
-@@ -1599,7 +1619,16 @@ static int mv88e6xxx_port_vlan_filtering
+@@ -1603,7 +1623,16 @@ static int mv88e6xxx_port_vlan_filtering
return chip->info->max_vid ? 0 : -EOPNOTSUPP;
mv88e6xxx_reg_lock(chip);
@@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski
mv88e6xxx_reg_unlock(chip);
return err;
-@@ -1982,8 +2011,10 @@ static void mv88e6xxx_port_vlan_add(stru
+@@ -1986,8 +2015,10 @@ static void mv88e6xxx_port_vlan_add(stru
struct mv88e6xxx_chip *chip = ds->priv;
bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED;
bool pvid = vlan->flags & BRIDGE_VLAN_INFO_PVID;
@@ -118,7 +118,7 @@ Signed-off-by: Jakub Kicinski
u16 vid;
if (!chip->info->max_vid)
-@@ -2008,9 +2039,23 @@ static void mv88e6xxx_port_vlan_add(stru
+@@ -2012,9 +2043,23 @@ static void mv88e6xxx_port_vlan_add(stru
dev_err(ds->dev, "p%d: failed to add VLAN %d%c\n", port,
vid, untagged ? 'u' : 't');
@@ -145,7 +145,7 @@ Signed-off-by: Jakub Kicinski
mv88e6xxx_reg_unlock(chip);
}
-@@ -2061,6 +2106,7 @@ static int mv88e6xxx_port_vlan_del(struc
+@@ -2065,6 +2110,7 @@ static int mv88e6xxx_port_vlan_del(struc
const struct switchdev_obj_port_vlan *vlan)
{
struct mv88e6xxx_chip *chip = ds->priv;
@@ -153,7 +153,7 @@ Signed-off-by: Jakub Kicinski
u16 pvid, vid;
int err = 0;
-@@ -2079,7 +2125,9 @@ static int mv88e6xxx_port_vlan_del(struc
+@@ -2083,7 +2129,9 @@ static int mv88e6xxx_port_vlan_del(struc
goto unlock;
if (vid == pvid) {
diff --git a/target/linux/generic/backport-5.15/404-v6.0-mtd-core-check-partition-before-dereference.patch b/target/linux/generic/backport-5.15/404-v6.0-mtd-core-check-partition-before-dereference.patch
new file mode 100644
index 0000000000..e45e2ab48e
--- /dev/null
+++ b/target/linux/generic/backport-5.15/404-v6.0-mtd-core-check-partition-before-dereference.patch
@@ -0,0 +1,30 @@
+From 7ec4cdb321738d44ae5d405e7b6ac73dfbf99caa Mon Sep 17 00:00:00 2001
+From: Tetsuo Handa
+Date: Mon, 25 Jul 2022 22:49:25 +0900
+Subject: [PATCH] mtd: core: check partition before dereference
+
+syzbot is reporting NULL pointer dereference at mtd_check_of_node() [1],
+for mtdram test device (CONFIG_MTD_MTDRAM) is not partition.
+
+Link: https://syzkaller.appspot.com/bug?extid=fe013f55a2814a9e8cfd [1]
+Reported-by: syzbot
+Reported-by: kernel test robot
+Fixes: ad9b10d1eaada169 ("mtd: core: introduce of support for dynamic partitions")
+Signed-off-by: Tetsuo Handa
+CC: stable@vger.kernel.org
+Signed-off-by: Richard Weinberger
+---
+ drivers/mtd/mtdcore.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/mtd/mtdcore.c
++++ b/drivers/mtd/mtdcore.c
+@@ -577,6 +577,8 @@ static void mtd_check_of_node(struct mtd
+ return;
+
+ /* Check if a partitions node exist */
++ if (!mtd_is_partition(mtd))
++ return;
+ parent = mtd->parent;
+ parent_dn = dev_of_node(&parent->dev);
+ if (!parent_dn)
diff --git a/target/linux/generic/backport-5.15/600-v5.18-page_pool-Add-allocation-stats.patch b/target/linux/generic/backport-5.15/600-v5.18-page_pool-Add-allocation-stats.patch
index 7b97181403..9e383de92c 100644
--- a/target/linux/generic/backport-5.15/600-v5.18-page_pool-Add-allocation-stats.patch
+++ b/target/linux/generic/backport-5.15/600-v5.18-page_pool-Add-allocation-stats.patch
@@ -1,29 +1,33 @@
-commit 8610037e8106b48c79cfe0afb92b2b2466e51c3d
-Author: Joe Damato
-Date: Tue Mar 1 23:55:47 2022 -0800
+From 8610037e8106b48c79cfe0afb92b2b2466e51c3d Mon Sep 17 00:00:00 2001
+From: Joe Damato
+Date: Tue, 1 Mar 2022 23:55:47 -0800
+Subject: [PATCH] page_pool: Add allocation stats
- page_pool: Add allocation stats
-
- Add per-pool statistics counters for the allocation path of a page pool.
- These stats are incremented in softirq context, so no locking or per-cpu
- variables are needed.
-
- This code is disabled by default and a kernel config option is provided for
- users who wish to enable them.
-
- The statistics added are:
- - fast: successful fast path allocations
- - slow: slow path order-0 allocations
- - slow_high_order: slow path high order allocations
- - empty: ptr ring is empty, so a slow path allocation was forced.
- - refill: an allocation which triggered a refill of the cache
- - waive: pages obtained from the ptr ring that cannot be added to
- the cache due to a NUMA mismatch.
-
- Signed-off-by: Joe Damato
- Acked-by: Jesper Dangaard Brouer
- Reviewed-by: Ilias Apalodimas
- Signed-off-by: David S. Miller
+Add per-pool statistics counters for the allocation path of a page pool.
+These stats are incremented in softirq context, so no locking or per-cpu
+variables are needed.
+
+This code is disabled by default and a kernel config option is provided for
+users who wish to enable them.
+
+The statistics added are:
+ - fast: successful fast path allocations
+ - slow: slow path order-0 allocations
+ - slow_high_order: slow path high order allocations
+ - empty: ptr ring is empty, so a slow path allocation was forced.
+ - refill: an allocation which triggered a refill of the cache
+ - waive: pages obtained from the ptr ring that cannot be added to
+ the cache due to a NUMA mismatch.
+
+Signed-off-by: Joe Damato
+Acked-by: Jesper Dangaard Brouer
+Reviewed-by: Ilias Apalodimas
+Signed-off-by: David S. Miller
+---
+ include/net/page_pool.h | 18 ++++++++++++++++++
+ net/Kconfig | 13 +++++++++++++
+ net/core/page_pool.c | 24 ++++++++++++++++++++----
+ 3 files changed, 51 insertions(+), 4 deletions(-)
--- a/include/net/page_pool.h
+++ b/include/net/page_pool.h
diff --git a/target/linux/generic/backport-5.15/601-v5.18-page_pool-Add-recycle-stats.patch b/target/linux/generic/backport-5.15/601-v5.18-page_pool-Add-recycle-stats.patch
index 8330ae811d..fb11f0035f 100644
--- a/target/linux/generic/backport-5.15/601-v5.18-page_pool-Add-recycle-stats.patch
+++ b/target/linux/generic/backport-5.15/601-v5.18-page_pool-Add-recycle-stats.patch
@@ -1,20 +1,23 @@
-commit ad6fa1e1ab1b8164f1ba296b1b4dc556a483bcad
-Author: Joe Damato
-Date: Tue Mar 1 23:55:48 2022 -0800
+From ad6fa1e1ab1b8164f1ba296b1b4dc556a483bcad Mon Sep 17 00:00:00 2001
+From: Joe Damato
+Date: Tue, 1 Mar 2022 23:55:48 -0800
+Subject: [PATCH 2/3] page_pool: Add recycle stats
- page_pool: Add recycle stats
-
- Add per-cpu stats tracking page pool recycling events:
- - cached: recycling placed page in the page pool cache
- - cache_full: page pool cache was full
- - ring: page placed into the ptr ring
- - ring_full: page released from page pool because the ptr ring was full
- - released_refcnt: page released (and not recycled) because refcnt > 1
-
- Signed-off-by: Joe Damato
- Acked-by: Jesper Dangaard Brouer
- Reviewed-by: Ilias Apalodimas
- Signed-off-by: David S. Miller
+Add per-cpu stats tracking page pool recycling events:
+ - cached: recycling placed page in the page pool cache
+ - cache_full: page pool cache was full
+ - ring: page placed into the ptr ring
+ - ring_full: page released from page pool because the ptr ring was full
+ - released_refcnt: page released (and not recycled) because refcnt > 1
+
+Signed-off-by: Joe Damato
+Acked-by: Jesper Dangaard Brouer
+Reviewed-by: Ilias Apalodimas
+Signed-off-by: David S. Miller
+---
+ include/net/page_pool.h | 16 ++++++++++++++++
+ net/core/page_pool.c | 30 ++++++++++++++++++++++++++++--
+ 2 files changed, 44 insertions(+), 2 deletions(-)
--- a/include/net/page_pool.h
+++ b/include/net/page_pool.h
diff --git a/target/linux/generic/backport-5.15/602-v5.18-page_pool-Add-function-to-batch-and-return-stats.patch b/target/linux/generic/backport-5.15/602-v5.18-page_pool-Add-function-to-batch-and-return-stats.patch
index 8afbd5d120..41188fb7f2 100644
--- a/target/linux/generic/backport-5.15/602-v5.18-page_pool-Add-function-to-batch-and-return-stats.patch
+++ b/target/linux/generic/backport-5.15/602-v5.18-page_pool-Add-function-to-batch-and-return-stats.patch
@@ -1,16 +1,19 @@
-commit 6b95e3388b1ea0ca63500c5a6e39162dbf828433
-Author: Joe Damato
-Date: Tue Mar 1 23:55:49 2022 -0800
+From 6b95e3388b1ea0ca63500c5a6e39162dbf828433 Mon Sep 17 00:00:00 2001
+From: Joe Damato
+Date: Tue, 1 Mar 2022 23:55:49 -0800
+Subject: [PATCH 3/3] page_pool: Add function to batch and return stats
- page_pool: Add function to batch and return stats
-
- Adds a function page_pool_get_stats which can be used by drivers to obtain
- stats for a specified page_pool.
-
- Signed-off-by: Joe Damato
- Acked-by: Jesper Dangaard Brouer
- Reviewed-by: Ilias Apalodimas
- Signed-off-by: David S. Miller
+Adds a function page_pool_get_stats which can be used by drivers to obtain
+stats for a specified page_pool.
+
+Signed-off-by: Joe Damato
+Acked-by: Jesper Dangaard Brouer
+Reviewed-by: Ilias Apalodimas
+Signed-off-by: David S. Miller
+---
+ include/net/page_pool.h | 17 +++++++++++++++++
+ net/core/page_pool.c | 25 +++++++++++++++++++++++++
+ 2 files changed, 42 insertions(+)
--- a/include/net/page_pool.h
+++ b/include/net/page_pool.h
diff --git a/target/linux/generic/backport-5.15/603-v5.19-page_pool-Add-recycle-stats-to-page_pool_put_page_bu.patch b/target/linux/generic/backport-5.15/603-v5.19-page_pool-Add-recycle-stats-to-page_pool_put_page_bu.patch
index 90f307772a..6ae3fb7133 100644
--- a/target/linux/generic/backport-5.15/603-v5.19-page_pool-Add-recycle-stats-to-page_pool_put_page_bu.patch
+++ b/target/linux/generic/backport-5.15/603-v5.19-page_pool-Add-recycle-stats-to-page_pool_put_page_bu.patch
@@ -1,16 +1,18 @@
-commit 590032a4d2133ecc10d3078a8db1d85a4842f12c
-Author: Lorenzo Bianconi
-Date: Mon Apr 11 16:05:26 2022 +0200
+From 590032a4d2133ecc10d3078a8db1d85a4842f12c Mon Sep 17 00:00:00 2001
+From: Lorenzo Bianconi
+Date: Mon, 11 Apr 2022 16:05:26 +0200
+Subject: [PATCH] page_pool: Add recycle stats to page_pool_put_page_bulk
- page_pool: Add recycle stats to page_pool_put_page_bulk
-
- Add missing recycle stats to page_pool_put_page_bulk routine.
-
- Reviewed-by: Joe Damato
- Signed-off-by: Lorenzo Bianconi
- Reviewed-by: Ilias Apalodimas
- Link: https://lore.kernel.org/r/3712178b51c007cfaed910ea80e68f00c916b1fa.1649685634.git.lorenzo@kernel.org
- Signed-off-by: Paolo Abeni
+Add missing recycle stats to page_pool_put_page_bulk routine.
+
+Reviewed-by: Joe Damato
+Signed-off-by: Lorenzo Bianconi
+Reviewed-by: Ilias Apalodimas
+Link: https://lore.kernel.org/r/3712178b51c007cfaed910ea80e68f00c916b1fa.1649685634.git.lorenzo@kernel.org
+Signed-off-by: Paolo Abeni
+---
+ net/core/page_pool.c | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
--- a/net/core/page_pool.c
+++ b/net/core/page_pool.c
diff --git a/target/linux/generic/backport-5.15/604-v5.19-net-page_pool-introduce-ethtool-stats.patch b/target/linux/generic/backport-5.15/604-v5.19-net-page_pool-introduce-ethtool-stats.patch
index 0694c5cfcb..e5cf91ceee 100644
--- a/target/linux/generic/backport-5.15/604-v5.19-net-page_pool-introduce-ethtool-stats.patch
+++ b/target/linux/generic/backport-5.15/604-v5.19-net-page_pool-introduce-ethtool-stats.patch
@@ -1,16 +1,19 @@
-commit f3c5264f452a5b0ac1de1f2f657efbabdea3c76a
-Author: Lorenzo Bianconi
-Date: Tue Apr 12 18:31:58 2022 +0200
+From f3c5264f452a5b0ac1de1f2f657efbabdea3c76a Mon Sep 17 00:00:00 2001
+From: Lorenzo Bianconi
+Date: Tue, 12 Apr 2022 18:31:58 +0200
+Subject: [PATCH] net: page_pool: introduce ethtool stats
- net: page_pool: introduce ethtool stats
-
- Introduce page_pool APIs to report stats through ethtool and reduce
- duplicated code in each driver.
-
- Signed-off-by: Lorenzo Bianconi
- Reviewed-by: Jakub Kicinski
- Reviewed-by: Ilias Apalodimas
- Signed-off-by: David S. Miller
+Introduce page_pool APIs to report stats through ethtool and reduce
+duplicated code in each driver.
+
+Signed-off-by: Lorenzo Bianconi
+Reviewed-by: Jakub Kicinski
+Reviewed-by: Ilias Apalodimas
+Signed-off-by: David S. Miller
+---
+ include/net/page_pool.h | 21 ++++++++++++++
+ net/core/page_pool.c | 63 ++++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 83 insertions(+), 1 deletion(-)
--- a/include/net/page_pool.h
+++ b/include/net/page_pool.h
diff --git a/target/linux/generic/backport-5.15/605-v5.18-xdp-introduce-flags-field-in-xdp_buff-xdp_frame.patch b/target/linux/generic/backport-5.15/605-v5.18-xdp-introduce-flags-field-in-xdp_buff-xdp_frame.patch
index 9c5a14c41b..4a914404a2 100644
--- a/target/linux/generic/backport-5.15/605-v5.18-xdp-introduce-flags-field-in-xdp_buff-xdp_frame.patch
+++ b/target/linux/generic/backport-5.15/605-v5.18-xdp-introduce-flags-field-in-xdp_buff-xdp_frame.patch
@@ -1,24 +1,26 @@
-commit 2e88d4ff03013937028f5397268b21e10cf68713
-Author: Lorenzo Bianconi
-Date: Fri Jan 21 11:09:45 2022 +0100
+From 2e88d4ff03013937028f5397268b21e10cf68713 Mon Sep 17 00:00:00 2001
+From: Lorenzo Bianconi
+Date: Fri, 21 Jan 2022 11:09:45 +0100
+Subject: [PATCH] xdp: introduce flags field in xdp_buff/xdp_frame
- xdp: introduce flags field in xdp_buff/xdp_frame
-
- Introduce flags field in xdp_frame and xdp_buffer data structures
- to define additional buffer features. At the moment the only
- supported buffer feature is frags bit (XDP_FLAGS_HAS_FRAGS).
- frags bit is used to specify if this is a linear buffer
- (XDP_FLAGS_HAS_FRAGS not set) or a frags frame (XDP_FLAGS_HAS_FRAGS
- set). In the latter case the driver is expected to initialize the
- skb_shared_info structure at the end of the first buffer to link together
- subsequent buffers belonging to the same frame.
-
- Acked-by: Toke Hoiland-Jorgensen
- Acked-by: John Fastabend
- Acked-by: Jesper Dangaard Brouer
- Signed-off-by: Lorenzo Bianconi
- Link: https://lore.kernel.org/r/e389f14f3a162c0a5bc6a2e1aa8dd01a90be117d.1642758637.git.lorenzo@kernel.org
- Signed-off-by: Alexei Starovoitov
+Introduce flags field in xdp_frame and xdp_buffer data structures
+to define additional buffer features. At the moment the only
+supported buffer feature is frags bit (XDP_FLAGS_HAS_FRAGS).
+frags bit is used to specify if this is a linear buffer
+(XDP_FLAGS_HAS_FRAGS not set) or a frags frame (XDP_FLAGS_HAS_FRAGS
+set). In the latter case the driver is expected to initialize the
+skb_shared_info structure at the end of the first buffer to link together
+subsequent buffers belonging to the same frame.
+
+Acked-by: Toke Hoiland-Jorgensen
+Acked-by: John Fastabend
+Acked-by: Jesper Dangaard Brouer
+Signed-off-by: Lorenzo Bianconi
+Link: https://lore.kernel.org/r/e389f14f3a162c0a5bc6a2e1aa8dd01a90be117d.1642758637.git.lorenzo@kernel.org
+Signed-off-by: Alexei Starovoitov
+---
+ include/net/xdp.h | 29 +++++++++++++++++++++++++++++
+ 1 file changed, 29 insertions(+)
--- a/include/net/xdp.h
+++ b/include/net/xdp.h
diff --git a/target/linux/generic/backport-5.15/606-v5.18-xdp-add-frags-support-to-xdp_return_-buff-frame.patch b/target/linux/generic/backport-5.15/606-v5.18-xdp-add-frags-support-to-xdp_return_-buff-frame.patch
index 5a04948002..86d24367dd 100644
--- a/target/linux/generic/backport-5.15/606-v5.18-xdp-add-frags-support-to-xdp_return_-buff-frame.patch
+++ b/target/linux/generic/backport-5.15/606-v5.18-xdp-add-frags-support-to-xdp_return_-buff-frame.patch
@@ -1,18 +1,21 @@
-commit 7c48cb0176c6d6d3b55029f7ff4ffa05faee6446
-Author: Lorenzo Bianconi